Ein Modul zur Erfassen von diversen RPi/Linux-Statistiken (SYSMON)

Begonnen von hexenmeister, 06 Dezember 2013, 17:44:38

Vorheriges Thema - Nächstes Thema

moonsorrox

mit welchem Attribut werden die System Aktualisierungen abgefragt..?

Da im boot nur den Bootloader habe zeigt der natürlich fast oder besser gar nichts an...
Filesystem /boot:    Total: 0 MB, Used: 0 MB, 0 %, Available: 0 MB at /boot (not available)

das rootfs ist ja ausgelagert auf die SSD
SSD:    Total: 56342 MB, Used: 1828 MB, 4 %, Available: 51652 MB at /
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

volschin

@hexenmeister: Für die Fritzbox komplett eingerichtet und getestet. Works perfectly!  :)

Ich muss jetzt noch schauen, dass ich die Last durch die Events wieder reduziere. Damit der CloneDummy gut versorgt wird, muss auf dem Remote-System jede Aktualisierung ein Event Triggern. Das Schreiben eines Logs habe ich dort abgeschaltet, da nicht benötigt.

Ich hatte bis jetzt das Log auf dem Hauptsystem direkt auf die originalen Events, die über FHEM2FHEM kommen, gesetzt. Das muss ich jetzt entweder dort einschränken oder die Events vom CloneDummy nehmen.

Danke nochmal für die super Umsetzung. Jetzt steht meinem zentralen Technik-Monitoring-Raum nichts mehr im Weg.

Gruß
Veit
Intel NUC+Ubuntu 22.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dots+Show8, Logi Circle 2, HomeBridge
TIG Stack (Telegraf, InfluxDB, Grafana)

hexenmeister

Hallo Veit,

freut mich, dass es Dir nützt ;)
Die Fehlermelungen habe ich (glaube ich) eliminiert. Ich teste noch ein wenig und checke dann ein.

Grüße,
Alexander
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

hexenmeister

Zitat von: moonsorrox am 23 September 2014, 13:36:38
mit welchem Attribut werden die System Aktualisierungen abgefragt..?

Hallo moonsorrox,

das habe ich mit dem Attribut user-defined realisiert:
attr sysmon user-defined sys_updates:1440:System Aktualisierungen:cat /opt/fhem/data/updatestatus.txt
Das führt lediglich das angegebene Commando aus. In diesem Fall wird eine Datei ausgelesen und als Inhalt der Reading angezeigt.
Die Datei wird jede Nacht (um 4:00) per cron-job gefüllt:
sudo crontab -u fhem -l
0 4 * * * apt-get upgrade --dry-run| perl -ne '/(\d*)\s[upgraded|aktualisiert]\D*(\d*)\D*install|^ \S+.*/ and print "$1 aktualisierte, $2 neue Pakete"' 2>/dev/null > /opt/fhem/data/updatestatus.txt

Du kannst die Zeile in den crontab irgendeines Users auf deinem System einfügen (crontab -e).

Grüße,

Alexander
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

vuffiraa

#484
Hallo,
tolles Modul!
Ich habe Fhem bei mir auf einem Cubietruck zu laufen und dabei ist mir eine Kleinigkeit aufgefallen. In den Readings steht:

idletime 1193869 195.85 % 2014-09-23 21:16:54
idletime_text 13 days, 19 hours, 37 minutes (195.85 %)

Mir war klar, dass mein Cubie nicht grade unter Last steht, aber 196%??? Ich denke mal, das liegt an den beiden Core, die hier nur aufsummiert werden.

Grüße
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

hexenmeister

stimmt, liegt an den beider Cores. Ehrlich gesagt, ich weiß nicht, wie ich es besser machen soll. Es ist hat das Verhältnis der vergangenen Zeit zu der Inaktivitätszeit. Und die letztere gibt es nun mal zwei mal ;) Soll ich die "vergangene Zeit" mal Core-Anzahl nehmen? Wird das besser?
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

vuffiraa

#486
Klingt für mich okay. Die "vergangene Zeit" könnte ja auch doppelt genutzt werden.

Hab noch mal darüber nachgedacht. Es wäre korrekt so. Du hast die Zeit, die vergangen ist und jeder Core hätte sie unabhängig nutzen können. Für die Berechnung ist es jetzt egal, ob die "vergangene Zeit" auf die Anzahl der Cores vervielfacht wird oder einfach der Mittelwert der Idle-Zeiten genommen wird.
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

hexenmeister

OK, übergeredet ;)
Morgen, nach dem Update, gibts Idletime < 100%
Bitte testen!
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

vuffiraa

Gut, es sieht jetzt besser aus, aber irgendwie hatte ich das eigentliche Problem vorher nicht gesehen. Im Event Monitor steht jetzt:

2014-09-24 13:42:26 SYSMON sysmon uptime: 668709
2014-09-24 13:42:26 SYSMON sysmon idletime: 1309675 97.93 %
2014-09-24 13:43:26 SYSMON sysmon uptime_text: 7 days, 17 hours, 46 minutes
2014-09-24 13:43:26 SYSMON sysmon idletime_text: 15 days, 03 hours, 49 minutes (97.93 %)


Die Prozentzahl stimmt, aber man müsste die Inaktivitätszeit wohl pro Core angeben. Hier den Mittelwert zu nehmen, ist nicht richtig, z.B. der Fall wo ein Core 100% Last hat und der andere nix zu tun hat. Per Mittelwert würde man nur sagen, dass das System doppelt so viel leisten könnte. Eigentlich will man aber sehen, dass da ein Core unbenutzt war.

Kriegst du das vielleicht auch pro Core ausgeben? Da könnte man dann auch die Prozente per Core angeben, also:

2014-09-24 13:42:26 SYSMON sysmon uptime: 668709
2014-09-24 13:42:26 SYSMON sysmon idletime: 654837 97.93 % 654837 97.93 %
2014-09-24 13:43:26 SYSMON sysmon uptime_text: 7 days, 17 hours, 46 minutes
2014-09-24 13:43:26 SYSMON sysmon idletime_text: Core1: 7 days, 13 hours, 54 minutes (97.93 %); Core2: 7 days, 13 hours, 54 minutes (97.93 %)

FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

hexenmeister

Der Einwand ist zwar berechtigt, allerdings benutze ich zum Berechnen von Idletime die Ausgabe von cat /proc/uptime
Dort wird die Zeit bereits kumuliert angegeben. K.A. ob Linux die Idle-Zeit pro CPU überhaupt auf eine einfache Art zur Verfügung stellt.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

moonsorrox

Zitat von: hexenmeister am 23 September 2014, 21:15:30

sudo crontab -u fhem -l
0 4 * * * apt-get upgrade --dry-run| perl -ne '/(\d*)\s[upgraded|aktualisiert]\D*(\d*)\D*install|^ \S+.*/ and print "$1 aktualisierte, $2 neue Pakete"' 2>/dev/null > /opt/fhem/data/updatestatus.txt

Du kannst die Zeile in den crontab irgendeines Users auf deinem System einfügen (crontab -e).

Grüße,

Alexander

Also als erstes muss ich wohl auch das Verzeichnis mit der Textdatei anlegen /data/updatestatus.txt
oder..?
Dann, was ist der Unterschied ob ich es mit nano /etc/crontab eintrage oder mit crontab -e, jeweils bin ich da in einer anderen Datei, denn bei ersterer geht es nämlich nicht..!
Ich bin da nicht so bewandert... ich habe bisher meine cronjobs - 2 an der Zahl in /etc/crontab eingetragen...
was ist eigentlich der Unterschied
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

hexenmeister

ja, das Verzeichnis muss Du vorher anlegen.

Die /etc/crontab ist die systemweite Crontab. Sie hat eine Spalte mehr, nämlich den Benutzer, in dessen Aufrag der Befehl ausgeführt wird.
Mit crontab - e editierst Du die Crontab des aktuellen Benutzer. Entsprechend werden die Befehle in seinem Namen ausgeführt. Mit crontab -u <user> -e kann man auch Crontab eines anderen Benutzer ändern.

Du kannst also auch /etc/crontab nutzen, musst aber die Zeile um den Benutzer ergänzen. Weitere Informationen findest Du z.B. hier: http://wiki.ubuntuusers.de/Cron
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

moonsorrox

Zitat von: hexenmeister am 24 September 2014, 17:48:17
ja, das Verzeichnis muss Du vorher anlegen.
ja das hatte ich getan...  ;)

Zitat von: hexenmeister am 24 September 2014, 17:48:17
Weitere Informationen findest Du z.B. hier: http://wiki.ubuntuusers.de/Cron

danach hatte ich schon gesucht, dachte mir bevor ich hier blöd frage... ;) Danke
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

vuffiraa


Zitat von: hexenmeister am 24 September 2014, 14:34:22
Der Einwand ist zwar berechtigt, allerdings benutze ich zum Berechnen von Idletime die Ausgabe von cat /proc/uptime
Dort wird die Zeit bereits kumuliert angegeben. K.A. ob Linux die Idle-Zeit pro CPU überhaupt auf eine einfache Art zur Verfügung stellt.

Das mit cat /proc/uptime ist ein Argument. Ich habe auch keine Lösung parat, wie man die Idle-Zeit pro Core bekommt.

Wie geschrieben, finde ich die <100% schon mal gut.
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

hexenmeister

Ich habe leider auch nichts auf die Schnelle gefunden. Wird ersmal so bleiben müssen ;)
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy