Watchdog mit Wertevergleich ?

Begonnen von cs-online, 11 April 2020, 17:43:13

Vorheriges Thema - Nächstes Thema

cs-online

Hallo zusammen,

ich würde gerne einen Watchdog anlegen, der auf Sysmon:CPU bei 100 reagieren soll, so dass, wenn nach 3 Minuten noch immer Sysmon:CPU bei 100 ist, neu gebootet wird.

Ich habe das so definiert,

defmod Watchdog_CPU watchdog Sysmon:CPU>99 00:03:00 Sysmon:CPU<100 {system("sudo reboot")}

aber wenn ich das mit Schwellwert 5 teste, passiert rein gar nichts. Gibt es eine Möglichkeit,das so zu ändern, dass es für meinen Fall passen würde ? Hintergrund ist, dass sich aus noch unklarer Ursache manchmal nachts die CPU bis auf 100% hochschaukelt und dann reagiert FHEM irgendwann nicht mehr und dann hilft nur neu booten, dann ist wieder für Tage Ruhe...

Grüße

Christian
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266/32 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20+S26,Shelly1/2/2.5, Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV+Speicher, alles auf einem RPI und da geht noch mehr

CoolTux

#1
Zitat von: cs-online am 11 April 2020, 17:43:13
Hallo zusammen,

ich würde gerne einen Watchdog anlegen, der auf Sysmon:CPU bei 100 reagieren soll, so dass, wenn nach 3 Minuten noch immer Sysmon:CPU bei 100 ist, neu gebootet wird.

Ich habe das so definiert,

defmod Watchdog_CPU watchdog Sysmon:CPU>99 00:03:00 Sysmon:CPU<100 {system("sudo reboot")}

aber wenn ich das mit Schwellwert 5 teste, passiert rein gar nichts. Gibt es eine Möglichkeit,das so zu ändern, dass es für meinen Fall passen würde ? Hintergrund ist, dass sich aus noch unklarer Ursache manchmal nachts die CPU bis auf 100% hochschaukelt und dann reagiert FHEM irgendwann nicht mehr und dann hilft nur neu booten, dann ist wieder für Tage Ruhe...

Grüße

Christian

So funktioniert watchdog nicht. Du musst RegEx verwenden

defmod Watchdog_CPU watchdog Sysmon:CPU:.[8-9][0-9] 00:03:00 Sysmon:CPU:.[0-4][0-9] {system("sudo reboot")}

Das Problem ist daß er so immer auslöst wenn er über 80 ist.
Ich würde im sysmon Device ein Userreading anlegen mit den Werten high und low und wurde darauf den watchdog triggern lassen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

cs-online

Hallo CoolTux,

danke für die Erläuterungen ! Mit RegEx steh ich offen gestanden auf Kriegsfuss... gäbe es nicht auch ein RegEx für 100 und 90 ? Weil der geht dann immer auf volle 100%... Dann würde der bei 100 auslösen und falls der nach 3 Minuten nicht wieder unter 90 fällt, sollte der rebooten...
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266/32 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20+S26,Shelly1/2/2.5, Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV+Speicher, alles auf einem RPI und da geht noch mehr

CoolTux

Wie gesagt. Die sauberste Lösung meiner Meinung nach wäre ein userreading.


attr Sysmon userreadings CPU_Warn:CPU:.* { (ReadingsVal($name,'CPU',100) > 99 ? 'high' : 'low') }


Und dann Dein watchdog


defmod Watchdog_CPU watchdog Sysmon:CPU_Warn:.high 00:03:00 Sysmon:CPU_Warn:.low {system("sudo reboot")}
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

cs-online

Super vielen Dank, hab das genau so eingebracht :-)

Wünsche fröhliche Ostern :-)
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266/32 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20+S26,Shelly1/2/2.5, Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV+Speicher, alles auf einem RPI und da geht noch mehr