FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: justme1968 am 25 Januar 2013, 17:43:34

Titel: sysstat
Beitrag von: justme1968 am 25 Januar 2013, 17:43:34
hallo zusammen,

hier ein kleines modul um die systemlast unter linux zu überwachen. es ist nebenbei als abfallprodukt entstanden ist. vielleicht findet es ja jemand nützlich. zur zeit wird nur die load ausgewertet. mit dem zugrundeliegenden modul Sys::Statistics::Linux (das vorher installiert werden muß) lässt sich das ganze noch auf viele andere parameter ausweiten.

gruss
  andre


(siehe Anhang / see attachement)
Titel: Aw: sysstat
Beitrag von: Fennek am 25 Januar 2013, 18:01:23
Großartig

Du bist ein Guter :-)
Titel: Aw: sysstat
Beitrag von: rtv am 25 Januar 2013, 19:18:20
Vielen Dank!

Hier mal eine Beispielkonfiguration zum Guttenbergen:

define PogoPlug SYSSTAT
attr PogoPlug room System

define FileLog_PogoPlug FileLog ./log/PogoPlug-%Y-%m.log PogoPlug
attr FileLog_PogoPlug archivedir ./archive/
attr FileLog_PogoPlug logtype sysstat:Plot,text
attr FileLog_PogoPlug nrarchive 1
attr FileLog_PogoPlug room System

define Stats_PogoPlug weblink fileplot FileLog_PogoPlug:sysstat:CURRENT
attr Stats_PogoPlug alias Systemlast
attr Stats_PogoPlug group Plots
attr Stats_PogoPlug label "Systemlast von PogoPlug Min: $data{min1}, Max: $data{max1}, Aktuell: $data{currval1}"
attr Stats_PogoPlug room Statistik
Titel: Aw: sysstat
Beitrag von: Rohan am 25 Januar 2013, 20:37:32
Hallo Andre,

Danke für das Modul.

hallo rtv,

Danke für die Guttenkopievorlage.

Habs gerade installiert, musste aber, da das Perl-Modul Sys::Statistics::Linux nicht in den Repositorys meiner Distri vorhanden war, dieses von CPAN (//search.cpan.org/CPAN/authors/id/B/BL/BLOONIX/Sys-Statistics-Linux-0.66.tar.gz) als Source downloaden. Nach dem anschließenden entpacken und Wechsel ins entsprechende Verzeichnis brachte ein

# perl Makefile.PL

die Meldung:

Checking if your kit is complete...
Looks good
Warning: prerequisite UNIVERSAL::require 0 not found.
Writing Makefile for Sys::Statistics::Linux
Writing MYMETA.yml and MYMETA.json


Das oben als fehlend gemeldete Modul UNIVERSAL::require konnte ich über das Repository meiner Distri installieren, also noch mal:

perl Makefile.PL
make
make test


lief ohne Probs durch, also zum Finale:

make install.

Jetzt den Gutt... gemacht, die Konfig von rtv in die fhem.cfg eingespielt, angepasst und ... Bingo...

Jetzt fehlt mir nur noch die Angabe des freien Speicherplatzes auf meiner etwas knapp bemessenen SD-Karte, also von "/" ;)

# df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs          3,1G  1,8G  1,1G  62% /
devtmpfs        218M   36K  217M   1% /dev
tmpfs           246M  4,0K  246M   1% /dev/shm
tmpfs           246M  1,2M  245M   1% /run
/dev/mmcblk0p2  3,1G  1,8G  1,1G  62% /
tmpfs           246M     0  246M   0% /sys/fs/cgroup
tmpfs           246M  1,2M  245M   1% /var/run
tmpfs           246M     0  246M   0% /media
tmpfs           246M  1,2M  245M   1% /var/lock
/dev/mmcblk0p1  143M   54M   82M  40% /boot


Der Umzug auf eine größere Karte ist für den kommenden Sommer, sobald die Heizperiode beendet ist, bereits auf Termin, aber ...

Gruß
Thomas
Titel: Aw: sysstat
Beitrag von: justme1968 am 25 Januar 2013, 21:24:34
kommt in einer stunde ...
Titel: Aw: sysstat
Beitrag von: Rohan am 25 Januar 2013, 21:43:59
Mach dir bloß keinen Stress.

Gruß
Thomas
Titel: Aw: sysstat
Beitrag von: justme1968 am 25 Januar 2013, 23:06:56
wie versprochen ...

die mount points müßen noch von hand im code geändert werden.

ich baue das irgendwan mal um das es konfigurierbar ist. und auch das Intervall sollte denke ich für das filesystem größer sein.

gruss
  andre
Titel: Aw: sysstat
Beitrag von: Tobias am 26 Januar 2013, 06:56:44
sehr schön :)
würde mir allerdings wünschen das die Mountpoints automatisch ausgelesen werden.
Bei mir funzt es zb. nicht da ich keine Fritzbox sondern ein Standard Debian habe.
Titel: Aw: sysstat
Beitrag von: justme1968 am 26 Januar 2013, 09:17:35
das automatisch auslesen ist deshalb nicht drin weil auf sehr vielen systemen wie meinem nas die liste sehr lang waere und mindestens 80% davon nicht interessieren. man könnte die liste der anzuzeigenden filesysteme auf reguläre ausdücke umstellen und als default alles anzeigen was ein gerät unter /dev hat ider wirklich alles.

gruß
   andre
Titel: Aw: sysstat
Beitrag von: Rohan am 26 Januar 2013, 18:44:27
Hi andre,

Zitat von: justme1968 schrieb am Fr, 25 Januar 2013 23:06... die mount points müßen noch von hand im code geändert werden.

Hmmmm...

Irgendwie hab ich das nicht so mit Perl.


  my @filesystems = ();
  push( @filesystems, '/dev/md0' );
  push( @filesystems, '/dev/md2' );



Ich hab jetzt /dev/md0 gegen /dev/mmcblk0p1 und /dev/md2 gegen /dev/mmcblk0p2 (sind bei mir /boot und /) gewechselt, aber er liest mir immer noch nur den "load" aus (in der log-Datei).

Den Plot kann ich selber anpassen.

Kannst du mir mal auf die Sprünge helfen?

Danke und Gruß
Thomas
Titel: Aw: sysstat
Beitrag von: justme1968 am 26 Januar 2013, 20:11:55
so sollte es eigentlich gehen.

ein paar ideen zum fehler finden:

- mach mal bitte ein df -P und schau ob die devices auch wirklich so heißen.
- schau in /bin ob es da ein df gibt
- ruf mal das kleine test.pl von hand mit 'perl test.pl' auf und schau wie die devices heißen.

gruss
  andre
Titel: Aw: sysstat
Beitrag von: Rohan am 26 Januar 2013, 21:03:01
Zitat von: justme1968 schrieb am Sa, 26 Januar 2013 20:11- mach mal bitte ein df -P und schau ob die devices auch wirklich so heißen.

# df -P
Filesystem     1024-blocks    Used Available Capacity Mounted on
rootfs             3163640 1868444   1134652      63% /
devtmpfs            222232      36    222196       1% /dev
tmpfs               251424       4    251420       1% /dev/shm
tmpfs               251424    1160    250264       1% /run
/dev/mmcblk0p2     3163640 1868444   1134652      63% /
tmpfs               251424       0    251424       0% /sys/fs/cgroup
tmpfs               251424    1160    250264       1% /var/run
tmpfs               251424       0    251424       0% /media
tmpfs               251424    1160    250264       1% /var/lock
/dev/mmcblk0p1      145424   54535     83209      40% /boot


Zitat- schau in /bin ob es da ein df gibt

ist ein Link auf /usr/bin/df

# cd /bin
# ls df -l
lrwxrwxrwx 1 root root 11 Okt 29 16:55 df -> /usr/bin/df


Die Rechte sind mMn auch passend.

Zitat- ruf mal das kleine test.pl von hand mit 'perl test.pl' auf und schau wie die devices heißen.

# perl test.pl
$VAR1 = bless( {
                 'diskusage' => {
                                  'tmpfs' => {
                                               'usage' => '1160',
                                               'free' => '250264',
                                               'usageper' => '1',
                                               'mountpoint' => '/var/lock',
                                               'total' => '251424'
                                             },
                                  '/dev/mmcblk0p1' => {
                                                        'usage' => '54535',
                                                        'free' => '83209',
                                                        'usageper' => '40',
                                                        'mountpoint' => '/boot',
                                                        'total' => '145424'
                                                      },
                                  'devtmpfs' => {
                                                  'usage' => '36',
                                                  'free' => '222196',
                                                  'usageper' => '1',
                                                  'mountpoint' => '/dev',
                                                  'total' => '222232'
                                                },
                                  'rootfs' => {
                                                'usage' => '1868444',
                                                'free' => '1134652',
                                                'usageper' => '63',
                                                'mountpoint' => '/',
                                                'total' => '3163640'
                                              },
                                  '/dev/mmcblk0p2' => {
                                                        'usage' => '1868444',
                                                        'free' => '1134652',
                                                        'usageper' => '63',
                                                        'mountpoint' => '/',
                                                        'total' => '3163640'
                                                      }
                                }
               }, 'Sys::Statistics::Linux::Compilation' );


Hmmm... scheint alles korrekt zu sein.

Hilft dir das irgendwie?

Gruß
Thomas
Titel: Aw: sysstat
Beitrag von: ChrisW am 26 Januar 2013, 21:08:52
da ärgere ich mich wieder das ich Fhem unter Win am laufen habe ;D Hätte sowas auch gerne.
Titel: Aw: sysstat
Beitrag von: Rohan am 26 Januar 2013, 21:17:45
Hi Chris,

nicht ärgern... RPi kaufen und du hast / kannst alles ;)

Gruß
Thomas
Titel: Aw: sysstat
Beitrag von: justme1968 am 26 Januar 2013, 22:31:07
ja. schaut eigentlich alles ok aus. hast du auch keine readings im web frontend ?

gruss
  andre
Titel: Aw: sysstat
Beitrag von: Rohan am 26 Januar 2013, 23:07:29
Hi andre,

ich muss um Entschuldigung bitten!

In den Readings steht jetzt etwas und auch in der Log-Datei. Außer einem "reload 32_SYSSTAT.pm" habe ich jetzt aber auch noch ein "shutdown restart" gemacht.

Readings
/ 1133320 2013-01-26 22:55:45
/boot 83209 2013-01-26 22:55:45
load 0.60 2013-01-26 22:55:44


Danke und sorry.

Gruß
Thomas
Titel: Aw: sysstat
Beitrag von: justme1968 am 26 Januar 2013, 23:16:02
ja. reload alleine reicht nicht um von der ersten auf die zweite version zu kommen. hätte ich aber auch schreiben können.

gruss
  andre
Titel: Aw: sysstat
Beitrag von: Tobias am 27 Januar 2013, 07:35:45
ev. kann man die zu monitorenden Mountpoints per Attr angeben??
Titel: Aw: sysstat
Beitrag von: Rohan am 27 Januar 2013, 13:06:30
Hi,

Zitat von: justme1968 schrieb am Sa, 26 Januar 2013 23:16... hätte ich aber auch schreiben können.

nope, mein Fehler ;) Ein Neustart sollte ja immer in Erwägung gezogen werden ^^

Zitat von: Tobias schrieb am So, 27 Januar 2013 07:35ev. kann man die zu monitorenden Mountpoints per Attr angeben??

Spricht einiges dafür.

Da mir die Anzeige der freien Bytes nicht viel sagt, habe ich lieber die "usageper" genommen.

Aus

readingsSingleUpdate($hash,$fs->{mountpoint},$fs->{free},defined($hash->{LOCAL} ? 0 : 1));

wurde

readingsSingleUpdate($hash,$fs->{mountpoint},$fs->{usageper},defined($hash->{LOCAL} ? 0 : 1));


Die gplot-Datei sieht nun so aus:

############################
# Display the sysload and diskusage values
# Corresponding FileLog definition:
# define deviceLog FileLog ./log/device-%Y-%m.log device

set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<L1>'

set ylabel "Load"
set y2label "/ belegt %"
set y2range [0:100]

#FileLog 4:load:0:
#FileLog 4:/:0:

plot "< awk '/load:/ {print $1, $4}' <IN>" using 1:2 ls l0 axes x1y1 title 'Load' with lines
plot "< awk '//:/ {print $1, $4}' <IN>" using 1:2 ls l2fill axes x1y2 title 'Disk' with lines


Ich habe zusätzlich noch einen Wertebereich für die y2-Achse vorgegeben, da ja nur Werte von 0 bis 100 % möglich sind.

Da in der heutigen Log-Datei noch viele Byte-Wert-Logs drin sind, stimmt die komplette Anzeige erst ab Morgen.

Und ja, ein Loggen der Disk-Werte braucht wirklich viel seltener erfolgen (jede Stunde?).

Kleines kosmetisches Problem:

In der Log-Datei stehen:

2013-01-27_12:28:38 BBxM /boot: 40
2013-01-27_12:30:37 BBxM load: 0.42
2013-01-27_12:30:40 BBxM /: 63
2013-01-27_12:30:40 BBxM /boot: 40
2013-01-27_12:32:37 BBxM load: 0.64
2013-01-27_12:32:38 BBxM /: 63
2013-01-27_12:32:38 BBxM /boot: 40
2013-01-27_12:34:37 BBxM load: 0.42
2013-01-27_12:34:38 BBxM /: 63
2013-01-27_12:34:38 BBxM /boot: 40


Die von mir veränderte gplot-Datei stellt beide Partitionen dar, da der Filter "/:" auf beide zutrifft. Evtl. sollten alle Log-Werte in eine Zeile (mit Bezugsangabe davor) oder ich muss einen passenden Filter finden. Ich umgehe das, da bei meinem System nur "/" wichtig ist, indem ich von der 32_SYSSTAT.pm nur noch die Werte dieser Partition loggen lasse.

Nochmals Danke dafür das Tool/Modul.

Gruß
Thomas
Titel: Aw: sysstat
Beitrag von: jhohn am 27 Januar 2013, 15:24:04
Ich habe folgende Meldung, nach shutdown restart, im Log:
Using a hash as a reference is deprecated at ./FHEM/32_SYSSTAT.pm line 40, <$fh> line 596.
das müsste von der Zeile
 %stat->{diskusage} = 1 if($#filesystems>=0);
stammen, jedenfalls ist das Zeile 40 bei mir. Ich habe nur ein Dateisystem in der Abfrage
Titel: Aw: sysstat
Beitrag von: justme1968 am 27 Januar 2013, 15:59:11
ups. die Zeile muß natürlich$stat{diskusage} = 1 if($#filesystems>=0);heißen.

gruss
  andre
Titel: Aw: sysstat
Beitrag von: Tobias am 28 Januar 2013, 19:19:25
Das Modul gibts unter debian:
apt-get install libsys-statistics-linux-perl
Titel: Aw: sysstat
Beitrag von: justme1968 am 06 Februar 2013, 22:17:32
ich habe eben eine neue version dieses moduls eingecheckt.

mehr hoffentlich bald bei den ankündigungen (http://forum.fhem.de/index.php?t=thread&frm_id=40&rid=430 (//forum.fhem.de/index.php?t=thread&frm_id=40&rid=430))

gruss
  andre

Titel: Aw: sysstat
Beitrag von: Tobias am 07 Februar 2013, 08:05:44
hab gerade per update aktualisiert. Die Doku fehlt in der commandref. Wie soll ich die filesystems definieren?
Titel: Aw: sysstat
Beitrag von: justme1968 am 07 Februar 2013, 09:40:49
hallo tobias,

ich habe eben auch aktualisiert und ich habe die doku...

gruss
  andre


(siehe Anhang / see attachement)
Titel: Aw: sysstat
Beitrag von: Tobias am 08 Februar 2013, 08:11:04
Hi,
jetzt hab ich die Doku auch....
Hab aber nochetwas ;)
1. ich definiere ein 10sek intervall, aber INTERVALL bleibt auf 60sek stehen. Die aktualisierung scheint aber zu funktionieren im 10sek intervall
2. wenn "showpercent" nur die Werte 1 oder 0 annehmen soll, sollte man auch nur diese Auswahl zulassen. Zuzeit kann man eintragen was man will ;)
3. Ich habe eine Filesystem-Liste eingetragen, aber diese tauschen nicht in den Readings auf.... warum? wo liegt mein Fehler?

Alle 3 Punkte kann man im Screenshot sehen
Titel: Aw: sysstat
Beitrag von: justme1968 am 08 Februar 2013, 09:26:47
hallo tobias,

kein problem...

1. alles kleiner 60 wird auf 60 gesetzt. das kommt noch in die doku. bist du sicher das die aktualisierung wirklich trozdem alle 10 sekunden war? ich schau es mir mal an. ich wollte sowieso noch ein einbauen das die filesystem aktualisierung weniger oft ist.

2. zumindest ist es konsistent mit der doku. da steht wenn es gesetzt ist. egal auf welchen wert :). das komt von aenderungen kurz vor dem schlafengehen. wird repariert.

3. du musst das filesystem angeben also in der regel den devicenamen. nicht den mountpoint. ich mach es in der doku deutlicher.  für die nächste version ist noch ein 'get filesystems' um aufzulisten was man eintragen kann.

gruss
  andre
Titel: Aw: sysstat
Beitrag von: Tobias am 08 Februar 2013, 10:22:27
ok, mit den /dev/ angaben funktioniert es.
bzgl. Aktualisierungsintervall, ich habe es auf 10sek. Irgendwie schwankt es.. mal sinds 15sek, mal 50sek

bsp:2013-02-08_10:20:02 IOconnect load: 0.02
2013-02-08_10:20:02 IOconnect /: 78
2013-02-08_10:20:02 IOconnect /boot: 6
2013-02-08_10:20:02 IOconnect /media/data: 1
2013-02-08_10:20:18 IOconnect load: 0.01
2013-02-08_10:20:18 IOconnect /: 78
2013-02-08_10:20:18 IOconnect /boot: 6
2013-02-08_10:20:18 IOconnect /media/data: 1
2013-02-08_10:21:03 IOconnect load: 0.14
2013-02-08_10:21:03 IOconnect /: 78
2013-02-08_10:21:03 IOconnect /boot: 6
2013-02-08_10:21:03 IOconnect /media/data: 1
2013-02-08_10:21:19 IOconnect load: 0.11
2013-02-08_10:21:19 IOconnect /: 78
2013-02-08_10:21:19 IOconnect /boot: 6
2013-02-08_10:21:19 IOconnect /media/data: 1
Titel: Aw: sysstat
Beitrag von: justme1968 am 08 Februar 2013, 13:26:28
ich hab das problem gefunden. und ich kann etwas dagegen tun. aber ich verstehe noch nicht so ganz warum es passiert. aus irgendeinem grund läuft mehr als ein timer und das zeitlich versetzt.

gruss
  andre
Titel: Aw: sysstat
Beitrag von: justme1968 am 08 Februar 2013, 15:45:03
ich habe eben die drei  aenderungen eingecheckt.

gruss
  andre
Titel: Aw: sysstat
Beitrag von: justme1968 am 08 Februar 2013, 16:48:20
in der neuesten version gibt es jetzt auch ein 'get <name> filesystems' um sich die möglichen filesysteme anzeigen zu lassen.

gruss
  andre
Titel: Aw: sysstat
Beitrag von: jhohn am 11 Februar 2013, 10:53:01
Kann ich mir die sysstat von einem System auf einem anderen System via FHEM2FHEM anzeigen lassen?
Ich stehe da gerade voll auf dem Schlauch. Mit FHEM2FHEM habe ich bisher auch noch nichts gemacht.
Titel: Aw: sysstat
Beitrag von: justme1968 am 11 Februar 2013, 11:01:07
RAW: geht nicht. das muß das modul explizit unterstützen.

LOG: sollte eigentlich gehen.

ich habe gerade keine zweite fhem installation zum testen. ich kann es mir aber mal anschauen.

gruss
  andre
Titel: Aw: sysstat
Beitrag von: justme1968 am 18 Februar 2013, 15:11:44
hallo zusammen,

mir ist gerade eine idee gekommen wie es sehr einfach möglich wäre auch die load und den plattenfüllstand eines mit keys und ohne Passwort per ssh erreichbaren rechners auszulesen. z.b. im netz verteilten raspberery pi.

wäre es von Interesse das ins modul einzubauen ?

gruss
  andre
Titel: Aw: sysstat
Beitrag von: justme1968 am 18 Februar 2013, 21:18:59
ich habe eben folgende änderungen eingecheckt:

- es ist jetzt möglich für den plattencheck ein anderes Interval anzugeben
- es ist möglich remote hosts per ssh zu überwachen vorausgesetzt der ssh zugang ist ohne passwordeingabe mit shared keys möglich.

gruss
  andre
Titel: Aw: sysstat
Beitrag von: jhohn am 21 Februar 2013, 18:01:08
Hat jemand eine Lösung dafür mehrere Dateisysteme zu plotten? Ich bekomm das nicht hin.
Was muss in den #FileLog Eintrag um "/:" in einen und "/media/hd1:" in einen zweiten Graphen im gleichen Plot zu bekommen?
Titel: Aw: sysstat
Beitrag von: Rohan am 21 Februar 2013, 19:32:01
Hi jhohn,

ich möchte bei mir jetzt nix umstellen, daher ...

Könntest du mal einen Abschnitt deiner sysstat-Log-Datei posten, damit ich sehe, wie das mit 2 Volumes aussieht?

Gruß
Thomas
Titel: Aw: sysstat
Beitrag von: Rohan am 21 Februar 2013, 19:41:47
Versuch mal bitte:


############################
# Display the sysload and diskusage values
# Corresponding FileLog definition:
# define deviceLog FileLog ./log/device-%Y-%m.log device

set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<L1>'

set ylabel "Load"
set y2label "Vol. belegt %"
set y2range [0:100]

#FileLog 4:load:0:
#FileLog 4:/:0:
#FileLog 4:/media/hd1:0:

plot "< awk '/load:/ {print $1, $4}' <IN>" using 1:2 ls l0 axes x1y1 title 'Load' with lines
plot "< awk '//:/ {print $1, $4}' <IN>" using 1:2 ls l0 axes x1y2 title '/' with lines
plot "< awk '/media/hd1:/ {print $1, $4}' <IN>" using 1:2 ls l0 axes x1y2 title '/media/hd1' with lines


Gruß
Thomas
Titel: Aw: sysstat
Beitrag von: jhohn am 22 Februar 2013, 08:30:51
Nee passt nicht. So ähnlich hatte ich das auch schon versucht.
Das Log sieht folgendermaßen aus:

2013-02-22_08:18:42 samba.sysstat load: 0.21
2013-02-22_08:18:42 samba.sysstat /: 9
2013-02-22_08:18:42 samba.sysstat /media/hd1: 72
2013-02-22_08:19:42 samba.sysstat load: 0.32
2013-02-22_08:19:42 samba.sysstat /: 9
2013-02-22_08:19:42 samba.sysstat /media/hd1: 72


Ich müsste in dem #FileLog Eintrag also auf "/: " prüfen, weil mit "/" auch die USB Disk einbezogen wird. Aber wie bekomme ich den Doppelpunkt mit in die Prüfung, der ist ja der Feldtrenner.
Titel: Aw: sysstat
Beitrag von: Rohan am 22 Februar 2013, 08:40:13
Hi,

Zitat von: jhohn schrieb am Fr, 22 Februar 2013 08:30Nee passt nicht.

Ja, jetzt, wo du es schreibst... war bei mir auch so, deshalb hatte ich dann nur noch die "/"-Partition (ist bei mir auch die wichtigere) in dem Grafen.

Man müsste also den ":" escapen können in dem gplot-File. Aber da habe ich keinen Anhaltspunkt. Alternativ müsste die Ausgabe von sysstat im log-File angepasst werden.

Gruß
Thomas

Edith: Typo
Titel: Aw: sysstat
Beitrag von: jhohn am 22 Februar 2013, 08:57:05
mit folgendem gplot ist zumindest mal beides Erkennbar, wenn auch nicht so wie es sein sollte:

############################
# Display the Anwesend and Abwesend values
# Corresponding FileLog definition:
# define anwesendlog FileLog /var/log/fhem/fs20dev-%Y-%U.log device

set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<L1>'

set ylabel "Load"
set y2label "Disk Usage in %"
set y2range [0:100]

#FileLog 4:load:0:
#FileLog 4:/:0:
#FileLog 4:/media/hd1:0:

plot \
"< awk '/load:/ {print $1, $4}' <IN>" \
using 1:2 ls l0 axes x1y1 title 'Systemload' with lines,\
"< awk '//:/ {print $1, $4}' <IN>" \
using 1:2 ls l2fill axes x1y2 title 'root filesystem' with lines,\
"< awk '//media/hd1:/ {print $1, $4}' <IN>" \
using 1:2 ls l1fill axes x1y2 title 'USB HDD' with lines


(siehe Anhang / see attachement)


@Andre: könnte man nicht die Devices ins Log schreiben, so wie sie auch im "filesystems" Attribut definiert sind, da lässt sich dann vernünftig filtern.

und noch was anderes:
Wenn ich fhem auf dem Pi über "/etc/init.d/fhem start" starte bekomme ich die Fehlermeldung:
"my" variable $load masks earlier declaration in same scope at ./FHEM/32_SYSSTAT.pm line 157, <$fh> line 56.
Titel: Aw: sysstat
Beitrag von: Rohan am 22 Februar 2013, 09:08:58
Hi,

hmmm.... du hast ja jetzt beide Partitionen im Grafen, nur USB-HDD ist halt nicht grün (da der Graf wohl hinter / liegt. Wenn du den Plotbefehl für USB-HDD jetzt eine Zeile eher verarbeitest (und evtl. das einmal das "fill" weglässt, damit es nur als Linie dargestellt wird)?

Gruß
Thomas
Titel: Aw: sysstat
Beitrag von: jhohn am 22 Februar 2013, 09:17:23
Egal in welcher Kombination, es ist zwar erkennbar, aber nicht wirklich das was ich will ...

(siehe Anhang / see attachement)


(siehe Anhang / see attachement)
Titel: Aw: sysstat
Beitrag von: Rohan am 22 Februar 2013, 09:21:20
Dann bleibt wohl nur, alle 3 Plots auf Linie (ohne fill) zu setzen. Habe ich bei meinen HM-CC-TC mittlerweile auch. Dadurch wird die Luftfeuchte zwar nicht mehr "gefillt" dargestellt, aber ich habe mich relativ schnell dran gewöhnt.

Gruß
Thomas
Titel: Aw: sysstat
Beitrag von: jhohn am 22 Februar 2013, 09:28:44
Auch das hilft hier nicht wirklich weiter, weil im Plot für das root Dateisystem ja das für die USB Disk mit drin ist und so ständig zwischen dem Wert für /dev/root und dem für /dev/sda1 wechselt. Sieht lustig aus wenn man mal reinzoomed:


(siehe Anhang / see attachement)
Titel: Aw: sysstat
Beitrag von: Rohan am 22 Februar 2013, 10:00:06
Hi,

Zitat von: jhohn schrieb am Fr, 22 Februar 2013 09:28... Sieht lustig aus wenn man mal reinzoomed:

erinnert mich etwas an "Das-ist-das-Haus-vom-Ni-Ko-Laus" ;) .

Spaß beiseite, da wird evtl. nur eine Änderung der log-Ausgabe helfen.

Gruß
Thomas
Titel: Aw: sysstat
Beitrag von: justme1968 am 22 Februar 2013, 10:16:46
hallo ihr zwei,

ich denke euer problem ist das ihr das '/' im awk ausdruck nicht maskiert. es muss awk '/\/:/ {print $1, $4}' und awk '/\/media\/hd1:/ {print $1, $4}' heißen. dann ist die unterscheidung kein problem. wenn ihr das maskieren sparen wollt könnt ihr ein '.' statt des '/' im pfad namen verwenden. damit das root filesystem eindeutig bleibt muss es dann so aussehen:awk '/ .:/ {print $1, $4}'

die warnmeldung hab ich gestern gefixt und das sollte mit dem update ab heute mit kommen.

gruss
  andre
Titel: Aw: sysstat
Beitrag von: Rohan am 22 Februar 2013, 10:32:40
Hallo andre,

ich sage schon Mal danke. Kann aber erst heute Abend deinen Hinweis umsetzen.

Gruß
Thomas
Titel: Aw: sysstat
Beitrag von: jhohn am 22 Februar 2013, 10:38:46
Nö, das ist es nicht:
mit
############################
# Display the Anwesend and Abwesend values
# Corresponding FileLog definition:
# define anwesendlog FileLog /var/log/fhem/fs20dev-%Y-%U.log device

set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<L1>'

set ylabel "Load"
set y2label "Disk Usage in %"
set y2range [0:100]

#FileLog 4:load:0:
#FileLog 4:/:0:
#FileLog 4:/media/hd1:0:

plot \
"< awk '/load:/ {print $1, $4}' <IN>" \
using 1:2 ls l0 axes x1y1 title 'Systemload' with lines,\
"< awk '/\/:/ {print $1, $4}' <IN>" \
using 1:2 ls l2 axes x1y2 title 'root filesystem' with lines,\
"< awk '/\/media\/hd1:/ {print $1, $4}' <IN>" \
using 1:2 ls l1 axes x1y2 title 'USB HDD' with lines


sieht es so aus

(siehe Anhang / see attachement)


Meiner Meinung nach ist das Problem, wie vorher schon mal geschrieben, dass der zweite FileLog Eintrag den dritten mit einschließt, hier müßte auf "/:" gefiltert werden aber ich habe keine Ahnung wie ich da den Doppelpunkt mit in den Filter bekomme. Laut http://www.fhemwiki.de/wiki/Creating_Plots#Plot_definition (//www.fhemwiki.de/wiki/Creating_Plots#Plot_definition) ist das Feld ja eine regexp aber eigentlich dürfte das doch dann mit unmaskiertem / nicht funktionieren und wenn ich da den Doppelpunkt maskiere (#FileLog 4:/\:0:) stürtzt fhem ab wenn ich den Plot aufrufe.
Titel: Aw: sysstat
Beitrag von: justme1968 am 22 Februar 2013, 10:51:26
arg...

du hast natürlich in so fern recht das bei den svg plots das awk... aus der plot definition gar nicht verwendet wird.

die idee bleibt aber die gleiche. versuch mal bitte in der FileLog zeile  das root filesstem so zu definieren:#FileLog 4: /. :0:

gruss
  andre
Titel: Aw: sysstat
Beitrag von: jhohn am 22 Februar 2013, 11:09:29
sieht noch genauso aus, damit wird also auch /media/... mit einbezogen
Titel: Aw: sysstat
Beitrag von: justme1968 am 22 Februar 2013, 11:56:34
das kann eigentlich nicht sein weil der ausdruck beim besten willen nicht auf media matcht.

ich schalte das file log bei mir mal an und teste es.

gruss
  andre
Titel: Aw: sysstat
Beitrag von: justme1968 am 22 Februar 2013, 13:40:31
ich habe ein bisschen probiert und das matchen ist leider wirklich etwas instabil und fehm stürzt gerne mal ab.

es geht aber auf mindestens zwei arten:

- den ':' in hex angeben:#FileLog 4:/\x3a:0:

- auf zwei zeichen zwischen whitespace matchen:#FileLog 4:\s..\s:0:

gruss
  andre
Titel: Aw: sysstat
Beitrag von: jhohn am 22 Februar 2013, 16:50:29
Zitat von: justme1968 schrieb am Fr, 22 Februar 2013 13:40- den ':' in hex angeben:#FileLog 4:/\x3a:0:

Getestet und für gut befunden

(siehe Anhang / see attachement)


Vielen Dank
Titel: Aw: sysstat
Beitrag von: justme1968 am 22 Februar 2013, 17:01:09
sehr schön.

ich schreib es in die doku mit rein.

gruss
  andre
Titel: Aw: sysstat
Beitrag von: Sebastian am 27 Februar 2013, 15:17:30
Hallo,

wie genau funktioniert die Abfrage eines entfernten Systems ?

habe es mit define xbmc_sys SYSSTAT 60 60 192.168.2.5 versucht.
Außerdem mit define xbmc_sys SYSSTAT 60 60 pi@192.168.2.5 (pi@192.168.2.5) .

Für den User pi gibt es einen ssh-key auf dem Server, hier funktioniert der Login ohne PW.

Muss der User fhem heissen ?

Das ganze läuft auf einem Debian.

Gruß
Titel: Aw: sysstat
Beitrag von: justme1968 am 27 Februar 2013, 15:52:03
der benutzernamen muß im attribut ssh_user gesetzt sein.

attr xbmc_sys ssh_user pi

gruss
  andre
Titel: Aw: sysstat
Beitrag von: Sebastian am 28 Februar 2013, 09:13:20
Hallo,

danke für den Hinweis.

Leider ist da noch irgendwo ein Fehler.

Ich post mal meine cfg und dann den Fehler im Log:
define fhem_sys SYSSTAT 120
attr fhem_sys filesystems /dev/mapper/fhem-root
attr fhem_sys room Unsorted
attr fhem_sys showpercent 1

define FileLog_fhem_sys FileLog /var/log/fhem/fhem_sys-%Y-%m.log fhem_sys
attr FileLog_fhem_sys archivedir /var/log/fhem/archive/
attr FileLog_fhem_sys logtype sysstat:Plot,text
attr FileLog_fhem_sys nrarchive 1
attr FileLog_fhem_sys room Unsorted
define Stats_fhem_sys weblink fileplot FileLog_fhem_sys:mysysstat:CURRENT
attr Stats_fhem_sys alias Systemlast
attr Stats_fhem_sys fp_Statistiken 740,277,0,
attr Stats_fhem_sys label "Systemlast von fhem_sys Min: $data{min1}, Max: $data{max1}, Aktuell: $data{currval1}"
attr Stats_fhem_sys room Unsorted

define xbmc_sys SYSSTAT 60 60 192.168.2.5
attr xbmc_sys ssh_user pi
attr xbmc_sys filesystems /mnt/1080p
attr xbmc_sys room Unsorted
attr xbmc_sys showpercent 1
define FileLog_xbmc_sys FileLog /var/log/fhem/xbmc_sys-%Y-%m.log xbmc_sys
attr FileLog_xbmc_sys archivedir /var/log/fhem/archive/
attr FileLog_xbmc_sys logtype sysstat:Plot,text
attr FileLog_xbmc_sys nrarchive 1
attr FileLog_xbmc_sys room Unsorted
define Stats_xbmc_sys weblink fileplot FileLog_xbmc_sys:mysysstat:CURRENT
attr Stats_xbmc_sys alias Systemlast
attr Stats_xbmc_sys fp_Statistiken 740,277,0,
attr Stats_xbmc_sys label "Systemlast von xbmc_sys Min: $data{min1}, Max: $data{max1}, Aktuell: $data{currval1}"
attr Stats_xbmc_sys room Unsorted



Use of uninitialized value in concatenation (.) or string at /usr/share/fhem/FHEM/32_SYSSTAT.pm line 159.
Use of uninitialized value in concatenation (.) or string at /usr/share/fhem/FHEM/32_SYSSTAT.pm line 159.
Use of uninitialized value in concatenation (.) or string at /usr/share/fhem/FHEM/32_SYSSTAT.pm line 159.
Titel: Aw: sysstat
Beitrag von: justme1968 am 28 Februar 2013, 09:31:43
hallo sebastian,

gerade eben bei mir probiert:define xbmc_sys SYSSTAT 60 60 10.0.1.44
attr xbmc_sys ssh_user pi
...etwas warten...
list xbmc_sys
Internals:
   CFGFN      
   DEF        60 60 10.0.1.44
   HOST       10.0.1.44
   INTERVAL   60
   NAME       xbmc_sys
   NR         5835
   STATE      0.04 0.04 0.05
   TYPE       SYSSTAT
   interval_fs
   Readings:
     2013-02-28 09:23:29   load            0.04
   filesystems:
Attributes:
   ssh_user   pi


der user unter dem fhem läuft muß ohne password per ssh auf den anderen rechner kommen. die erfolgreichen oder fehlgeschlagenen login versuche werden auf dem raspberry pi in /var/log/auth.log protokoliert. da sollte zu sehen sein ob es versucht wird und ob etwas schief geht.

gruss
  andre
Titel: Aw: sysstat
Beitrag von: Sebastian am 28 Februar 2013, 09:33:56
Hallo,

warum lege ich per attribut einen ssh_user fest, wenn der user der fhem user sein muss ?
Diese Logik erschliesst sich mir nicht.

Hatte ja auch im Post davor gefragt ob es der fhem user sein muss.

Ich werde das ganze mal austesten mit dem fhem user.

Titel: Aw: sysstat
Beitrag von: justme1968 am 28 Februar 2013, 09:43:18
der user auf fhem seite ist der unter dem fhem läuft. der user auf raspberry seite ist der user im ssh_user.

gruss
  andre
Titel: Aw: sysstat
Beitrag von: Sebastian am 28 Februar 2013, 10:19:59
Hallo Andre,

habe folgendes in der Config nun:

define xbmc_sys SYSSTAT 60 60 192.168.2.5
attr xbmc_sys ssh_user fhem


Der user unter dem fhem läuft heisst auch fhem.

Auf dem pi ( 192.168.2.5 ) gibt es ebenfalls einen User fhem.

Vom fhem System hab ich Key Zugang mit dem fhem user:

root@fhem:~# ssh fhem@192.168.2.5

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
fhem@raspbmc:~$


Trotzdem erscheint immer noch der Fehler:

Use of uninitialized value in concatenation (.) or string at /usr/share/fhem/FHEM/32_SYSSTAT.pm line 159.
Use of uninitialized value in concatenation (.) or string at /usr/share/fhem/FHEM/32_SYSSTAT.pm line 159.


Titel: Aw: sysstat
Beitrag von: justme1968 am 28 Februar 2013, 11:33:42
wie oben schon gesagt: bitte schau mal auf dem pi in /var/log/auth.log. da muß irgendetwas auftauchen.

ansonsten mach mal bitte von der fhem kiste aus ein:ssh fhem@192.168.2.5 cat /proc/loadavg
gruss
  andre
Titel: Aw: sysstat
Beitrag von: justme1968 am 23 April 2013, 16:38:36
in der version von morgen kann das sysstat modul die raspberry pi cpu temperatur auslesen wenn das attribut raspberrytemperature gesetzt wird. das geht sowohl lokal als auch remote.

gruss
  andre
Titel: Aw: sysstat
Beitrag von: Achim am 26 April 2013, 16:09:06
Hallo,

ich habe bei mir das SYSSTAT eingebunden um den LOAD und die RPI Temperatur anzuzeigen. Ich habe allerdings einen kleinen Schönheitsfehler. 1-2 mal am Tag steht im LOG ein ziemlich hohe negative Temperatur. An sich kein Problem, aber der PLOT für die Temperatur sieht dabei nicht besonders "schön" aus.

Auszug Logfile:
2013-04-26_02:27:35 sysstat temperature: 56.761
2013-04-26_02:28:35 sysstat load: 1.12
2013-04-26_02:28:35 sysstat temperature: -894484.6
2013-04-26_02:29:35 sysstat load: 1.04
2013-04-26_02:29:35 sysstat temperature: 56.761
2013-04-26_02:30:35 sysstat load: 1.09

Woher kommt der schräge Wert und wie kann ich ihn automatisch herausfiltern. Am besten vor dem LOG-Schreiben, wenn das nicht geht würde es mir auch reichen, wenn es nur im Plot ausgefiltert wird.

Achim
Titel: Aw: sysstat
Beitrag von: justme1968 am 26 April 2013, 16:49:55
ich hab es seit 4 tagen an zwei raspberry pi laufen und noch keine einzigen ausreißer gesehen.

ich baue mal ein das so offensichtliche falsche werte <=0 und >=200 nicht übernommen werden. ist morgen im update. ich hoffe das hilft.

gruss
  andre
Titel: Aw: sysstat
Beitrag von: Achim am 29 April 2013, 12:54:25
Hallo Andre,

ich habe das Update eingespielt, bisher ist die Anzeige ohne Probleme. Vielen Dank

Achim
Titel: Aw: sysstat
Beitrag von: justme1968 am 03 Mai 2013, 20:49:23
ich habe eben mal eingebaut das die temperatur optional über die 4 letzten werte gemittelt wird. die art der mittelwert bildung kann man noch optimieren aber die plots sind schon mal deutlich weniger verrauscht wenn der raspberry pi in einem raum mit ziemlich gleicher temperatur (keller) steht.

gruss
  andre
Titel: Aw: sysstat
Beitrag von: C64Emulator am 30 Mai 2013, 19:34:17
Hallo zusammen,

warum tun sich eigentlich die Entwickler von 99_Rpiutils (http://forum.fhem.de/index.php?t=msg&th=11996&start=0&rid=578) (http://forum.fhem.de/index.php?topic=10573.0) und 32_SYSSTAT (http://forum.fhem.de/index.php?t=msg&th=10573&start=0&rid=578) (http://forum.fhem.de/index.php?topic=10573.0) nicht zusammen?

Beide haben ihre Vor- und Nachteile, so dass ich momentan beide Module nutze.

Cheers,
Helmut.
Titel: Aw: sysstat
Beitrag von: justme1968 am 30 Mai 2013, 20:15:25
fang doch mal an die vor- und nachteile aus deiner sicht zu sammeln :)

gruss
  andre
Titel: Aw: sysstat
Beitrag von: C64Emulator am 31 Mai 2013, 00:14:18
Hallo,
Zitat von: justme1968 schrieb am Do, 30 Mai 2013 20:15fang doch mal an die vor- und nachteile aus deiner sicht zu sammeln :)
nun ja, ich habe einen RasPi, da habe ich erst mal zu 99_Rpiutils gegriffen.
Da wird z.B die Taktfreq. ausgelesen (interessant, wenn der RasPi dynamisch getaktet ist). Das zusammen mit der Load (die 32_SYSSTAT ausliest) und der Temperatur in einem Plot würde ich gut finden.
Auch RAM und Swap in einem Plot sind ganz gut für die Suche nach Bottlenecks.
Die Anzeige der Filesysteme auf den kleinen SDHC-Cards und angeschlossenen USB-Sticks und USB-Discs ist auch sinnvoll. Das kann IMHO 32_SYSSTAT besser.
Aber irgendwann wird das Monitoring des Servers auch zum Selbstzweck und ich frage mich, welche Systemlast dadurch erzeugt wird. Ich könnte mir vorstellen, dass die Nutzung von Sys::Statistics::Linux das Monitoring effizienter macht.
Just my 2 Cents.
Cheers
Helmut.
Titel: Aw: sysstat
Beitrag von: justme1968 am 31 Mai 2013, 10:00:27
taktfrequenz, ram und swap ins sysstat einzubauen ist kein problem. taktfrequenz hatte ich mir sogar schon angeschaut aber da meine beiden mit dem normalen takt laufenwar es langweilig :). wenn es jemand benutzen möchte baue ich es gerne ein. wenn sysstat den lokalen rechner überwacht sollte das keinerlei overhead verursachen. remote muss ich mal schauen weil zur zeit für jeden wert eine eigene ssh verbindung aufgemacht wird. das ist eigentlich nicht nötig war aber das einfachsten.

temperatur ist eh schon drin. load und temperatur habe ich bei mir schon lange in einem plot.

Sys::Statistics::Linux macht das monitoring nicht unbedingt effizienter aber als framework erlaubt es alles mögliche zusätzlich zu überwachen und das für jedes linux system. normalerweise aber nur lokal. die remote erweiterung ist von mir.

irgendwann ist es halt besser eines der bestehenden überwachungssysteme zu verwenden (nagios oder ähnlich) statt alles in ein fhem modul zu stecken. und was den selbstzweck angeht: das ist glaube ich bei einer ganzen reihe anderer daten die man mit fhem erheben kann auch so :)

die ganzen dummys die für die rpiutils scheinbar nötig sind mag ich überhaupt nicht. genauer habe ich es mir aber noch nicht angeschaut.

gruss
  andre
Titel: Aw: sysstat
Beitrag von: justme1968 am 31 Mai 2013, 13:01:06
mit dem update von morgen ist es jetze auch möglich die raspberry cpu frequenz zu überwachen.

gruss
  andre
Titel: Aw: sysstat
Beitrag von: PeMue am 16 Juni 2013, 09:28:33
Hallo andre,

habe mittlerweile auch das sysstat Modul installiert. Funktioniert soweit ganz gut, aber in der Definition habe ich folgendes doppelt:
INTERVAL_FS           600
interval_fs          360
Ist das so gewollt? Ich vermute interval_fs ist die "Restlaufzeit", um auf die INTERVAL Zeit zu "synchronisieren" ...

Bei mir sind folgende Attribute gesetzt:
filesystems          /dev/root
raspberrycpufreq     1
raspberrytemperature 1
showpercent          1

Gruß PeMue
Titel: Aw: sysstat
Beitrag von: justme1968 am 16 Juni 2013, 09:47:09
guten morgen,

ganz gut reicht aber nicht :) was fehlt denn noch?

ja der klein geschriebene zähler ist um die abfrage load und filesystem mit zwei unterschiedlichen intervallen zu realisieren ohne einen zweiten timer zu verwenden. eigentlich könnte man den auch versteecken.

gruss
  andre
Titel: Aw: sysstat
Beitrag von: PeMue am 16 Juni 2013, 11:50:36
Hallo Andre,

ich habe noch nicht alle plots so wie ich will, daher von mir der flapsige Kommentar "ganz gut". Die CPU Last habe ich angezeigt (ich denke, es müsste der 1 min. Wert sein), der Rest fehlt noch ...
Was ich noch gesehen habe, ist das Raspberry Pi Kommando vcgencmd (//www.elinux.org/RPI_vcgencmd_usage), mit dem man auch Spannungen anzeigen lassen kann. Wäre vielleicht noch einen Blick Wert, das zu integrieren (falls jemand ein schwaches Netzteil hat).

Gruß Peter
Titel: Aw: sysstat
Beitrag von: justme1968 am 16 Juni 2013, 16:11:11
ja. das load reading ist der 1-minuten wert. wenn du meinst der 5- und 15- minuten wert ist zum plotten auch ineressant kann ich die auch in ein reading stecken.

wenn du raspberrytemperature aus 2 setzt schaut der temperatur plot etwas besser aus weil gleitend über die letzten 4 werte gemittelt wird.

das mit vcgencmd schaue ich mir mal an. ich weiss aber nicht ob das wirklich etwas übers netzteil aussagt sondern eher für over/underclocking interessant ist. wenn das netzteil so schwach ist das die cpu spannungsregler nicht mehr die eingestellte spannung liefern get vermutlich eher garnichtsmehr als bei der voltage noch was zu sehen.

gruss
  andre
Titel: Aw: sysstat
Beitrag von: PeMue am 16 Juni 2013, 19:57:05
Hallo Andre,

ich weiß nicht, ob die 5  bzw. 15 Minutenwerte wirklich interessant sind. Ich habe es mal für die Fritz Box 7170 implementiert, siehe Bild

(siehe Anhang / see attachement)
.
Für mich war einfach die Frage, was mit meinen Perl Kenntnissen machbar ist - also eher akademisch und vielleicht etwas praxisfremd.
Wenn Du Zeit und Muße hast, könntest Du mir mal erklären, wie man die Sprache von Perl aus umstellt, ich habe es in der Init mit

# set locale LC_MESSAGES to "C" in case it is installed, else failure on console
if (qx(locale -a | grep C) ne "") # locale C installiert?
{
  qx(export LC_MESSAGES="C");
}

probiert, aber es tut nicht.

Danke + Gruß

PeMue
Titel: Aw: sysstat
Beitrag von: justme1968 am 16 Juni 2013, 21:01:41
es gibt im prinzip zwei möglichkeiten:

- entweder für den eigenen prozess, dann vererbt es sich auf die gestarteten child prozesse, in diesem fall aber ungünstig weil es ganz sicher seitenwirkungen auf fhem hat.
- für jedes gestartete child. das machst du und es schaut ok aus. aber du musst es dann bei jedem start machen weil es nicht von einem child zum naechsten vererbt wird weil die ja nicht direkt etwas miteinander zu tun haben.

du musst also im gleichen qx in dem du die werte ließt auch das environment setzen. im gleichen shell aufruf.

gruss
  andre
Titel: Aw: sysstat
Beitrag von: justme1968 am 30 Juni 2013, 10:56:40
mit dem update von morgen ist es möglich das stateFormat attribut mit SYSSTAT zu nutzen.

gruss
  andre
Titel: Aw: sysstat
Beitrag von: justme1968 am 29 Juli 2013, 21:53:14
mit dem update von morgen ist es möglich die uptime zu loggen.

gruss
  andre
Titel: Aw: sysstat
Beitrag von: dlehmann69 am 31 Juli 2013, 09:18:37
Hallo,

ich habe da mal uptime mit "uptime 1" aktiviert. Jetzt steht in den Readings hinter uptime eine 4. Was meint diese Zahl? Im System selbst sehe ich eine Zeit von knapp über 4 Tagen. Wenn es die Tage sind, könnten dann vielleicht noch die Stunden und Minuten ergänzt werden?

Beste Grüße
Dirk
Titel: Aw: sysstat
Beitrag von: justme1968 am 31 Juli 2013, 10:34:43
ich habe das format geändert so das immer tage und stunden angegeben werden. im gleichen format wie es uptime auch ausspuckt.

ich bin damit aber noch nicht ganz glücklich. ich hätte zumindest optional gerne ein format das lesbar ist und das man trozdem einfach vergleichen kann um in einem notify direkt ohne gross zu parsen eine meldung schicken kann wenn die uptime plötzlich kleiner ist als beim mal davor.

iso 8601 ist dazu nicht wirklich handlich, alles in minuten anzuzeigen ist nicht wirklich lesbar.

gruss
  andre
Titel: Aw: sysstat
Beitrag von: Dr. Boris Neubert am 31 Juli 2013, 19:32:10
Hi,

würde das Reading in Sekunden angeben und es dem Benutzer mittels stateFormat überlassen, die Darstellung zu wählen, oder ein extra friendlyUpdate-Reading erstellen.

Viele Grüße
Boris
Titel: Aw: sysstat
Beitrag von: justme1968 am 31 Juli 2013, 20:43:47
ab morgen gibt es die möglichkeit die uptime in sekunden anzuzeigen wenn das attribut auf 2 gesetzt ist.

gruss
  andre
Titel: Aw: sysstat
Beitrag von: Frank Hell am 04 Oktober 2013, 12:43:21
Bei mir ist die Anzeige des Durchschnittswerts (Avg) im Chart immer 0.0:


(siehe Anhang / see attachement)


Die Ausgabe ist über das Label-attr wie folgt definiert:


"Load Max: $data{max1}, Aktuell: $data{currval1}, Avg: $data{avg1}"


Warum wird der Avg-Wert nicht korrekt ermittelt?
Titel: Antw:sysstat
Beitrag von: Frank Hell am 12 Oktober 2013, 13:50:57
Falscher Alarm - wer Avg-Wert wird scheinbar korrekt ermittelt. Habe meinen RaspberryPi etwas "gestresst" mit:

sudo apt-get install stress
stress --cpu 5 --io 5 --vm 5 --vm-bytes 10M --timeout 3600s


Schon nach wenigen Minuten erhöhter CPU-Last lag der Avg-Wert über der magischen 0. Die durchschnittliche Systemlast im täglichen Betrieb ist offenbar so gering, dass der Durchschnittswert etwa bei Null liegt:

(//)
Titel: Antw:sysstat
Beitrag von: justme1968 am 28 Oktober 2013, 23:31:48
anbei ein test der nächsten SYSSTAT version.

was ist neu:
wie wird es verwendet:
was kommt noch:
die beiden screenshots sind jeweils von einem linux und einem windows system.

gruss
  andre
Titel: Antw:sysstat
Beitrag von: justme1968 am 01 November 2013, 00:01:54
noch ein update:

für linux targets ist es jetzt möglich den user,system,idle und iowait anteil an der systemlast zu überwachen.

ich weiss noch nicht wie sinnvoll das ist bei den relativ großen intervallen (mindestens 60 sekunden) die erlaubt sind. wenn es nicht funktioniert fliegt es wieder raus...

gruss
  andre
Titel: Antw:sysstat
Beitrag von: Billy am 19 November 2013, 18:59:33
Hallo Andre,

habe heute auf meinem BBB systat eingerichtet. Läuft von Den Readings wie es soll. :D

Wollte mir dann mit --> stateFormat  Uptime uptime, Load load, /data

die uptime, load und die prozentuale Speicherbelegung meiner microSD Anzeigen lassen.

Klappt alles bis auf , /data. d.h. statt  Speicherbelegung wird /data angezeigt.

Wo liegt der Hund begraben?

Billy
Titel: Antw:sysstat
Beitrag von: justme1968 am 19 November 2013, 19:04:24
du fürchte es liegt am / in data.

versuch mal ob du mit ReadingsVal das reading data auslesen kannst. wenn das geht kannst du stateFormat auf die perl ausdruck variante mit {} umstellen und den string selber zusammen bauen.

wenn es nicht geht überlege ich mir etwas.

gruss
  andre
Titel: Antw:sysstat
Beitrag von: Billy am 19 November 2013, 19:39:58
Danke Andre :)

{ReadingsVal("sysstat","/data", "")}  --> geht bringt die 4%

Zitatwenn das geht kannst du stateFormat auf die perl ausdruck variante mit {} umstellen und den string selber zusammen bauen.
:-\

Fürchte da stehe ich jetzt auf dem Schlauch.

Billy
Titel: Antw:sysstat
Beitrag von: justme1968 am 19 November 2013, 22:51:38
attr sysstat stateFormat {"Uptime ". ReadingsVal("sysstat","uptime", "") .", Load ". ReadingsVal("sysstat","load", "") .", Free ". ReadingsVal("sysstat","/data", "")}

gruss
  andre
Titel: Antw:sysstat
Beitrag von: Billy am 20 November 2013, 11:52:50
Hallo Andre,

vielen Dank das hätte ich nie hinbekommen.
Hat super geklappt, habe hinten noch % eingefügt.

attr sysstat stateFormat {"Uptime ". ReadingsVal("sysstat","uptime", "") .", Load ". ReadingsVal("sysstat","load", "") .", Free ". ReadingsVal("sysstat","/data", "") ." % "}

So sieht das Ergebnis jetzt aus.(Anlage)

Grüsse
Billy
Titel: Antw:sysstat
Beitrag von: Luigi am 20 November 2013, 13:51:39
Hallo Billy,

wie bekommst du beim BBB die Boardtemperatur?

Gruß
Luigi
Titel: Antw:sysstat
Beitrag von: Billy am 20 November 2013, 14:00:18
Hallo Luigi,

die Frage hatte ich erwartet. ;D

Siehe hier.

http://forum.fhem.de/index.php/topic,15555.msg100961.html#msg100961

und hier Antw:BeagleBone Black vs Raspberry Pi
« Antwort #62 am: 03 November 2013, 12:15:08 »

1-Wire DS1820 sitzt im Gehäuse auf dem Cape!

Gruss Billy

Titel: Antw:sysstat
Beitrag von: justme1968 am 20 November 2013, 16:06:37
schau doch mal ob auf dem bbb nicht auch die temperaturen über /proc auslesbar sind.

dann baue ich es direkt ins sysstat modul ein wie für die rapsberry pi auch.

gruss
  andre
Titel: Antw:sysstat
Beitrag von: Billy am 20 November 2013, 17:19:02
Hi Andre

Zitatschau doch mal ob auf dem bbb nicht auch die temperaturen über /proc auslesbar sind.
in BBB nicht implementiert.
Zitat aus Google Groups.
ZitatI don't think it's been implemented in am335x yet.
Deswegen mit 1-wire realisiert.

Gruss Billy
Titel: Antw:sysstat
Beitrag von: justme1968 am 20 November 2013, 18:20:58
noch eine kleine erweiterung des snmp modus:

- möglichkeit synology diskstation system temperatur zu überwachen
- user,system und idle überwachung per snmp

da ich beides für mich benutze werde ich das so einchecken wenn bis nächste woche keine probleme gemeldet werden.

gruss
  andre
Titel: Antw:sysstat
Beitrag von: fh168 am 24 November 2013, 00:10:58
Interessant wäre es zu wissen, ob er eine schlafende Synology wieder jedesmal aufweckt, wenn ein (Temperatur)-Abruf stattgefunden hat.

Robin
Titel: Antw:sysstat
Beitrag von: justme1968 am 16 Dezember 2013, 20:53:16
die änderungen zum überwachen per snmp und die möglichkeit windows systeme und die synology system temperatur zu überwachen sind jetzt eingecheckt.

gruss
  andre
Titel: Antw:sysstat
Beitrag von: Spiff am 09 September 2014, 20:55:23
Hi!

Ich würde in meinen Floorplan gerne eine kleine Systemübersicht einbauen. Es soll dargestellt werden, wieviel Speicherplatz auf den verschiedenen Platten noch frei ist.
Am Schönsten wäre ein Balken, der prozentual gefüllt ist und darin steht "frei: xxx GB".
Ich habe zu dem Zweck zwei sysstat-Definitionen angelegt: einmal mit "showpercent 1" und einmal ohne.

Aus beidem würde ich jetzt versuchen, mit Hilfe einer readingsGroup das oben beschriebene zusammenzubasteln, aber bevor ich mich da rantraue, frage ich lieber nach, ob das so schlau ist.

- wenn ich zwei sysstat-Definitionen habe, stimmen die beiden Werte nicht zwangsweise zusammen, weil die Daten zu unterschiedlichen Zeiten aktualisiert werden könnten, richtig? Also nur rein theoretisch, wenn der Intervall rel. groß eingestellt ist und ich gerade riesige Dateien hin- und herschiebe.
- kann ich beide Readings in einer readingsGroup übereinanderlegen oder muss ich zwei readingsGroups definieren und die dann übereinander platzieren (Balken unten, Text oben)?
- gibt es eine einfache Methode für solch einen Balken? Ich würde jetzt erstmal 11 Bilder anlegen und die readingsGroup so definieren, dass alle 10% ein anderes Bild angezeigt wird.
- ist eine Funktion in myUtils nötig, um die Bytes in GB umzuwandeln (durch 1024³ und dann abrunden) oder kann ich das direkt in der readingsGroup durchführen?

Danke & viele Grüße
Spiff
Titel: Antw:sysstat
Beitrag von: justme1968 am 10 September 2014, 16:53:15
ich würde den balken direkt in html 'zeichnen' und nicht icons dafür verwenden.

schau dir mal z.b. den thread hier an: http://forum.fhem.de/index.php/topic,25313.msg183189.html#msg183189 (http://forum.fhem.de/index.php/topic,25313.msg183189.html#msg183189).  nach dem gleichen prinzip kannst du dir auch einen horizontalen balken inklusive text über valueFormat oder <{meinBalken(...)}@reading> in eine readingsGroup zelle generieren.

in forum gibt es noch ein beispiel das auf die gleiche art den rolladen stand darstellt.

gruss
  andre
Titel: Antw:sysstat
Beitrag von: Spiff am 13 September 2014, 01:11:52
Super, danke.

Den horizontalen Balken habe ich hinbekommen.

Aber wie kann man mehrere Elemente in eine einzelne Zelle quetschen?
Ich habe noch ein Overlay-png mit Transparenz gebastelt, das den Balken etwas verschönern soll. Ich habe das Bild momentan manuell als weblink über den Balken gelegt. Leider sitzt der in jedem unterschiedlichen Browser etwas woanders.

Den Text habe ich auch noch nicht angezeigt bekommen.
Wenn ich ein valueIcon definiert habe, scheint es der readingsGroup egal zu sein, was in valueFormat steht, richtig?

Edit: noch ein Problem mit sysstat:
Die Readings der Festplatten heissen z.B. "C:\". Ich weiss nicht, wie ich das wegen des Doppelpunktes und Backslashes sauber für die Weiterverarbeitung benutzen kann. Die einzige Möglichkeit, die ich gefunden habe ist:
define sysstat_rg readingsGroup sysstat:C.*
Geht das besser?

Gruß
Spiff
Titel: Antw:sysstat
Beitrag von: justme1968 am 13 September 2014, 10:34:11
was genau meins du mit in eine zeile?

den text solltet du einfach mit in das div stecken können.

den : kannst du je nach kontext als . oder als \x3a schreiben.

gruss
  andre
Titel: Antw:sysstat
Beitrag von: Spiff am 13 September 2014, 11:05:10
Ich meinte Zelle, nicht Zeile. Aber das Bild kann ich dann ja vielleicht auch ins Div setzen. Probiere ich nachher mal.

Gruß
Spiff
Titel: Antw:sysstat
Beitrag von: Spiff am 13 September 2014, 23:21:09
Hi,

ich habe es jetzt so hinbekommen, siehe Anhang.

Ich habe die Balken-Routine so verändert, dass sie sehr flexibel ist: man kann jeden Balken einzeln im Design anpassen (Balkenfarben, Balkengröße, Schriftgröße & -farbe, welches Reading als Balken benutzt werden soll und welches als Text,...). Der Gradient ist auch mit CSS erstellt. Die oberen beiden Balken haben ein Bild als Overlay, das die Unterteilungen darstellt. Es wird immer mitskaliert. Auch das lässt sich im valueFormat der readingsGroup einstellen.

Ich passe das noch ein bisschen an, erstelle vielleicht ein paar Gradienten zur Auswahl und würde das dann ins wiki stellen. Da hin und wieder mal Balken erwünscht sind, könnte man diese Funktion ja vielleicht in die readingsGroup integrieren?

Gibt es die Möglichkeit, dass man noch ein longpoll realisiert? Momentan kriegt die readingsGroup nicht mit, dass sich was verändert hat, muss also manuell aktualisiert werden.

Viele Grüße
Spiff
Titel: Antw:sysstat
Beitrag von: justme1968 am 13 September 2014, 23:29:36
das schaut sehr cool aus.

longpoll sollte eigentlich gehen. siehst du die events im event monitor? auch die von der readingsGroup?

wenn du deinen code gepostet hast schaue ich es mir an.

gruss
  andre
Titel: Antw:sysstat
Beitrag von: Spiff am 14 September 2014, 00:25:20
Ja, die readingsGroup taucht im Eventmonitor auf und wird dort auch korrekt angezeigt. Ich habe das gerade mit einem setreading ausprobiert.
Die Ansicht in einem Raum aktualisiert sich aber nicht automatisch.

Das muss wieder mit dem "C:\" zu tun haben. Das "PhysicalMemory"-Reading funktioniert einwandfrei.

Gruß
Spiff
Titel: Antw:sysstat
Beitrag von: justme1968 am 14 September 2014, 00:51:00
das kann sein. der : wird intern als trennzeichen verwendet.

sobald ich deinem code habe kann ich es aber reparieren.

gruss
  andre
Titel: Antw:sysstat
Beitrag von: Spiff am 10 Dezember 2014, 16:04:00
Hi,

ich habe bemerkt, dass das Longpoll-Problem wohl auch die Ursache ist, dass mein Floorplan irgendwann nicht mehr korrekt aktualisiert wird (zumindest unter Firefox).

Wenn ich die Konsole mal mitlaufen lasse, finde ich dort folgende Einträge:

SyntaxError: An invalid or illegal string was specified fhemweb.js:83
"Longpoll: sysstat<<15,9,7,5<<<div id="sysstat"  class="col2">15,9,7,5</div>" fhemweb.js:14
"Longpoll: sysstat-C:\<<65.2<<65.2" fhemweb.js:14


Diese drei Zeilen kommen ab dem ersten Auftreten jedes mal, wenn ein Longpoll hereinkommt. Man kann gut sehen, dass am Anfang alles korrekt übertragen wird (Temperaturen etc.) und sobald das sysstat-Reading kommt, hagelt es nur noch diese drei Zeilen.

Über einen fix würde ich mich sehr freuen!   :D

Viele Grüße
Spiff
Titel: Antw:sysstat
Beitrag von: justme1968 am 10 Dezember 2014, 18:09:28
ich überlege mir was.

gruss
  andre
Titel: Antw:sysstat
Beitrag von: justme1968 am 14 Dezember 2014, 20:55:49
könntest du damit leben wenn der : im reading durch einen . ersetzt wird ?

gruss
  andre
Titel: Antw:sysstat
Beitrag von: Spiff am 14 Dezember 2014, 21:39:53
Ja, ich würde das Reading eh über eine readingsGroup umbenennen. Oder macht der Punkt da Probleme wegen des "Perl-Unds"? Müsste aber über "\x2e" gehen, oder?

Grüße
Spiff
Titel: Antw:sysstat
Beitrag von: Masterfunk am 29 März 2015, 15:08:14
Wäre es nicht möglich auch die CPU Nutzung per snmp aus den Systemen zu holen?
Der "load" Wert ist ja oft nichtssagend.

Gruß Detlef
Titel: Antw:sysstat
Beitrag von: justme1968 am 29 März 2015, 15:34:48
wenn snmp gesetzt ist und das perl snmp modul installiert ist versucht das modul die cpu auslastung per snmp zu lesen. zuerst aus cpu statistics load1,-5 und -15 dann aus hrProcessorLoad.

beides ist aber nicht wirklich aussagekräftiger als die load werte aus loadavg.

was vermisst du denn ?

gruss
  andre
Titel: Antw:sysstat
Beitrag von: Masterfunk am 30 März 2015, 21:15:23
Eine echte CPU Auslastung in Prozent.

Gruß Detlef
Titel: Antw:sysstat
Beitrag von: justme1968 am 30 März 2015, 21:25:15
wenn du das stat attribut setzt bekommst du die prozentuale auslastung/anteil für user, system und idle (und unter linux auch iowait).

gruss
  andre
Titel: Antw:sysstat
Beitrag von: Masterfunk am 01 April 2015, 11:04:51
Das Attribut ist mir wohl durchgegangen.

Klappt jetzt, bis auf meinen ESXi . Der scheint da nichts zu liefern.

Gruß Detlef
Titel: Antw:sysstat
Beitrag von: justme1968 am 01 April 2015, 12:04:35
hast du snmp auf dem esxi server aktiviert? das ist per default aus.

gruss
  andre
Titel: Antw:sysstat
Beitrag von: Masterfunk am 01 April 2015, 12:15:07
Ja, hab ich. Bekomme ja auch alle anderen Werte.

Gruß Detlef
Titel: Antw:sysstat
Beitrag von: justme1968 am 01 April 2015, 12:16:00
schau mal unter welcher mib die werte stehen. dann baue ich die noch mit ein.

gruss
  andre
Titel: Antw:sysstat
Beitrag von: Masterfunk am 02 April 2015, 07:59:35
Werd am WE mal auf die Suche gehen.
Titel: Antw:sysstat
Beitrag von: berbar am 06 Mai 2015, 23:57:39
Hi,

hab mal eine Frage bzgl. des BananaPi. Bei mir funktioniert das Auslesen der Temperatur nicht. Gibt es da einen Unterschied zum Rasp?

Beste Grüße
Titel: Antw:sysstat
Beitrag von: justme1968 am 07 Mai 2015, 09:50:27
ja. gibt es. ich meine das hatte ich nicht eingebaut weil mir damals niemand sagen konnte wo die temperatur auszulesen ist.

im sysmon modul ist es glaube ich inzwischen drin.

gruss
  andre
Titel: Antw:sysstat
Beitrag von: viegener am 21 Mai 2015, 19:34:07
Ich habe gelegentlich eine falsche Anzeige der Uptime, wo ein zusätzliches "0 days," for der uptime steht. Ich habe dies mehrfach beobachtet aber noch kein sicheres Pattern identifiziert.

Es könnte sein, dass es damit zusammenhängt, dass uptime auf meinem raspberry so etwas ausgibt:


$ uptime
18:52:21 up 26 days, 55 min,  1 user,  load average: 0.05, 0.05, 0.05


Normalerweise aber so:


$ uptime
19:30:26 up 26 days,  1:33,  1 user,  load average: 0.07, 0.03, 0.05


Vermutung wäre dass es an der "xx min" Info anstatt einer "hh:mm" Angabe liegt, ich habe aber den regexp in SYSSTAT noch nicht daraufhin abgeklopft...

Hat das schonmal jemand beobachtet?

Gruss,
Johannes
Titel: Antw:sysstat
Beitrag von: viegener am 24 Mai 2015, 11:08:50
Ich habe mal eine Korrektur für die falsche uptime-Anzeige für meine raspberry angefertigt.
Dazu müssten im Modul 32_SYSSTAT.pm in der Routine SYSSTAT_getUptime($) die Berechnung aus dem Ergebnis des Befehls uptime geändert werden (Ich habe auch eine modifizierte Version des Moduls als Attachment angehängt):

Bisher steht da (Zeilen 599-614)

  my $uptime = SYSSTAT_readCmd($hash,"uptime",0);

  $uptime = $1 if( $uptime && $uptime =~ m/[[:alpha:]]{2}\s+(((\d+)\D+,?\s+)?(\d+):(\d+))/ );
  $uptime = "0 days, $uptime" if( $uptime && !$2);

  if( AttrVal($name, "uptime", 0) == 2 ) {
    my $days = $3?$3:0;
    my $hours = $4;
    my $minutes = $5;

    $uptime = $days * 24;
    $uptime += $hours;
    $uptime *= 60;
    $uptime += $minutes;
    $uptime *= 60;
  }



dies sollte ersetzt werden durch

  my $uptime = SYSSTAT_readCmd($hash,"uptime",0);

  ############# match uptime time statement with the different formats seen on linux
  # examples
  #     18:52:21 up 26 days, 21:08,  2 users,  load average: 0.04, 0.03, 0.05
  #     18:52:21 up 26 days, 55 min,  1 user,  load average: 0.05, 0.05, 0.05
  #     18:52:21 up 55 min,  1 user,  load average: 0.05, 0.05, 0.05
  #     18:52:21 up 21:08,  1 user,  load average: 0.05, 0.05, 0.05
  #
  # complex expression to match only the time parts of the uptime result
  # $1 is complete up time information of uptime result
  # $2 is # days part of the uptime
  # $3 just the # from the "# days"" part or nothing if no days are given
  # $4 is complete hour/minutes or # min information
  # $5 is hours part if hours:min are given
  # $6 is minutes part if hours:min are given
  # $7 is minutes if # min is given
  $uptime = $1 if ( $uptime && $uptime =~ m/[[:alpha:]]{2}\s*(((\d*)\s*[[:alnum:]]*,?)?\s+((\d+):(\d+)|(\d+)\s+[[:alpha:]]+in[[:alpha:]]*)),?/ );
  $uptime = "0 days, $uptime" if( $uptime && !$2);
  if( AttrVal($name, "uptime", 0) == 2 ) {
    my $days = $3?$3:0;
    my $hours = $5?$5:0;
    my $minutes = $6?$6:$7;

    $uptime = $days * 24;
    $uptime += $hours;
    $uptime *= 60;
    $uptime += $minutes;
    $uptime *= 60;
  }


Im wesentlichen geht es darum den regexp für mehr verschiedene Varianten fit zu machen. Die verschiedenen Varianten sind auch im Kommentar zusammen mit den "geparsten" Elementen des regexp enthalten.

Eigentlich wäre wahrscheinlich ein Auslesen von /proc/uptime die sauberere Lösung, ich habe aber daran mal nichts geändert.

Vielleicht kann das ja Einzug in die nächste Version halten?

Gruss,
Johannes
Titel: Antw:sysstat
Beitrag von: justme1968 am 24 Mai 2015, 11:20:04
sorry für die späte antwort. ich habe gerade wenig zeit.

ja. das problem ist die unterschiedliche ausgabe von uptime in unterschiedlichen linux versionen.

inzwischen gibt es ein neben SYSSTAT_readCmd auch ein SYSSTAT_readFile und ich würde das ganze damit eigentlich lieber auf das auslesen von /proc/uptime umstellen.

falls du zeit und lust dazu hast würde ich lieber einen solchen patch einbauen :) wenn nicht tut es erst diese version. die ist vor allem mit deinen kommentaren schon mal viel besser wie die alte.

gruss
  andre
Titel: Antw:sysstat
Beitrag von: viegener am 24 Mai 2015, 18:41:17
Zitat von: justme1968 am 24 Mai 2015, 11:20:04
sorry für die späte antwort. ich habe gerade wenig zeit.

Das kenne ich sehr gut ...

Zitat von: justme1968 am 24 Mai 2015, 11:20:04
inzwischen gibt es ein neben SYSSTAT_readCmd auch ein SYSSTAT_readFile und ich würde das ganze damit eigentlich lieber auf das auslesen von /proc/uptime umstellen.

falls du zeit und lust dazu hast würde ich lieber einen solchen patch einbauen :) wenn nicht tut es erst diese version. die ist vor allem mit deinen kommentaren schon mal viel besser wie die alte.

OK, hier ist ein Vorschlag (wieder an der selben Stelle einzusetzen):


  my $uptime = SYSSTAT_readFile($hash,"/proc/uptime","");
  if($uptime) {
 
    $uptime = $1 if ( $uptime && $uptime =~ /^\s*([0-9.]+)\s+([0-9.]+)/ );

    if( AttrVal($name, "uptime", 0) != 2 ) {
      # cut off partial seconds
      $uptime = int( $uptime );
      my $seconds = $uptime % 60;
      $uptime = int($uptime / 60);
      my $minutes = $uptime % 60;
      $uptime = int($uptime / 60);

      my $hours = $uptime % 24;
      my $days = int($uptime / 24);

      $uptime = sprintf( "%d days, %d:%.2d", $days, $hours, $minutes);
      Log3 $name, 4, "$name: uptime returned :$uptime: via proc-uptime file ";    # JVI
    }

  # fallback if by any reason parsing /proc/uptime does not work
  } else {
    my $uptime = SYSSTAT_readCmd($hash,"uptime",0);

    ############# match uptime time statement with the different formats seen on linux
    # examples
    #     18:52:21 up 26 days, 21:08,  2 users,  load average: 0.04, 0.03, 0.05
    #     18:52:21 up 26 days, 55 min,  1 user,  load average: 0.05, 0.05, 0.05
    #     18:52:21 up 55 min,  1 user,  load average: 0.05, 0.05, 0.05
    #     18:52:21 up 21:08,  1 user,  load average: 0.05, 0.05, 0.05
    #
    # complex expression to match only the time parts of the uptime result
    # $1 is complete up time information of uptime result
    # $2 is # days part of the uptime
    # $3 just the # from the "# days"" part or nothing if no days are given
    # $4 is complete hour/minutes or # min information
    # $5 is hours part if hours:min are given
    # $6 is minutes part if hours:min are given
    # $7 is minutes if # min is given
    $uptime = $1 if ( $uptime && $uptime =~ m/[[:alpha:]]{2}\s*(((\d*)\s*[[:alnum:]]*,?)?\s+((\d+):(\d+)|(\d+)\s+[[:alpha:]]+in[[:alpha:]]*)),?/ );
    $uptime = "0 days, $uptime" if( $uptime && !$2);
    if( AttrVal($name, "uptime", 0) == 2 ) {
      my $days = $3?$3:0;
      my $hours = $5?$5:0;
      my $minutes = $6?$6:$7;

      $uptime = $days * 24;
      $uptime += $hours;
      $uptime *= 60;
      $uptime += $minutes;
      $uptime *= 60;
    }
    Log3 $name, 4, "$name: uptime returned :$uptime: via cmdline ";    # JVI
  }


Funktioniert bei mir soweit gut, allerdings habe ich es ja erst heute eingebaut. Ich habe mal meine vorherige Version dringelassen als fallback, wenn /proc/uptime nichts liefern sollte (auf BSD-Systemen ?), auch wenn das vermutlich overkill ist, aber wenn ich schonmal mehr Kommentare als Code schreibe  ;D

Gruss,
Johannes



Titel: Antw:sysstat
Beitrag von: justme1968 am 27 Mai 2015, 12:05:08
danke. habe eingecheckt.

man könnte jetzt noch den wert des uptime attributes auswerten um direkt zwischen /proc/uptime und uptime zu wählen. aber das mache ich wenn sich jemand beschwert das es ohne zu langsam ist :)

gruss
  andre
Titel: Antw:sysstat
Beitrag von: Kai-Alfonso am 05 Juli 2015, 10:12:04
Hi,

ich hab mal eine Frage, was mir auch nach durchlesen von den 9 Seiten noch nicht klar ist, ob es geht und wie.

Ich will per SNMP Daten von per Netzwerk erreichbaren Geräten abfragen - SNMP ist natürlich aktiviert, MIBS müsste ich noch herausfinden. Ich hab hier zum Beispiel einen Homeserver von HP, wo ich Temperatur und Lüftergeschwindigkeit in FHEW visualisieren möchte. Geht das eigentlich?

Danke und nen schönen Sonntag
Titel: Antw:sysstat
Beitrag von: justme1968 am 05 Juli 2015, 10:17:52
die mibs sind zur zeit nicht konfigurierbar. es wird nur eine hand voll standard mibs abgefragt.

ich wollte das zwar schon vor einer weile einbauen, aber es schein kaum jemand zu brauchen :)

ein wichtiger punkt ist auch das fhem keine traps empfängt sondert aktiv pollt. es gibt also eine grenze bis zu welcher anzahl an mibs das überhaupt sinnvoll ist.

gruss
  andre
Titel: Antw:sysstat
Beitrag von: justme1968 am 05 Juli 2015, 10:46:21
probier mal die angehängte version. es gibt ein neues attribut mibs. hier kannst du eine liste aus mit leerzeichen getrennten <mib>:<reading> werten hinterlegen die dann gepollt werden.

was damit nicht geht sind indirekte mibs abfragen. d.h. nur mibs in denen direkt der anzuzeigende wert steht funktionieren damit. wenn der wert noch aufbereitet oder formatiert werden muss würde ich das über ein user reading machen.

vermutlich wäre es bei mehr als ein paar wenigen reading sinnvoll das ganze asynchron im hintergrund zu machen. das mache ich wenn es doch genug anwender gibt.

gruss
  andre
Titel: Antw:sysstat
Beitrag von: Spiff am 05 Juli 2015, 12:06:55
Hi Andre,

Zitat von: justme1968 am 14 Dezember 2014, 20:55:49
könntest du damit leben wenn der : im reading durch einen . ersetzt wird ?

Hattest du das eigentlich schon geändert? Ich würde das Modul gerne wieder benutzen :)

Gruß
Spiff
Titel: Antw:sysstat
Beitrag von: justme1968 am 05 Juli 2015, 12:40:09
stimmt. da war noch was...

das problem ist nicht der : sondern der \.

bitte bau mal vor zeile 305 das hier ein: $name =~ s.\\./.g;damit werden die \ zu / und es sollte gehen.

wenn das funktioniert baue ich es ein.

gruss
  andre
Titel: Antw:sysstat
Beitrag von: Kai-Alfonso am 05 Juli 2015, 12:55:18
Zitat von: justme1968 am 05 Juli 2015, 10:46:21
probier mal die angehängte version. es gibt ein neues attribut mibs. hier kannst du eine liste aus mit leerzeichen getrennten <mib>:<reading> werten hinterlegen die dann gepollt werden.

was damit nicht geht sind indirekte mibs abfragen. d.h. nur mibs in denen direkt der anzuzeigende wert steht funktionieren damit. wenn der wert noch aufbereitet oder formatiert werden muss würde ich das über ein user reading machen.

vermutlich wäre es bei mehr als ein paar wenigen reading sinnvoll das ganze asynchron im hintergrund zu machen. das mache ich wenn es doch genug anwender gibt.

gruss
  andre


Hi, erstmal vielen Dank für die Änderung. Leider hab ich nach Upload und reload des Moduls noch kein Mib Attribut...
Titel: Antw:sysstat
Beitrag von: justme1968 am 05 Juli 2015, 12:59:58
das hast du nur wenn das das perl Net::SNMP modul installiert ist (z.b. per cpan install Net::SNMP) und in den internals auch HAS_Net::SNMP 1 siehst.

gruss
  andre
Titel: Antw:sysstat
Beitrag von: Kai-Alfonso am 05 Juli 2015, 14:34:06
Zitat von: justme1968 am 05 Juli 2015, 12:59:58
das hast du nur wenn das das perl Net::SNMP modul installiert ist (z.b. per cpan install Net::SNMP) und in den internals auch HAS_Net::SNMP 1 siehst.

gruss
  andre

Ja, hatte ich installiert - dachte ich zumindest, weil ich Perl Module meistens eher mit apt-get installiere und libsnmp-perl war installiert - reichte aber wohl nicht, mit der Nachinstallation per CPAN erkennt jetzt das Modul auch das Perl SNMP Modul und das mibs Attribut ist jetzt da.Mal weiter testen :)
Titel: Antw:sysstat
Beitrag von: Spiff am 06 Juli 2015, 18:27:22
Hi Andre,

Zitat von: justme1968 am 05 Juli 2015, 12:40:09
bitte bau mal vor zeile 305 das hier ein: $name =~ s.\\./.g;damit werden die \ zu / und es sollte gehen.

wenn das funktioniert baue ich es ein.

Habe ich gemacht, damit ist das Problem mit dem "\" anscheinend behoben. Es lief lange durch und auch das automatische Update per Longpoll bei den entsprechenden Readings wird durchgeführt.

Ich habe allerdings einen neuen Fehler (der damit eventuell gar nichts zu tun hat), der aber mein FHEM abschießt:

2015.07.06 01:11:31.282 1: PERL WARNING: Use of uninitialized value in subtraction (-) at ./FHEM/32_SYSSTAT.pm line 290.
2015.07.06 01:11:31.282 1: PERL WARNING: Use of uninitialized value in multiplication (*) at ./FHEM/32_SYSSTAT.pm line 293.
2015.07.06 01:11:31.282 1: PERL WARNING: Use of uninitialized value in division (/) at ./FHEM/32_SYSSTAT.pm line 293.
Illegal division by zero at ./FHEM/32_SYSSTAT.pm line 293.


Kann es sein, dass dieser Fehler kommt, wenn der auszulesende PC nicht eingeschaltet ist?
Ansonsten wenns hilft, lass ich verbose 5 nochmal bis zum Absturz mitlaufen.

Gruß
Spiff
Titel: Antw:sysstat
Beitrag von: justme1968 am 06 Juli 2015, 18:52:00
mit einem nicht erreichbaren rechner kommt SYSSTAT zur zeit nicht besonders gut klar. vor allem aber weil alles blockierend gepollt wird und vor allem die snmp lib in einen timeout läuft.

wenn die rechner zu definierten zeiten aus sind solltest du disabledForIntervals setzen, wenn die zeiten nicht fest liegen solltest du SYSTAT über ein PRESENCE notify für diese zeit per disable deaktivieren.

den absturz habe ich jetzt glaube ich abgefangen.

ich habe eine version mit dem mibs attribut und dem ersetzen der \ durch / eben eingecheckt.

gruss
  andre
Titel: Antw:sysstat
Beitrag von: Spiff am 06 Juli 2015, 19:02:15
Hi Andre,

Zeiten sind leider nicht definiert und PRESENCE läuft bei mir nicht, weil es keine Windows-fähige Version dafür gibt.
Zitat von: justme1968 am 06 Juli 2015, 18:52:00
den absturz habe ich jetzt glaube ich abgefangen.
d.H. ich kann es so lassen, muss aber mit Fehlern im Log leben, wenn der Rechner aus ist?

Danke auf jeden Fall für den Fix.

Gruß
Spiff
Titel: Antw:sysstat
Beitrag von: justme1968 am 06 Juli 2015, 19:11:05
es sollte auch keine fehler mehr geben. nur das blockieren kann ich nicht so einfach verhindern.

hier scheint es eine möglichkeit zu geben PRESENCE auch unter windows zu nutzen: http://forum.fhem.de/index.php/topic,10810.msg285238.html#msg285238 (http://forum.fhem.de/index.php/topic,10810.msg285238.html#msg285238)

gruss
  andre
Titel: Antw:sysstat
Beitrag von: Spiff am 07 Juli 2015, 18:47:26
Hi Andre,

Zitat von: justme1968 am 06 Juli 2015, 18:52:00
ich habe eine version mit dem mibs attribut und dem ersetzen der \ durch / eben eingecheckt.
Wohin denn? :) Ich sehe nur die Version vom 1.7. im trunk.

Zitat von: justme1968 am 06 Juli 2015, 19:11:05
hier scheint es eine möglichkeit zu geben PRESENCE auch unter windows zu nutzen: http://forum.fhem.de/index.php/topic,10810.msg285238.html#msg285238 (http://forum.fhem.de/index.php/topic,10810.msg285238.html#msg285238)
Super Tipp, danke! Ich hatte hin und wieder mal etwas ausprobiert, aber nie Erfolg gehabt. Diese Lösung funktioniert sehr gut.

Gruß
Spiff
Titel: Antw:sysstat
Beitrag von: justme1968 am 07 Juli 2015, 19:01:54
ups. da ist mit dem einchecken was schief gegangen. jetzt aber...

gruss
  andre
Titel: Antw:sysstat
Beitrag von: vbs am 15 September 2015, 12:39:13
Ich hab mal eine Frage zu einer Art "Best Practice". Ich frage per SNMP die CPU-Auslastung meiner 4 Kerne ab (handelt sich um einen Remote-Windows-PC mit Windows-SNMP-Agent):

mibs .1.3.6.1.2.1.25.3.3.1.2.7:cpuUsage0 ,.1.3.6.1.2.1.25.3.3.1.2.8:cpuUsage1 ,.1.3.6.1.2.1.25.3.3.1.2.9:cpuUsage2 ,.1.3.6.1.2.1.25.3.3.1.2.10:cpuUsage3


Nun würde ich jedoch daraus gerne eine Durschnittsauslastung "cpuUsageOverall" generieren. Wie würde ich das am besten machen? Im Moment nutze ich ein userReading:
userReadings cpuUsageOverall:cpuUsage. { GetUsageCpuOverall() }

Also die Funktion "GetUsageCpuOverall" liest alle 4 CPU-Readings und liefert den Durchschnitt zurück. Nun es es ja so, dass das Reading bei allen vier MIBs getriggert wird und Overall dementsprechend 4mal gebildet wird, wobei nur der letzte Wert gewünscht ist (wobei die ersten drei sogar falsch sind, da sie mit nicht zusammen gehörenden Werten gebildet werden).
Wie kann ich es hinbekommen, dass Overall für jeden SNMP-Poll nur einmal gebildet wird (über alle 4 Kerne)? Ich hatte schon verschiedene Ideen, die aber alle irgendwelche Pferdefüße hatten. Habt ihr da einen Tipp für mich?
Titel: Antw:sysstat
Beitrag von: justme1968 am 15 September 2015, 13:42:17
das könnte gehen wenn du das user reading mit :cpuUsage3 auf das letzte der vieru readings festlegst.

aber schau dir noch mal die mibs an die es unter windows gibt. ich glaube da war auch eine dabei die direkt so einen wert über alle CPUs ausspuckt

gruß
  andre
Titel: Antw:sysstat
Beitrag von: vbs am 15 September 2015, 18:33:50
Hi Andre,

danke für die Antwort!
Zitat von: justme1968 am 15 September 2015, 13:42:17
das könnte gehen wenn du das user reading mit :cpuUsage3 auf das letzte der vieru readings festlegst.
Die Idee kam mir auch und wäre auch eine gute Lösung. Setzt aber eben jedoch vorraus, dass die Readings in einer definierten Reihenfolge gesetzt werden (also alphabetisch). Ist das so?

Zitat von: justme1968 am 15 September 2015, 13:42:17
aber schau dir noch mal die mibs an die es unter windows gibt. ich glaube da war auch eine dabei die direkt so einen wert über alle CPUs ausspuckt
Ich hatte nach sowas gesucht, jedoch konnte ich nichts finden. Ich habe jedoch keine ordentliche Doku zu der Windows-MIB finden können und hab mich dann mit snmpwalk und Lesen der MIBs begnügt. Ich werde aber nochmals suchen, da du mir Hoffnung machst ;)
Titel: Antw:sysstat
Beitrag von: justme1968 am 15 September 2015, 19:10:11
die mibs werden genau in der reihenfolge in der sie im mibs attribut stehen abgearbeitet. die readings werden auf einen schlag aktualisiert. d.h. du kannst du an das letzte reading hängen und alle vorher sind dann aktuell.

ich meine bei der implementierung des windows load ist mir einen solche min über den weg gelaufen. ich erinnere mich aber nicht mehr genau.

die windows Perser load min (1.3.6.1.2.1.25.3.3.1.2) musst du aber eigentlich sowieso nicht selber abfragen. das ist das was systat für einen windows rechner sowieso verwendet.
in state steht die liste der einzelnen cpu werte drin, in avg_1 die summe geteilt durch 100. du kannst du einfach noch mal durch die anzahl der cpus teilen dann hast du deinen wert eigentlich.

gruss
  andre
Titel: Antw:sysstat
Beitrag von: vbs am 15 September 2015, 23:06:13
Zitat von: justme1968 am 15 September 2015, 19:10:11
die mibs werden genau in der reihenfolge in der sie im mibs attribut stehen abgearbeitet. die readings werden auf einen schlag aktualisiert. d.h. du kannst du an das letzte reading hängen und alle vorher sind dann aktuell.
Ah danke, das ist generell gut zu wissen.

Zitat von: justme1968 am 15 September 2015, 19:10:11ich meine bei der implementierung des windows load ist mir einen solche min über den weg gelaufen. ich erinnere mich aber nicht mehr genau.

die windows Perser load min (1.3.6.1.2.1.25.3.3.1.2) musst du aber eigentlich sowieso nicht selber abfragen. das ist das was systat für einen windows rechner sowieso verwendet.
in state steht die liste der einzelnen cpu werte drin, in avg_1 die summe geteilt durch 100. du kannst du einfach noch mal durch die anzahl der cpus teilen dann hast du deinen wert eigentlich.
Ok, state hatte ich mißverstanden in der Commandref. Aber ist super, deckt sich, genau wie du sagst, mit den einzelnen Werten, die ich abfrage. Also im Prinzip kann ich mein userReading durch "state" triggern und dann den String in "state" parsen (falls ich nicht noch eine eigene OID dafür CpuSummary finde).
"avg_1" wiederum hab ich bei mir nicht. Dem Quellcode nach, handelt es sich dabei um oid ".1.3.6.1.4.1.2021.10.1.3.1". Die scheint es bei mir jedoch nicht zu geben:
C:\usr\bin>snmpget.exe -c public -v2c localhost .1.3.6.1.4.1.2021.10.1.3.1.343
UCD-SNMP-MIB::laLoad.1.343 = No Such Object available on this agent at this OID

Könnte daran liegen, dass ich ja den Windows-SNMP-Agent nutze. Wäre es deiner Meinung nach besser, auf NET-SNMP unter Windows zu wechseln? Gibt es da mehr/andere OIDs?
Titel: Antw:sysstat
Beitrag von: justme1968 am 15 September 2015, 23:48:39
mein fehler. das reading heisst load. nicht avg_1.

unter linux wird 1.3.6.1.4.1.2021.10.1.3.1, 1.3.6.1.4.1.2021.10.1.3.2 und 1.3.6.1.4.1.2021.10.1.3.3 verwendet. das sind die avg_1, avg_5 und avg_15 load werte.

unter windows wird 1.3.6.1.2.1.25.3.3.1.2 verwendet und alles zum avg_1 wert zusammengerechnet.

der avg_1 wert landet dann im load reading. state ist unter linux die drei avg werte und unter die pro cpu werte in state.

die oids sollten immer gleich sein.

gruss
  andre
Titel: Antw:sysstat
Beitrag von: vbs am 17 September 2015, 19:25:09
Ich konnte leider bisher nichts finden in der MIB für Load-Summary. Macht aber nix, dank deiner Erklärung konnte ich mir jetzt einfach ein "loadAvg" machen mit "load * (100 / cpuCount)". Ist super, danke! Trigger eben einfach auf load.
Titel: Antw:sysstat Solaris
Beitrag von: pipp37 am 14 Oktober 2015, 18:06:21
Hallo.
Zuerst einmal Danke für das Modul. Perfekt.  :) Ich konnte damit einige SNMP Anfragen definieren.

Eine Abfrage  mit get filesystems bleibt erfolglos. Es erscheint nicht das Popupfenster. Wenn ich die IDs händisch eintrage, passt alles.
Fhem läuft dabei auf einem Solaris11 Server. Netsnmp ist natürlich aktiviert und konfiguriert.

Wie man sieht funktioniert der mibs Eintrag.

Physical Memory ? Passt das?
Siehe Anhang.


Internals:
   DEF        120 600
   HAS_Net::SNMP 1
   HAS_Sys::Statistics 0
   INTERVAL   120
   INTERVAL_FS 600
   NAME       Solaris1Stat
   NR         580
   STATE      0.12 0.12 0.12
   TYPE       SYSSTAT
   USE_SNMP   1
   interval_fs 360
   Readings:
     2015-10-14 17:54:43   /               32040254976
     2015-10-14 17:54:43   /mnt/storage1/fhem2 1562407725568
     2015-10-14 17:58:43   MemorySize      3403696
     2015-10-14 17:54:43   Physicalmemory  268341248
     2015-10-14 17:54:43   Virtualmemory   719147008
     2015-10-14 17:58:43   load            0.12
     2015-10-14 17:58:43   state           0.12 0.12 0.12
     2015-10-14 17:58:43   sysDescr        SunOS solaris1 5.11 11.2 i86pc
     2015-10-14 17:58:43   uptime          23 days, 21:45:41.01
   filesystems:
     1
     3
     31
     52
Attributes:
   filesystems 1,3,31,52
   mibs       .1.3.6.1.2.1.25.2.2.0:MemorySize ,.1.3.6.1.2.1.1.1.0:sysDescr
   room       System
   snmp       1
   uptime     1



Ein Auszug der snmpwalk ist auch anbei.

Gruss Armin
Titel: Antw:sysstat - Traffic
Beitrag von: pipp37 am 14 Oktober 2015, 20:31:22
Hallo.

Nachdem ich das sysstat erfolgreich mit mehreren Geräten konfiguriert habe, wäre eine erweiterte SNMP Unterstützung natürlich super.  Ich habe gelesen, dass Einträge in mib nur funktionieren wenn sie Werte liefern .
Das ist wahrschienlich bei dem  gewünschten Traffic-Mib der Fall.

Ich würde gerne den Traffic des Mikrotik Routers abfragen.

Das funktioniert im MIB Eintrag:

root@fhem1:~#     snmpget -v1 -c public 192.168.27.254  .1.3.6.1.2.1.1.1.0
SNMPv2-MIB::sysDescr.0 = STRING: RouterOS RB2011UAS-2HnD

Das liefert leider keinen Wert:
root@fhem1:~#     snmpget -v1 -c public 192.168.27.254  .1.3.6.1.2.1.31.1.1.1.6.2
IF-MIB::ifHCInOctets.2 = Counter64: 6046452



Diese OID sind dafür verantwortlich.
Vom Interface-RED=ADSL und vom  Interface LTE  würde ich gerne die Werte holen und in ein Reading stecken.
Ich weiss, es geht mit einem notify aber super wäre es direkt im Systat Modul.


0  R  ;;; red
       name=.1.3.6.1.2.1.2.2.1.2.2 actual-mtu=.1.3.6.1.2.1.2.2.1.4.2 mac-address=.1.3.6.1.2.1.2.2.1.6.2 admin-status=.1.3.6.1.2.1.2.2.1.7.2
       oper-status=.1.3.6.1.2.1.2.2.1.8.2 bytes-in=.1.3.6.1.2.1.31.1.1.1.6.2 packets-in=.1.3.6.1.2.1.31.1.1.1.7.2 discards-in=.1.3.6.1.2.1.2.
       errors-in=.1.3.6.1.2.1.2.2.1.14.2 bytes-out=.1.3.6.1.2.1.31.1.1.1.10.2 packets-out=.1.3.6.1.2.1.31.1.1.1.11.2
       discards-out=.1.3.6.1.2.1.2.2.1.19.2 errors-out=.1.3.6.1.2.1.2.2.1.20.2

1  R  ;;; lte
       name=.1.3.6.1.2.1.2.2.1.2.3 actual-mtu=.1.3.6.1.2.1.2.2.1.4.3 mac-address=.1.3.6.1.2.1.2.2.1.6.3 admin-status=.1.3.6.1.2.1.2.2.1.7.3
       oper-status=.1.3.6.1.2.1.2.2.1.8.3 bytes-in=.1.3.6.1.2.1.31.1.1.1.6.3 packets-in=.1.3.6.1.2.1.31.1.1.1.7.3 discards-in=.1.3.6.1.2.1.2.
       errors-in=.1.3.6.1.2.1.2.2.1.14.3 bytes-out=.1.3.6.1.2.1.31.1.1.1.10.3 packets-out=.1.3.6.1.2.1.31.1.1.1.11.3
       discards-out=.1.3.6.1.2.1.2.2.1.19.3 errors-out=.1.3.6.1.2.1.2.2.1.20.3




Vielleicht hilft es ja, wenn ich hier die notwendigen Infos poste, damit es integriert werden kann.

list mit ADSLBytesIn - geht leider nicht.

Internals:
   CFGFN
   DEF        60 600 192.168.27.254
   HAS_Net::SNMP 1
   HAS_Sys::Statistics 0
   HOST       192.168.27.254
   INTERVAL   60
   INTERVAL_FS 600
   NAME       MTMainRouterStat
   NR         1838
   STATE      3
   TYPE       SYSSTAT
   USE_SNMP   1
   interval_fs 600
   Readings:
     2015-10-14 20:08:08   entPhysicalDescr RouterOS 6.32.2 on RB2011UAS-2HnD
     2015-10-14 20:27:08   load            0.03
     2015-10-14 20:27:08   state           3
     2015-10-14 20:08:08   sysDescr        RouterOS RB2011UAS-2HnD
     2015-10-14 20:27:08   uptime          6 hours, 01:27.00
   filesystems:
Attributes:
   mibs       .1.3.6.1.2.1.31.1.1.1.6.2:AdslBytesIN
   room       System
   snmp       1
   uptime     1




Vielen Dank.
Gruss Armin

NACHTRAG
@justme1968
Ich würde dir auch  gerne den Port 161 auf meiner Firewall öffnen, wenn du das brauchts.
Infos dazu gerne als PM.

Titel: Antw:sysstat
Beitrag von: ChrisW am 15 Oktober 2015, 12:06:28
Nutze sysstat derzeit nur für CPU auslastung. Kann ich damit auch den Freien Speicherplatz einsehen?
Vielleicht hat ja jemand etwas zur Überwachung damit der Speicher nicht voll läuft ?
Titel: Antw:sysstat
Beitrag von: justme1968 am 15 Oktober 2015, 13:06:09
@pipp37: zu den filesystemen: was bekommst du bei einem snmpwalk auf .1.3.6.1.2.1.25.2.3.1. und .1.3.6.1.2.1.25.2.3.1.3?

.1.3.6.1.2.1.25.2.2.0 ist der gesamte hauptspeicher. der wert sollte statisch sein. es ist nicht der freie speicher. ich glaube der benutze speicher sollte .1.3.6.1.2.1.25.2.3.1.6.1 sein. das scheint aber auf vielen systemen nicht zu funktionieren.

wenn die filesyseme gehen sollte da auch der hauptspeicher auftauchen.


bist du dir sicher das die trafic mibs stimmen? mach mal ein snmpwalk auf .1.3.6.1.2.1.2.2 und schau ob da die daten die du suchst drin auftauchen. 1.3.6.1.2.1.2.2 verwendet 32 counter statt 64. vielleicht gibt es hier ein problem.

wenn du magst schick mir mal die zugangsdaten.


@ChrisW: unter linux oder per snmp kannst du auch filesysteme überwachen. hauptspeicher sollte per snmp unter den filesystemen mit auftauchen.

Titel: Antw:sysstat
Beitrag von: Spiff am 15 Oktober 2015, 13:16:00
Hi ChrisW,

das geht, ich hatte es allerdings auch nur als Info eingesetzt - da stecken keine Regeln hinter, was unternommen wird, wenn der Speicher voll ist. Eine automatische Bestellung bei amazon z.B. :-)

Gruß
Spiff
Titel: Antw:sysstat
Beitrag von: pipp37 am 15 Oktober 2015, 16:41:47
@pipp37: zu den filesystemen: was bekommst du bei einem snmpwalk auf .1.3.6.1.2.1.25.2.3.1. und .1.3.6.1.2.1.25.2.3.1.3?

Die Daten sind im Anhang

.1.3.6.1.2.1.25.2.2.0 ist der gesamte hauptspeicher. der wert sollte statisch sein. es ist nicht der freie speicher. ich glaube der benutze speicher sollte .1.3.6.1.2.1.25.2.3.1.6.1 sein. das scheint aber auf vielen systemen nicht zu funktionieren.

snmpwalk -v2c -c public localhost  .1.3.6.1.2.1.25.2.2.0
HOST-RESOURCES-MIB::hrMemorySize.0 = INTEGER: 3403696 KBytes

snmpwalk -v2c -c public localhost   .1.3.6.1.2.1.25.2.3.1.6.1
HOST-RESOURCES-MIB::hrStorageUsed.1 = INTEGER: 815978
Die 2 Werte sollten passen.

TOP

last pid: 27893;  load avg:  0.14,  0.13,  0.12;  up 24+20:26:27                                                                                                                     
105 processes: 104 sleeping, 1 on cpu
CPU states: 95.0% idle,  4.0% user,  1.0% kernel,  0.0% iowait,  0.0% swap
Kernel: 487 ctxsw, 3 trap, 666 intr, 4415 syscall, 1 flt
Memory: 3324M phys mem, 150M free mem, 1024M total swap, 905M free swap




wenn die filesyseme gehen sollte da auch der hauptspeicher auftauchen.


bist du dir sicher das die trafic mibs stimmen? mach mal ein snmpwalk auf .1.3.6.1.2.1.2.2 und schau ob da die daten die du suchst drin auftauchen. 1.3.6.1.2.1.2.2 verwendet 32 counter statt 64. vielleicht gibt es hier ein problem.
Das war es. Ich habe die Daten auch dort gefunden.
attr mibs    .1.3.6.1.2.1.2.2.1.10.2:redBytesIN ,.1.3.6.1.2.1.2.2.1.16.2:redBytesOUT

wenn du magst schick mir mal die zugangsdaten.
Sind im PM. Zugriff snmp auf die Firewall.


Danke  :)justme1968. Ich habe einstweilen die Traffic-Daten aus .1.3.6.1.2.1.2.2.1.10.2:redBytesIN ,.1.3.6.1.2.1.2.2.1.16.2:redBytesOUT usw... genommen.
Wenn ich unter dem Attribut mibs sehr viele Daten eintrage, wird es schnell recht unübersichtlich. 
Hast du einen Tipp? Eventuell die mibs in eine eigene Datei schreiben?
Gruss Armin


Titel: Antw:sysstat
Beitrag von: pipp37 am 15 Oktober 2015, 17:16:35
Anbei die 1. Version mit den funktionierenden Traffic-Daten  meiner 2 Internetverbindungen.
Warum die von Mikrotik empfohlenen Mibs nicht laufen, entzieht sich meiner Kenntniss.


0  R  ;;; red
       name=.1.3.6.1.2.1.2.2.1.2.2 actual-mtu=.1.3.6.1.2.1.2.2.1.4.2 mac-address=.1.3.6.1.2.1.2.2.1.6.2 admin-status=.1.3.6.1.2.1.2.2.1.7.2
       oper-status=.1.3.6.1.2.1.2.2.1.8.2 bytes-in=.1.3.6.1.2.1.31.1.1.1.6.2 packets-in=.1.3.6.1.2.1.31.1.1.1.7.2 discards-in=.1.3.6.1.2.1.2.2.1.13.2
       errors-in=.1.3.6.1.2.1.2.2.1.14.2 bytes-out=.1.3.6.1.2.1.31.1.1.1.10.2 packets-out=.1.3.6.1.2.1.31.1.1.1.11.2
       discards-out=.1.3.6.1.2.1.2.2.1.19.2 errors-out=.1.3.6.1.2.1.2.2.1.20.2

1  R  ;;; lte
       name=.1.3.6.1.2.1.2.2.1.2.3 actual-mtu=.1.3.6.1.2.1.2.2.1.4.3 mac-address=.1.3.6.1.2.1.2.2.1.6.3 admin-status=.1.3.6.1.2.1.2.2.1.7.3
       oper-status=.1.3.6.1.2.1.2.2.1.8.3 bytes-in=.1.3.6.1.2.1.31.1.1.1.6.3 packets-in=.1.3.6.1.2.1.31.1.1.1.7.3 discards-in=.1.3.6.1.2.1.2.2.1.13.3
       errors-in=.1.3.6.1.2.1.2.2.1.14.3 bytes-out=.1.3.6.1.2.1.31.1.1.1.10.3 packets-out=.1.3.6.1.2.1.31.1.1.1.11.3
       discards-out=.1.3.6.1.2.1.2.2.1.19.3 errors-out=.1.3.6.1.2.1.2.2.1.20.3



Titel: Antw:sysstat
Beitrag von: justme1968 am 15 Oktober 2015, 18:46:59
zu den filesystems: eigentlich ist die liste da. ich sehe auf die schnelle nicht warum es nicht geht. kann du mir de port zum solaris rechner tunneln?

zu den trafic mibs: die perl lib mag die 64 bit counter nicht wenn man v1 verwendet. du kannst in 32_SYSSTAT.pm in zeile 135 version auf 2 ändern. dann sollten die anderen counter auch gehen.

ich habe eben eine neue version eingecheckt die für das mibs attribut ein grösseres text feld zum editieren hat und die ein snmpVersion attribut kennt.

gruss
  andre
Titel: Antw:sysstat
Beitrag von: pipp37 am 17 Oktober 2015, 02:24:09
Hallo.
Der Textfeldeditor ist super.
Perfekt wäre es noch, wenn die mibs zeilenweise eingetragen werden können. Nicht nur mit Leerzeichen getrennt.
Anbei das Bild.

Die Sache mit dem V2 und den 64Bit Werten  bringt folgendes.

snmpget -v2c -c public 192.168.27.254 .1.3.6.1.2.1.31.1.1.1.6.2
IF-MIB::ifHCInOctets.2 = Counter64: 75258191

snmpget -v2c -c public 192.168.27.254 .1.3.6.1.2.1.2.2.1.10.2
IF-MIB::ifInOctets.2 = Counter32: 75266928
[code]

list MT-Router
[code]
Attributes:
   mibs       .1.3.6.1.2.1.31.1.1.1.6.2:redBytesINmt .1.3.6.1.2.1.47.1.1.1.1.2.65536:entPhysicalDescr .1.3.6.1.2.1.2.2.1.10.2:redBytesIN .1.3.6.1.2.1.2.2.1.16.2:redBytesOUT .1.3.6.1.2.1.2.2.1.10.3:lteBytesIN .1.3.6.1.2.1.2.2.1.16.3:lteBytesOUT
   snmp       1
   snmpVersion 2
   uptime     1


Leider wird nach wie vor der 64Bit Wert nicht gelesen. Ist aber nicht weiter schlimm weil der Wert im Mikrotik interfaces (.1.31.) und ethernet (.2.) enthalten ist.
Allerdings wird so kein einziger MIB Wert aktualisiert.

Danke für die Bemühung.
Gruss Armin

Nachtrag:
Noch ein Wunsch.
Ein  Attribut snmpCommunity vorbelegt mit public.
Titel: Antw:sysstat
Beitrag von: justme1968 am 17 Oktober 2015, 11:16:37
wenn ich snmpVersion auf 2 setze kann ich mit mibs .1.3.6.1.2.1.31.1.1.1.6.2:AdslBytesIN auch den 64 bit counter lesen:
ZitatReadings:
     2015-10-17 11:06:16   AdslBytesIN     84079131

das mit dem newline im attribut hatte ich zwar im modul eingebaut, es wird aber scheinbar fhem/fhemweb intern schon abgefangen. ich habe auf die schnelle noch nicht gefunden wo und ob man es dan ohne seiteneffekte ändern könnte. ich schaue mal ob ich noch mehr raus finde.

snmpCommunity ist ab morgen im update.

gruss
  andre
Titel: sysstat
Beitrag von: justme1968 am 17 Oktober 2015, 11:19:22
ps: wenn du einen raspberry pi ausliest vergleich doch mal ob es schneller ist das per snmp zu machen oder über die raspberrycpufreq und raspberrytemperature attribute.

pps: ssh und snmp zugriff sind beide zur zeit noch blockierend. bei sehr vielen mibs kann es also zu verzögerungen in fhem kommen. für snmp will ich das schon eine weile umbauen. bin aber noch nicht dazu gekommen.

gruss
  andre
Titel: Antw:sysstat
Beitrag von: ChrisW am 17 Oktober 2015, 14:40:52
hmm hab gerade alles mal 1:1 aus dem Wiki übernommen Last Funktioniert aber Speicher leider nicht ..  muss ich da noch was Optimieren und die SD Karte in meinen PI angeben?
Temperatur vom PI wäre noch ganz cool :)
Titel: Antw:sysstat
Beitrag von: justme1968 am 17 Oktober 2015, 15:49:46
speicher kommt als filesystem. hauptspeicher per snmp.

hast du raspberrytemperature gesetzt?
Titel: Antw:sysstat
Beitrag von: pipp37 am 17 Oktober 2015, 16:15:52
Zitat von: justme1968 am 17 Oktober 2015, 11:19:22
ps: wenn du einen raspberry pi ausliest vergleich doch mal ob es schneller ist das per snmp zu machen oder über die raspberrycpufreq und raspberrytemperature attribute.

pps: ssh und snmp zugriff sind beide zur zeit noch blockierend. bei sehr vielen mibs kann es also zu verzögerungen in fhem kommen. für snmp will ich das schon eine weile umbauen. bin aber noch nicht dazu gekommen.

gruss
  andre

Hallo Andre.

Die Raspi Temperature und Frequenz remote auszulesen ist ja nur mit extra SNMP CFGs möglich. Das habe ich im Code gelesen.

Darum habe ich am Remote Raspi in der snmpd.conf 2 Extend gesetzt.
Mein Raspi ist nur als ser2net  Server für meine Busware SCCs da. Der Haupt-Fhem läuft auf dem Solaris.


extend raspberrycputemp  /bin/cat /sys/class/thermal/thermal_zone0/temp
extend raspberrycpufreq    /bin/cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq


Kennst du einen besseren Weg über SNMP?

Mein List.

Internals:
   DEF        120 600 192.168.27.161
   HAS_Net::SNMP 1
   HAS_Sys::Statistics 0
   HOST       192.168.27.161
   INTERVAL   120
   INTERVAL_FS 600
   NAME       RpiStat
   NR         581
   STATE      0.00 0.02 0.05
   TYPE       SYSSTAT
   USE_SNMP   1
   interval_fs 480
   snmpVersion 2
   .userreadings:
     Rpifrequenz:
       TIME       2015-10-17 16:12:10
       modifier   none
       perlCode   { (ReadingsVal($name, "rpicpufreq", 0)) / 1000 }
       t          1445091130.98573
       trigger
       value      700
     Rpitemperature:
       TIME       2015-10-17 16:12:10
       modifier   none
       perlCode   { (ReadingsVal($name, "rpicputemp", 0)) / 1000 }
       t          1445091130.98573
       trigger
       value      51.92
   Readings:
     2015-10-17 16:10:10   /               960151552
     2015-10-17 16:10:10   Physicalmemory  256114688
     2015-10-17 16:10:10   Virtualmemory   360968192
     2015-10-17 16:12:10   load            0.00
     2015-10-17 16:12:10   rpiFrequenz     700
     2015-10-17 16:12:10   rpiTemperature  51.92
     2015-10-17 16:12:10   rpicpufreq      700000
     2015-10-17 16:12:10   rpicputemp      51920
     2015-10-17 16:12:10   state           0.00 0.02 0.05
     2015-10-17 16:12:10   uptime          23 hours, 45:22.66
   filesystems:
     1
     3
     31
Attributes:
   filesystems 1,3,31
   mibs       .1.3.6.1.4.1.8072.1.3.2.3.1.1.16.114.97.115.112.98.101.114.114.121.99.112.117.102.114.101.113:rpicpufreq .1.3.6.1.4.1.8072.1.3.2.3.1.1.16.114.97.115.112.98.101.114.114.121.99.112.117.116.101.109.112:rpicputemp
   room       System
   snmp       1
   snmpVersion 2
   uptime     1
   userReadings rpiTemperature  { (ReadingsVal($name, "rpicputemp", 0)) / 1000 }, rpiFrequenz  { (ReadingsVal($name, "rpicpufreq", 0)) / 1000 }


Titel: Antw:sysstat
Beitrag von: justme1968 am 17 Oktober 2015, 16:28:32
raspitemperature und frequenz gehen über ssh. die beiden attribute müssen gesetzt sein und ssh passend konfiguriert. d.h. ohne password und das ssh user attribut gesetzt.

wenn es per snmp gemacht wird geht es glaube ich nur.

gruß
  andre
Titel: Antw:sysstat
Beitrag von: justme1968 am 17 Oktober 2015, 20:26:49
@pipp37: schau dir mal den patch hier: http://forum.fhem.de/index.php/topic,42431.msg345873.html#msg345873 (http://forum.fhem.de/index.php/topic,42431.msg345873.html#msg345873) an.

damit sollten newline im mibs attribut funktionieren.

gruss
  andre
Titel: Antw:sysstat
Beitrag von: justme1968 am 18 Oktober 2015, 12:26:13
das mehrzeilige mibs attribut sollte ab morgen gehen: http://forum.fhem.de/index.php/topic,42431.msg346136.html#msg346136 (http://forum.fhem.de/index.php/topic,42431.msg346136.html#msg346136).

gruss
  andre
Titel: sysstat
Beitrag von: pipp37 am 18 Oktober 2015, 17:10:58
Ein grosses Lob muss hier mal ausgesprochen werden.
Ich habe den DevThread dazu gelesen.
Vielen Dank.
Grüsse Armin
Titel: Antw:sysstat
Beitrag von: pipp37 am 19 Oktober 2015, 21:24:23
Zitat von: justme1968 am 18 Oktober 2015, 12:26:13
das mehrzeilige mibs attribut sollte ab morgen gehen: http://forum.fhem.de/index.php/topic,42431.msg346136.html#msg346136 (http://forum.fhem.de/index.php/topic,42431.msg346136.html#msg346136).

gruss
  andre

Habe gerade ein Fhem Update gefahren und das mehrzeilige Mib Attribut ist perfekt. Vielen Dank.
Das war wohl etwas mehr Arbeit für so eine Kleinigkeit.

Viele Grüße Armin
Titel: Antw:sysstat
Beitrag von: justme1968 am 19 Oktober 2015, 21:25:56
die änderung an sich ist eigentlich ziemlich kein und das wird noch an anderen stellen verwendet :).

ab morgen werden die mehrzeiligen attribute auch in der detail ansicht mehrzeilig dargestellt.

gruss
  andre
Titel: Antw:sysstat
Beitrag von: justme1968 am 23 Oktober 2015, 00:10:44
es gibt hier: http://forum.fhem.de/index.php/topic,42771.0.html (http://forum.fhem.de/index.php/topic,42771.0.html) eine vorschau auf eine komplett überarbeitet version des moduls.

gruss
  andre
Titel: Antw:sysstat
Beitrag von: aramis am 06 September 2017, 22:20:01
Hallo zusammen,

auch wenn ich durch den Tread gewarnt werde dass in dem Thema seit über 120 Tagen nichts mehr geschrieben, möchte ich kein neues Thema aufmachen. Den ich vermute es ist eine ganz simple Sache die ich "falsch" mache. ;D
Ich möchte gerne meine QNAP mit FHEM abfragen und überwachen. Dazu nütze ich das Modul "SYSSTAT"

Meine Ausgangssituation:
Fhem auf eine RasPi und die NAS von QNAP.

Installiert habe ich folgende Modul auf dem PI:

snmpd, snmp, snmp-mibs-downloader, Net::SNMP

Definiert habe ich die QNAP wie folgt (Auszug aus der RAW definition):

defmod QNAP412 SYSSTAT 60 600 <IP-ADRESSE>
attr QNAP412 icon it_nas
attr QNAP412 mibs .1.3.6.1.4.1.24681.1.2.1.0:CPU_usage ,.1.3.6.1.4.1.24681.1.2.11.1.3.1:temp_hdd1 ,.1.3.6.1.4.1.24681.1.2.11.1.3.2:temp_hdd2 ,.1.3.6.1.4.1.24681.1.2.11.1.3.3:temp_hdd3 ,.1.3.6.1.4.1.24681.1.2.11.1.3.4:temp_hdd4 ,.1.3.6.1.4.1.24681.1.2.11.1.7.1:status_hdd1 ,.1.3.6.1.4.1.24681.1.2.11.1.7.2:status_hdd2 ,.1.3.6.1.4.1.24681.1.2.11.1.7.3:status_hdd3 ,.1.3.6.1.4.1.24681.1.2.11.1.7.4:status_hdd4 ,.1.3.6.1.4.1.24681.1.2.17.1.4.1:SizeTotal ,.1.3.6.1.4.1.24681.1.2.17.1.5.1:SizeFree ,.1.3.6.1.4.1.24681.1.2.4.0:SystemUptime ,.1.3.6.1.4.1.24681.1.2.6.0:temp_System ,.1.3.6.1.4.1.24681.1.2.2.0:MemTotal ,.1.3.6.1.4.1.24681.1.2.3.0:MemFree
attr QNAP412 room 9.0 System
attr QNAP412 snmp 1
attr QNAP412 snmpCommunity <COMMUNITY-STRING>
attr QNAP412 snmpVersion 2


Das Abfragen der für mich relevanten MIBS ist ohne Probleme aus FHEM herraus möglich.

Mein Problem:
Die QNAP ansich wird immer mit "noSuchObject noSuchObject noSuchObject" angezeigt.
Warum das ist habe ich glaube ich heraus gefunden. Es liegt vermutlich daran dass bei den Internals folgender Eintrag steht:
STATE     noSuchObject noSuchObject noSuchObject
Und dieser Eintrag resultiert meiner Meinung nach aus den beide Readings
"load" und "state"
Dort steht bei mir nämlich nur
"load  noSuchObject"
und
"state  noSuchObject noSuchObject noSuchObject"

Ich habe hier noch einmal die RAW definition der Readings angefügt:

setstate QNAP412 noSuchObject noSuchObject noSuchObject
setstate QNAP412 2017-09-06 22:14:10 CPU_usage 8.10 %
setstate QNAP412 2017-09-06 22:14:10 MemFree 83.6 MB
setstate QNAP412 2017-09-06 22:14:10 MemTotal 249.6 MB
setstate QNAP412 2017-09-06 22:14:10 SizeFree 4.52 TB
setstate QNAP412 2017-09-06 22:14:10 SizeTotal 8.15 TB
setstate QNAP412 2017-09-06 22:14:10 SystemUptime 2 hours, 12:23.85
setstate QNAP412 2017-09-06 22:14:10 load noSuchObject
setstate QNAP412 2017-09-06 22:14:10 state noSuchObject noSuchObject noSuchObject
setstate QNAP412 2017-09-06 22:14:10 status_hdd1 GOOD
setstate QNAP412 2017-09-06 22:14:10 status_hdd2 GOOD
setstate QNAP412 2017-09-06 22:14:10 status_hdd3 GOOD
setstate QNAP412 2017-09-06 22:14:10 status_hdd4 GOOD
setstate QNAP412 2017-09-06 22:14:10 temp_System 42 C/107 F
setstate QNAP412 2017-09-06 22:14:10 temp_hdd1 41 C/105 F
setstate QNAP412 2017-09-06 22:14:10 temp_hdd2 40 C/104 F
setstate QNAP412 2017-09-06 22:14:10 temp_hdd3 42 C/107 F
setstate QNAP412 2017-09-06 22:14:10 temp_hdd4 38 C/100 F


Es ist zwar "nur ein kosmetischer Fehler". Dennoch würde ich das gerne beheben.

Habt ihr hier Tips für mich? Hat jemand schon einmal das gleiche Problem gehabt? Wie habt ihr das gelöst?

Vielen Dank für eure Hilfe.

Liebe Grüße
euer aramis

Titel: Antw:sysstat
Beitrag von: Schlimbo am 15 April 2019, 00:02:58
Hallo aramis,

auch ich grabe dieses alte Thema noch mal aus, da ich bei der snmp Abfrage eines Zyxel Switches vor dem gleichen Problem stehe:

2019-04-14 23:30:15   load            noSuchObject
2019-04-14 23:30:15   state           noSuchObject noSuchObject noSuchObject


Meine im Attribut "mibs" definierten SNMP Abfrage funktioniert auch bei mir ohne Probleme.

Im Log erscheint aufgrund der fehlenden Werte:
2019.04.14 23:52:39.014 4: ZyxelSwitch2: got empty result from snmp query Received noSuchName(2) error-status at error-index 3
2019.04.14 23:52:39.214 1: PERL WARNING: Use of uninitialized value in split at ./FHEM/32_SYSSTAT.pm line 469.


Hast du einen Lösung dazu gefunden?

Wäre schön, wenn man snmp auch ohne die fest hinterlegten abfragen für "load", "uptime" und "filesystems" verwenden könnte.

Aus Commandref:
snmp
1 -> use snmp to monitor load, uptime and filesystems (including physical and virtual memory)


Gruß Schlimbo
Titel: Antw:sysstat
Beitrag von: reibuehl am 19 Mai 2019, 17:49:18
Trotz gesetztem Attribut uptime=2 liefert das uptime Reading in den ersten 24 Stunden immer Values wie "6 hours, 26:36.48". Nach exakt 24 Stunden wird die Uptime dann in Sekunden angegeben, wie über das Attribut ausgewählt. Gibt es einen Weg, das Device so zu konfigurieren, dass auch in den ersten 24 Stunden nur der Integer-Wert der Sekunden im Reading steht?
Titel: Antw:sysstat
Beitrag von: reibuehl am 19 Mai 2019, 18:20:50
Es scheint, dass die Regular Expression in Zeile 620 von 32_SYSSTAT.pm innerhalb der ersten 24 Stunden noch nicht zuschlägt. Mit dieser Änderung am Modul liefert es bei mir auch in den ersten 24 Stunden die Zeit in Sekunden:

--- /mnt/auto/rsnapshot/bilbo/daily.0/opt/fhem/FHEM/32_SYSSTAT.pm       2016-07-02 08:54:31.000000000 +0200
+++ /opt/fhem/FHEM/32_SYSSTAT.pm        2019-05-19 18:09:49.903957576 +0200
@@ -629,7 +629,17 @@
           $uptime += $minutes;
           $uptime *= 60;
           $uptime += $seconds;
-        }
+        } elsif( $uptime && $uptime =~ m/(\d+)\s\D+,\s(\d+):(\d+).\d+/ ) {
+          my $hours = $1;
+          my $minutes = $2;
+          my $seconds = $3;
+
+          $uptime += $hours;
+          $uptime *= 60;
+          $uptime += $minutes;
+          $uptime *= 60;
+          $uptime += $seconds;
+       }
       }

       return $uptime;


Könnte man das in das Modul übernehmen, @justme1968 ?
Titel: Antw:sysstat
Beitrag von: justme1968 am 20 Mai 2019, 14:01:29
danke. ich habe deinen patch eingecheckt. mit einem zusätzlichen $uptime = 0; am anfang der rechnung. ich denke das hat bei dir noch gefehlt.
Titel: Antw:sysstat
Beitrag von: reibuehl am 20 Mai 2019, 15:51:39
Ja, stimmt... das war ein cut&paste Fehler. Ich hätte statt "$uptime += $hours;" ein "$uptime = $hours;" schreiben sollen oder halt das $uptime = 0;.
Titel: Antw:sysstat
Beitrag von: Dersch am 02 Juni 2019, 20:59:24
Hi,

ich glaube SYSSTAT kommt nicht mit ssh über eine config Datei zurecht.

Es zeigt mir im log
2019.06.02 20:53:57 2: PiGarage: Unable to resolve the UDP/IPv4 address "garage"

Was auch klar ist denn "garage" ist ja kein Hostname, es ist der Name in meiner .ssh/config Datei.

Diese Meldung bekomme ich immer über ein get filesystems. Diese ruft er dann auch nicht ab. Ein get update funktioniert aber problemlos und ich bekomme meine gewünschten Werte.
Titel: Antw:sysstat
Beitrag von: Hanjo am 14 April 2020, 22:24:19
Hi Andre,

ich nutze dein Modul hauptsächlich wegen der SNMP-Fähigkeiten. Bei meinem Switch (48 Port) frage ich recht viele Parameter ab, was zu dieser Fehlermeldung führte:
got empty result from snmp query The message size 8343 exceeds the maxMsgSize 1472
Ich hatte dann erst versuche die maxMsgSize hochzusetzen, aber das mochte der Switch wohl nicht.

Daraufhin habe ich den einen get_request in mehrere aufgeteilt und somit das Problem umgangen.

Der Patch dafür ist anbei, wäre super, wenn du dir ihn mal anschauen und bei Gefallen einbauen könntest

Herzlichen Dank
Gruß
Hanjo
Titel: Antw:sysstat
Beitrag von: Spiff am 26 Mai 2022, 14:51:19
Hi Andre,

irgendwie funktioniert mein filesystem-Update nicht mehr. Ich kann nicht sagen wie lange, weil ich es ewig nicht genutzt habe, es aber wieder möchte.
Ist Windows...

bei einem get sysstat filesystems kommt im event monitor
2022.05.26 14:48:24.349 1 : ERROR: Select error -1 (10038), error count= 0
2022.05.26 14:48:24.349 1 : Found and deleted bad fileno for sysstat:cmd:42488


load und uptime funktioniert.

Hast du eine Idee?

Gruß
  Spiff.
Titel: Antw:sysstat
Beitrag von: Spiff am 06 Juni 2022, 00:32:02
Hi Andre,

es ist wahrsch. wieder eine Windows-Spezialität (hat ja aber schonmal funktioniert) - siehe hier:

2022.06.06 00:04:15.163 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/32_SYSSTAT.pm line 97, <$fh> line 1939.
2022.06.06 00:04:15.163 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/32_SYSSTAT.pm line 98, <$fh> line 1939.
2022.06.06 00:04:15.163 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/32_SYSSTAT.pm line 99, <$fh> line 1939.
2022.06.06 00:04:15.340 1: PERL WARNING: Use of uninitialized value $dir in hash element at fhem.pl line 6174, <$fh> line 2933.

2022.06.06 00:04:28.848 3: sysstat: bad reading name 'F:/' (allowed chars: A-Za-z/\d_\.-)
2022.06.06 00:04:28.848 3: sysstat: bad reading name 'H:/' (allowed chars: A-Za-z/\d_\.-)

2022.06.06 00:05:37.286 1: ERROR: Select error -1 (10038), error count= 0
2022.06.06 00:05:37.287 1: Found and deleted bad fileno for sysstat:cmd:2316
2022.06.06 00:05:42.286 2: sysstat: timeout reached, killing pid 7368 for cmd df -kP


Vielleicht reicht es, das ":/" zu entfernen, wenn es auftaucht?

Gruß
  Spiff.