OWX kann FHEM abschiessen ?!?

Begonnen von cwagner, 06 Dezember 2013, 23:30:41

Vorheriges Thema - Nächstes Thema

Spezialtrick

So der Watchdog ist eingerichtet. Anfangs hatte ich wieder massive Probleme. FHEM wurde nicht erkannt und demnach ständig beendet. Ich habe mir dann mal die Definitionen in der Fhem.cfg und die bereitgestellten Skripte näher angeschaut und bin in der "watchdogloop.sh" fündig geworden. Da ich die zu überwachende Log Datei von "NN_TE_DMST01.Server_Heartbeat-%Y-%m.log" in "Server_Heartbeat-%Y-%m.log" umbenannt habe, passte meine Konfiguration einfach nicht mehr zum Skript, weil der Watchdog laut Skript die "NN_TE_DMST01.Server_Heartbeat-%Y-%m.log" kontrollieren soll:

# Zu ueberwachende Log-Datei (Grundname)
activeLogName=NN_TE_DMST01.Server_Heartbeat


Ich habe das Skript nun so geändert:

# Zu ueberwachende Log-Datei (Grundname)
activeLogName=Server_Heartbeat


Und sieht da, mein FHEM und der Watchdog laufen seit 3 Stunden ohne Aussetzer. Hoffentlich bleibt es dabei.   ::)
FHEM - Debmatic - Zigbee2MQTT - Homekit

hexenmeister

Zitat von: Ma_Bo am 12 Mai 2014, 10:12:38
...
Jetzt habe ich in meiner watchdog_err.log Datei ein Problem:


Use of uninitialized value $a[1] in substitution (s///) at ./FHEM/98_SVG.pm line 994.
Use of uninitialized value in join or string at ./FHEM/98_SVG.pm line 994.


diese beiden Zeilen fügt er jedesmal hinzu, sobald ich über das WEB Interface zugreife oder im Browser aktualisiere.

Woran kann das liegen ?

Habe doch das Problem bei mir gefunden. Bitte die Datei https://github.com/hexenmeister/MyFHEM/blob/master/www/gplot/myServerHeartbeat.gplot neu holen.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

hexenmeister

Zitat von: Spezialtrick am 12 Mai 2014, 20:30:31
Und sieht da, mein FHEM und der Watchdog laufen seit 3 Stunden ohne Aussetzer. Hoffentlich bleibt es dabei.   ::)

Sehr schön ;)
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Ma_Bo

Danke Hexenmeister,
ABER jetzt ist in meinem Diagramm für die NN_TE_DMST01.Server_Heartbeat-2014-05.log nix mehr zu sehen. ;)
Habe unten im Diagramm nur eine ganz dünne grüne Linie und sonst nichts mehr.

Danke erstmal für den guten Support hier, bin ziemlich neu hier und lese schon eine Weile bei verschiedenen Themen mit, einfach Wahnsinn, wie einem hier geholfen wird !
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

hexenmeister

achso, es sollte auch funktionieren, konnte ich ja nicht ahnen ;)

Naja, ich habe gestern etwas durcheinander gebracht.
Bitte aus GitHub neu holen, die grüne 'Säge' sollte jetzt wieder da sein.

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

Ma_Bo

Vielen Dank, jetzt läuft alles ohne irgendeinen Fehler !
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

Spezialtrick

So nun läuft der Watchdog wie er soll. Ich habe aber etwas interessantes beobachtet, womit ich nicht anfangen kann. Nach einem Neustart von FHEM z.b. nach einem Update, heute habe ich um gegen 12:15 ein Update durchgeführt, wird folgendes in der watchdog.log ausgegeben:

2014-05-20_12:15:45 fhem_server V: 105 S: alive MSG: FHEM Server alive
2014-05-20_12:16:45 fhem_server V: 45 S: alive MSG: FHEM Server alive
2014-05-20_12:17:45 fhem_server V: 45 S: alive MSG: FHEM Server alive
2014-05-20_12:18:46 fhem_server MSG: no FHEM Server process found
2014-05-20_12:21:46 fhem_server V: 46 S: alive MSG: FHEM Server alive
2014-05-20_12:22:46 fhem_server V: 46 S: alive MSG: FHEM Server alive
2014-05-20_12:23:47 fhem_server V: 47 S: alive MSG: FHEM Server alive
2014-05-20_12:24:47 fhem_server V: 47 S: alive MSG: FHEM Server alive
2014-05-20_12:25:47 fhem_server MSG: no FHEM Server process found
2014-05-20_12:28:48 fhem_server V: 48 S: alive MSG: FHEM Server alive
2014-05-20_12:29:48 fhem_server V: 48 S: alive MSG: FHEM Server alive
2014-05-20_12:30:49 fhem_server V: 49 S: alive MSG: FHEM Server alive
2014-05-20_12:31:49 fhem_server MSG: no FHEM Server process found
2014-05-20_12:34:50 fhem_server MSG: no FHEM Server process found
2014-05-20_12:37:50 fhem_server V: 50 S: alive MSG: FHEM Server alive
2014-05-20_12:38:51 fhem_server V: 51 S: alive MSG: FHEM Server alive
2014-05-20_12:39:51 fhem_server V: 51 S: alive MSG: FHEM Server alive
2014-05-20_12:40:51 fhem_server MSG: no FHEM Server process found
2014-05-20_12:43:52 fhem_server V: 52 S: alive MSG: FHEM Server alive
2014-05-20_12:44:52 fhem_server V: 52 S: alive MSG: FHEM Server alive
2014-05-20_12:45:53 fhem_server V: 53 S: alive MSG: FHEM Server alive
2014-05-20_12:46:53 fhem_server V: 53 S: alive MSG: FHEM Server alive
2014-05-20_12:47:53 fhem_server MSG: no FHEM Server process found


Gegen 12:47 habe ich bewusst einmal das Attribut "attr global mseclog 1" gesetzt und unmittelbar danach wieder auskommentiert. Darauf hin wieder der FHEM Prozess wieder problemlos gefunden und folgendes wird geloggt:

2014-05-20_12:50:54 fhem_server V: 54 S: alive MSG: FHEM Server alive
2014-05-20_12:51:55 fhem_server V: 55 S: alive MSG: FHEM Server alive
2014-05-20_12:52:55 fhem_server V: 55 S: alive MSG: FHEM Server alive
2014-05-20_12:53:56 fhem_server V: 55 S: alive MSG: FHEM Server alive
2014-05-20_12:54:56 fhem_server V: 56 S: alive MSG: FHEM Server alive
2014-05-20_12:55:56 fhem_server V: 56 S: alive MSG: FHEM Server alive
2014-05-20_12:56:57 fhem_server V: 57 S: alive MSG: FHEM Server alive
2014-05-20_12:57:57 fhem_server V: 57 S: alive MSG: FHEM Server alive
2014-05-20_12:58:58 fhem_server V: 57 S: alive MSG: FHEM Server alive
2014-05-20_12:59:58 fhem_server V: 58 S: alive MSG: FHEM Server alive
2014-05-20_13:00:58 fhem_server V: 58 S: alive MSG: FHEM Server alive
2014-05-20_13:01:59 fhem_server V: 58 S: alive MSG: FHEM Server alive
2014-05-20_13:02:59 fhem_server V: 59 S: alive MSG: FHEM Server alive
2014-05-20_13:03:59 fhem_server V: 59 S: alive MSG: FHEM Server alive
2014-05-20_13:05:00 fhem_server V: 0 S: alive MSG: FHEM Server alive
2014-05-20_13:06:00 fhem_server V: 0 S: alive MSG: FHEM Server alive
2014-05-20_13:07:00 fhem_server V: 0 S: alive MSG: FHEM Server alive
2014-05-20_13:08:01 fhem_server V: 1 S: alive MSG: FHEM Server alive


Und so weiter... Auf das Attribut "attr global mseclog 1" bin ich zufällig durch das Modul Perfmon gestoßen. Lässt sich das erklären und vllt. sogar beheben? Bisher setzt ich das Attribut einfach kurzzeitig nach einem Neustart.
FHEM - Debmatic - Zigbee2MQTT - Homekit

hexenmeister

Hallo,

ich verstehe nicht ganz, was das Problem ist.
Aus meiner Sicht wird in der Log der fehlende FHEM-Prozess festgehalten, was bei einem Update zeitweilig normal ist (wegen Restart).
Gibt es negative Auswirkungen?
Oder habe ich etwas falsch verstanden?

Grüße,

Alexander

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

Spezialtrick

ZitatAus meiner Sicht wird in der Log der fehlende FHEM-Prozess festgehalten, was bei einem Update zeitweilig normal ist (wegen Restart).

Gerade das ist der Punkt. Das Verhalten tritt auf sobald FHEM gestartet oder im Rahmen eines Updates neugestartet werden muss. Es kommt darauffolgend dazu, dass der Fhem Prozess immer wiederkehrend, fast regelmäßig alle 5 min, nicht gefunden wird und das nicht nur für die Zeit des Updates oder Neustarts, sondern solange bis ich einmal kurzzeitig das Attribut "attr global mseclog 1" setzte. Danach wird der Fhem Prozess immer gefunden, bis ich wieder einmal neustarren muss.

Hoffe ich habe es nun verständlicher erklärt.
FHEM - Debmatic - Zigbee2MQTT - Homekit

hexenmeister

OK, ich glaube, ich verstehe das Problem, aber ich tappe völlig im Dunklem, wieso das so ist und wie die Einstellung in mseclog darauf Einfluss nehmen kann...  :o
Ich habe bei mir bis jetzt nichts ähnliches beobachtet.
Es müsste ja heißen, dass trotz dem vorhandenen FHEM-Prozess, die Zeile
ps -ef | grep -v grep | grep fhem.pl | wc -l
eine 0 liefert.
Eine wirkliche Lösung kann ich derzeit leider nicht anbieten, aber versuche doch diese Prüfung zu entfernen. Ein Absturz wird dabei weiterhin erkannt (durch die ausbleibende Zeitstempel), nur nicht mehr sofort, sondern erst in ein paar Minuten.
Kommentiere doch folgende Zeilen aus der Methode checkAlive
cnt=$(ps -ef | grep -v grep | grep fhem.pl | wc -l);
  if test $cnt -gt 0 ; then


und
else
    # Server abgestürzt, Prozess nicht (mehr) vorhanden.
    log "MSG: no FHEM Server process found";
    #log "S: dead";
    return 1
  fi


Mal sehen, wie gut das dann läuft.

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

P.A.Trick

Hm der grep scheint aber falsch zu sein!

ps -ef|grep fhem.pl|grep -v grep

Falsche Reihenfolge!
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

hexenmeister

Hm... kann sein bin nicht wirklich der Linux-Spezi...
Ich verstehe aber nicht, warum die Reihenfolge (Suche nach FHEM; Filtere Grep raus) hier von Bedeutung ist (und warum bei mnir ohne Probleme funktioniert).
Ich wäre dankbar für eine Erklärung ;)
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

P.A.Trick

Nun der grep -v grep soll den Befehl grep aus der Prozessliste entfernen und bei deinem Aufruf startet der fhem grep, bedingt durch das Pipe, erst danach! Auf gut Deutsch: da kann du den grep -v auch weglassen, denn er wird den folgenden grep Befehl nie finden und ersetzen!
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

hexenmeister

#103
Hmm... nee, es geht ja um den ersten Aufruf, der ist bereits 'da'.

Mal ausprobieren:

xxxx@RPI /opt/fhem/log $ ps -ef|grep fhem.pl
fhem     20173     1 10 02:01 ?        02:09:28 /usr/bin/perl fhem.pl fhem.cfg
xxxx     27640 15751  0 23:36 pts/0    00:00:00 grep --color=auto fhem.pl


und
xxxx@RPI /opt/fhem/log $ ps -ef|grep fhem.pl|grep -v grep
fhem     20173     1  9 02:01 ?        02:09:36 /usr/bin/perl fhem.pl fhem.cfg


Ich sehe den Unterschied. Also habe ich Deine Erklärung noch nicht verstanden...

Edit:
andersherum tut es natürlich auch.
xxxx@RPI /opt/fhem/log $ ps -ef|grep -v grep|grep fhem.pl
fhem     20173     1  9 02:01 ?        02:09:56 /usr/bin/perl fhem.pl fhem.cfg

Scheint egal zu sein ;)
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

P.A.Trick

Hm ok aber ist dann wohl Zufall :-)
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn