FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: xenos1984 am 23 Juni 2020, 10:54:01

Titel: Ideen zu SYSMON
Beitrag von: xenos1984 am 23 Juni 2020, 10:54:01
Seit einiger Zeit benutze ich SYSMON, um Statistiken über die verschiedenen Geräte in meinem Netwerk zu sammeln (ein Server, 2 Laptops, ein paar RPi, alles unter Linux und über ssh, bis auf den FHEM-Server selbst). Das Modul kann schon sehr viel und liefert viele Daten, von daher bin ich ziemlich begeistert davon. Ein paar Dinge sind mir aufgefallen:


Als Workaround habe ich einen Perl-Skript geschrieben, der gewissermaßen umgekehrt funktioniert - also statt aus FHEM heraus die Daten über ssh abzurufen, läuft der Skript (derzeit im Minutentakt über cron) auf dem jeweils überwachten System, liest dort die Daten aus und schickt sie über MQTT an den FHEM-Server. Auf dem Server werden die Daten dann in ein MQTT2_DEVICE gelesen. (Alternativ könnte man sicher auch ein Dummy über Telnet setzen, aber so erscheint es mir eleganter, zumal die Daten JSON-codiert sind.)

Der Vorteil besteht nun darin, dass statt einer periodischen Abfrage - auch dann, wenn das zu überwachende Gerät nicht im Netzwerk vorhanden ist - die Daten immer dann gesendet werden, wenn das Gerät vorhanden ist und läuft, und zwar in einem Rutsch als MQTT Nachricht. Wenn das Gerät offline ist, kommen einfach keine Daten, und es wird auch nicht danach gesucht.

Nachteil ist natürlich, dass man den Skript auf dem jeweiligen Zielsystem laufen lassen muss, und auf diesem dann z.B. auch Perl braucht, den Skript installieren / kopieren und z.B. über cron aktivieren muss. "Eleganter" ist SYSMON in dem Sinne, dass die gesamte Kontrolle - was wann abgefragt wird - zentral in FHEM liegt, und man nur den Zugriff über ssh auf das Zielsystem einrichten muss, aber sonst am Zielsystem nichts machen.

Den Skript in seiner derzeitigen, sicher verbesserungsfähigen Form habe ich angehängt, als Idee oder Inspiration. Ein paar Hinweise dazu:

Kommentare und Ideen sind natürlich sehr willkommen!
Titel: Antw:Ideen zu SYSMON
Beitrag von: Wernieman am 19 September 2020, 15:20:29
Ich finde es schon mal gut, hätte da aber eine Anmerkungen:

Würde Dir Empfehlen, für jeden "Wert" ein Unterprogramm zu schreiben. So kann man es dann einfacher Anpassen". Wenn Ein Wert z.B. auf einem Rechner nicht existiert, klammert man einfach "nur" diesen Aufruf aus.
Titel: Antw:Ideen zu SYSMON
Beitrag von: xenos1984 am 19 September 2020, 15:52:55
Zitat von: Wernieman am 19 September 2020, 15:20:29
Würde Dir Empfehlen, für jeden "Wert" ein Unterprogramm zu schreiben. So kann man es dann einfacher Anpassen". Wenn Ein Wert z.B. auf einem Rechner nicht existiert, klammert man einfach "nur" diesen Aufruf aus.
Gute Idee, das werde ich bei Gelegenheit mal umsetzen.
Titel: Antw:Ideen zu SYSMON
Beitrag von: Otto123 am 19 September 2020, 22:03:52
Hi,

ich finde die Umkehrung der Datenübertragung goldrichtig. Ich meine das ssh Setup ist jetzt auch nicht völlig easy.
Das Script müsste auf dem github (oder so) liegen und man bräuchte noch ein Setup Script dafür :)

Könnte man für sowas eigentlich den MQTT2_CLIENT einfach einbinden? Wieviel FHEM braucht der? Vielleicht ne schräge Idee. Vielleicht egal ob man mqtt oder das Modul installieren muss.
Alles nur laut gedacht. :)

Ich hatte schon mal ganz rudimentär mit MQTT für Windows Systeme angefangen. Wenn man sich einmal auf das Format für die Json Strings festgelegt hat, geht das Prinzip für ganz unterschiedliche Systeme mit einheitlicher Sammelstelle in FHEM.

Gruß Otto
Titel: Antw:Ideen zu SYSMON
Beitrag von: xenos1984 am 20 September 2020, 22:06:53
Zitat von: Otto123 am 19 September 2020, 22:03:52
Das Script müsste auf dem github (oder so) liegen und man bräuchte noch ein Setup Script dafür :)
Das kann ich bei Gelegenheit mal in Angriff nehmen. Bisher sind darin einige Dinge fest eingegeben (MQTT Topic an das die Daten gesendet werden, MQTT Server Host / Port), d.h. das erfordert etwas Arbeit es so umzuschreiben, dass man es "automatisch" installieren oder konfigurieren kann.
Zitat
Könnte man für sowas eigentlich den MQTT2_CLIENT einfach einbinden? Wieviel FHEM braucht der? Vielleicht ne schräge Idee. Vielleicht egal ob man mqtt oder das Modul installieren muss.
Gute Frage, mit dem habe ich bisher nicht gearbeitet. In FHEM nutze ich nur MQTT2_SERVER und keinen externen Broker (Mosquitto nur als Client), weil in meinem Anwendungsfall MQTT ausschließlich zur Kommunikation mit FHEM genutzt wird. Sollte der MQTT2_CLIENT dann auf der sendenden Seite tätig sein?
Titel: Antw:Ideen zu SYSMON
Beitrag von: Otto123 am 20 September 2020, 22:35:55
Naja quasi anstatt "Mosquitto nur als Client" (mosquitto_pub) MQTT2_CLIENT.
Rudi hat es ja geschafft MQTT ohne irgendwelche anderen Module zu implementieren. Aber läuft eben sicher nicht ohne FHEM - blöde Idee von mir.