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

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

Vorheriges Thema - Nächstes Thema

tupol

Da die Büchse nun mal offen ist, hier ein paar weitere interessante Werte:

`/usr/bin/ctlmgr_ctl r dect status/Temperature` :"DECT"-Temperatur. Ich nehme an, die kann man auch als Ersatz für die CPU-Temperatur nehmen
`/usr/bin/ctlmgr_ctl r dslstatistic status/ifacestat0/ipaddr´ : IP Adresse im Internet
`/usr/bin/ctlmgr_ctl r dslstatistic status/ifacestat0/connection_status´ : Status Internet-Verbindung
`/usr/bin/ctlmgr_ctl r box settings/night_time_control_enabled` : Status Klingelsperre
`ctlmgr_ctl r tam status/NumNewMessages`: Anzahl der nicht abgehörten Nachrichten auf dem Anrufbeantworter

Ich nehme an Du holst Dir die Netzwerkdaten aus /proc/net/dev. Vielleicht wäre es Dir auch möglich, die aktuellen Übertragungsraten zu berechnen. Eventuell aus für DSL, VSLD, ADSL, LAN)

Entschuldige, dass ich Dich so mit meinen Wünschen und Vorschlägen überflute. Aber die Idee hinter Deinem Modul ist wirklich ansteckend. :-)

Gruß

Tupol

hexenmeister

Hallo tupol!

Ich habe gerade eine neue Version in SVN eingecheckt ;)

ZitatIm Event-Monitor habe ich aber noch folgendes gefunden:
Meldungen kommen durch eine nicht fertige Feature. Sollten jetzt unterbleiben.

ZitatIch weiß nicht, ob das in Dein Modulkonzept paßt, aber mit `ctlmgr_ctl w wlan settings/ap_enabled 1` oder `ctlmgr_ctl w wlan settings/ap_enabled 0` kann man WLAN an- oder ausschalten. Gäste-WLAN dann mit guest_ap_enabled.
Wäre schön, wenn ich das aus meiner cfg rausschmeissen könnte. ;-)
Passt eher nicht dazu. Dafür würde ich ein extra Modul für besser geeignet halten (FB_CONTROL oder so).

ZitatAnregung: Vielleicht sollte man wlan_state mit den Werten off und on führen und wlan_state_text weglassen.
OK

"DECT"-Temperatur funktioniert bei mir nicht (wahrscheinlich weil DECT abgeschaltet ist). Also doch kein Ersatz für CPUTemp. Restliche Cmds habe ich eingebaut.

ZitatIch nehme an Du holst Dir die Netzwerkdaten aus /proc/net/dev. Vielleicht wäre es Dir auch möglich, die aktuellen Übertragungsraten zu berechnen. Eventuell aus für DSL, VSLD, ADSL, LAN)
Nö, aus ifconfig. Könnte man schon machen, ist aber etwas aufwändiger. Muss ich mal überlegen...

ZitatEntschuldige, dass ich Dich so mit meinen Wünschen und Vorschlägen überflute.
Schon OK ;)

Grüße,

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

tupol


Pnemenz

hallo hexenmeister,

danke für dieses coole modul.

gibt es eine möglichkeit, die readings für DbLog zu optimieren? betateilchen schrieb dazu:
ZitatDu solltest in DbLog die Einzelreadings "Total" und "Used" verwenden und nicht mit Spalten arbeiten - da ist etwas Umdenken angesagt. Falls das Modul solche Einzelreadings nicht bereitstellt, sollte der Modulautor das nachholen.

DbLog versucht bereits beim Loggen, aus den generierten Events die Werte "reading" "value" "unit" zu trennen, sodass Du dann in #DbLog nur noch die <device>:<reading> Kombination angibst, um den entsprechenden Wert zu plotten.
http://forum.fhem.de/index.php/topic,23182.msg165301.html#msg165301


hexenmeister

Hallo!

SYSMON stellt eine ganze Reihe Readings bereit. Sie alle einzeln auszugeben erschien mir zu viel des Guten. Ich muss mir das durch den Kopf geen lassen. Evtl. werde ich eine Möglichkeit einbauen, zusätzliche (Einzel-)Readings mittels eines Attributes einzublenden.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Pnemenz

Es würde reichen, die wichtigsten Readings für die Serverüberwachung einzeln auszugeben. Ich denke da an Load, Ram Total, Ram Free, Ram Free%, Netzwerk Trafik IN/OUT pro Interface,  Nutzung der Partitionen (in %).

Könnte man dieses Modul auch ohne FHEM in einem Cronjob laufen lassen um die Daten für FHEM in eine Datenbank zuschreiben?

lg
Peter

betateilchen

Zitat von: hexenmeister am 04 Mai 2014, 22:22:56
Evtl. werde ich eine Möglichkeit einbauen, zusätzliche (Einzel-)Readings mittels eines Attributes einzublenden.

Du könntest eine Get-Methode implementieren, an die man mehrere Readings (z.B. durch Komma getrennt) übergibt. Dann kannst Du innerhalb des Get die Readings für exakt diese gewüschten Werte setzen und regelmäßig aktualisieren. Damit kann jeder User selbst entscheiden, welche Einzelreadings er braucht.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

hexenmeister

ZitatDann kannst Du innerhalb des Get die Readings für exakt diese gewüschten Werte setzen und regelmäßig aktualisieren.
So eine implizite Definition finde ich etwas undurchsichtig... Besser wäre dann ein Attribut mit der Liste der gewünschten Readings.
Oder habe ich Dich falsch verstanden?
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

hexenmeister

Mein Modul, klar. Würdest du trotzdem die Güte haben, deine Idee zu erklären? ;)
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

betateilchen

Hab ich doch oben schon gemacht? Wenn es "mein" Modul wäre, würde ich das nicht über Attribute steuern, sondern über eine Get-Methode mit einer Liste der gewünschten Werte. Das Ergebnis "sieht" in beiden Fällen weitgehend gleich aus, aber der Vorteil wäre, dass sich der Abruf der Daten jedesmal "anders" durchführen lässt, je nachdem, welche Werte man gerade haben möchte. Bei der Attributsteuerung müsste man jedesmal erst das "Selektionsattribut" neu setzen, was erheblich aufwändiger ist, vor allem, wenn man die Werteabfrage automatisiert durchführen und die Ergebnisse weiterverarbeiten möchte, z.B. um einen RSS zu generieren.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

hexenmeister

Ein 'GET', das implizit auch noch ein 'set' macht? Und definiert damit die Liste der Readings, die ab dann existieren sollen und künftig noch automatisch upgedatet werden? Ich bin dafür, dass eine Methode nur eine Zuständigkeit hat.
Eine extra Methode, die zu einer gegebener Liste der Attribute ein Array mit Werten liefert, kann ich jedoch einbauen (falls jemand diese braucht).
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

hexenmeister

Neue Methode eingebaut: SYSMON_getValues([array of desired values]) : HASH

Wegen Einzelreadings will ich noch überlegen...
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

chris1284

#328
hi,

habe das modul seit dem wochenende am laufen. an sich eine tolle sache aber:

- es sind default echt zu viele werte. eine möglichkeit für den user die zu messenden/anzuzeigenden werte selbst zu definieren wäre super
- es fehlt irgendwie die cpu-frequenz_standard (z.B bei meinem cubie 1ghz)
- die aktuelle cpu_freq wir nur für einen kern angezeigt nicht für beide
- ich würde mir wünschen das solche readings
Zitatram | Total: 1984.03 MB, Used: 143.04 MB, 7.21 %, Free: 1840.99 MB
aufgedröselt werden. also eines ram_sum, eines ram_used, eines ram_free
- die cpu-auslastung gesamt in % und gesamt pro kern fände ich gut  (runtergebrochen auf user, sys, usw hast du ja schon, find ich aber relativ uninteressant und muss 100% - idle = usage_sum  rechnen ), sprich cpu_usage_sum: 20%

evtl. ist ja das ein oder andere interessant / wert es umzusetzen. Danke nochmal fürs modul, daumen hoch.

tupol

aufdröseln sind aber noch mehr readings. Das kann man ja auch mit einem "split / /, $reading" verarbeiten.

Ich habe das selbe Problem mit der LUXTRONIK2 und statistics. Ich wünschte, es gäbe ein Möglichkeit, die Readings zu gruppieren.