Agent komplett offline laufen lassen

Hallo,
ich habe ein seh unangenehmes Problem:
Bei einem Kunden schmiert ein System das wir nicht betreuen häufig schlagartig ab. Windows schreibt noch nicht mal mehr einen Dumpfile.
Wir tippen auf ein angeknackstes Netzteil oder einen anderen Defekt in der Stromversorgung.
Das Rechenzentrum sieht sich nicht in der Pflicht das Thema zu lösen.
Unser Ansatz in Rücksprache mit dem Kunden ist mehr als krude und würde unter normalen Umständen bestenfalls „als nicht dein Ernst“ eingestuft werden.
Unser Ansatz:
Auf dem Windowsserver lassen wir eine VM mit check-mk mitlaufen und monitoren das System so häufig wie eben möglich ohne es komplett runter zu reissen bis es halt wieder knallt.
Schicker wäre es wenn man den Client komplett offline die Resultate schreiben lassen könnte. Komplett würde aber auch alle Windows-Tasks, alle Windows-Prozesse,alle Temperaturen usw. usw. bedeuten.
Hat jemand das schon mal umgesetzt?
Gruss
Ralf

Unter Linux wäre das einfach ein regelmäßiger Aufruf (aus Cron) von
/usr/bin/check_mk_agent > agent-output-$(date +%Y%m%d-%H%M%S)

Bin mir nicht sicher, ob man den Windows-Agent auch einfach so “aufrufen” kann. Aber wenigstens auf Port 6556/tcp sollte er ja lauschen und seine Ausgabe bringen. Das müsste sich doch sicherlich auch unter Windows irgendwie (Powershell, Task Scheduler, …) automatisieren und in eine Datei schreiben lassen.

1 Like

Unter Windows einfach den Check_MK Agent mit z.B. check_mk_agent.exe test > c:\tmp\logfile.txt aufrufen. Bin mir nur nicht 100%ig sicher ob das beim neuen Agent auch noch funktioniert.

1 Like

Oder eine Docker Instance mitlaufen lassen

Wichtig wäre das die Windows Task und Prozesse mit erwischt werden.
Ich schaue mir das Montag an.
Gruss

Das funktioniert nicht, da kommt nur die Hilfe. Eine Möglichkeit ist mit Parameter rt:
"C:\Program Files (x86)\checkmk\service\check_mk_agent.exe" rt >> C:\temp\checkmk.log
nur muss man in der DOS Box einmal Enter drücken um den Realtime Test zu starten und die DOS Box muss offen bleiben.

Hallo,
ein einfaches
check_mk_agent.exe > /temp/werte.txt gibt mir schon einmal ein paar Werte aus.
Meine Fragen wäre jetzt:
1)
Listet die Ausgabe alle Prozesse auf die zur Laufzeit aktiv sind?
2)
Wie muss ich die Werte interpretieren um daraus nutzbare Infos abzuleiten?
3)
Wie könnte ich das verfeinern? ist schon mal ein Schritt nach vorne bei uns aber das geht bestimmt noch besser.
4)
Ich starte den Aufruf aus einer normalen (nicht als Admin geöffneten ) Eingabeaufforderung.
Hat das Öffen als Administrator Einfluss?
Gibt es was zu beachten wenn wir das Komando per batch-Datei über den Taskmanager alle X Minuten starten würden?

Gruss und guten Start in die Woche
Ralf

(SYSTEM,64,4,0,0,0,0,16548062343750,0,2,1705916) System Idle Process
(SYSTEM,3392,280,0,4,0,0,98190937500,658,79,1705917) System
(SYSTEM,4252,1044,0,208,0,156250,93281250,52,2,1705917) smss.exe
(SYSTEM,46124,4212,0,320,2,506093750,4798281250,446,11,1705903) csrss.exe
(SYSTEM,125184,21048,0,380,1,78281250,477031250,264,9,1705899) csrss.exe
(SYSTEM,2147524532,3876,0,388,0,4062500,40781250,79,1,1705899) wininit.exe
(SYSTEM,2147543576,6916,0,432,1,9531250,140312500,167,2,1705898) winlogon.exe
(SYSTEM,2147507088,6808,0,476,3,1980156250,4837812500,242,5,1705893) services.exe
(SYSTEM,2147522088,10468,0,484,4,7948437500,9478750000,696,7,1705893) lsass.exe
(SYSTEM,2147528476,11420,0,544,4,786875000,1319843750,368,11,1705886) svchost.exe
(SYSTEM,2147513748,8232,0,588,4,1982968750,2927968750,395,11,1705885) svchost.exe
(SYSTEM,2147543900,16940,0,660,13,2346718750,4158906250,506,15,1705884) svchost.exe
(SYSTEM,2147961004,115732,0,684,98,33867968750,57747500000,1753,48,1705884) svchost.exe
(SYSTEM,2147570376,12864,0,748,6,42656250,116406250,713,16,1705884) svchost.exe
(SYSTEM,2147634700,61408,0,812,31,127812500,224062500,202,7,1705883) dwm.exe
(SYSTEM,2148655668,19252,0,880,8,759687500,854062500,961,17,1705883) svchost.exe
(SYSTEM,2147535308,10728,0,312,8,77031250,143281250,358,17,1705882) svchost.exe
(SYSTEM,2147579724,14116,0,1056,5,140625000,122968750,410,9,1705881) spoolsv.exe
(SYSTEM,105256,36364,0,1088,29,21458437500,33140000000,281,15,1705881) check_mk_agent.exe
(SYSTEM,2147581896,9056,0,1108,2,5312500,37343750,208,8,1705880) svchost.exe
(SYSTEM,66476,10744,0,1128,3,300156250,269531250,194,2,1705880) macmnsvc.exe
(SYSTEM,96696,26660,0,1264,13,1585468750,3003593750,444,18,1705879) masvc.exe
(SYSTEM,2148162884,18464,0,1372,8,57812500,91875000,364,11,1705878) svchost.exe
(SYSTEM,63820,8488,0,1392,2,2812500,13593750,122,2,1705878) VGAuthService.exe
(SYSTEM,2147581092,21208,0,1500,10,1228593750,1719062500,303,10,1705876) vmtoolsd.exe
(SYSTEM,2147561504,8976,0,1772,3,305156250,540312500,422,23,1705873) svchost.exe
(SYSTEM,2147505264,4680,0,1800,1,3750000,19062500,110,3,1705873) svchost.exe
(SYSTEM,2147534024,10920,0,1368,3,8125000,45781250,194,10,1705879) dllhost.exe
(SYSTEM,2147562008,22044,0,2128,13,10540000000,27815937500,380,13,1705869) WmiPrvSE.exe
(SYSTEM,2147525660,7300,0,2284,2,6250000,41406250,163,9,1705867) msdtc.exe
(SYSTEM,52536,6004,0,2468,1,625000,10312500,131,2,1705863) mfemactl.exe
(SYSTEM,2147562156,30956,0,2776,24,7565781250,53014375000,283,9,1705852) WmiPrvSE.exe
(\SRVCHECKMKTST\Administrator,2147747488,8308,0,2244,2,6250000,23593750,205,5,1705658) taskhostex.exe
(\SRVCHECKMKTST\Administrator,2148117748,122236,0,1440,57,1517968750,2314531250,1496,45,1705647) explorer.exe
(\SRVCHECKMKTST\Administrator,2147591628,11280,0,1432,3,4771250000,2893906250,167,5,1705627) vmtoolsd.exe
(\SRVCHECKMKTST\Administrator,97448,5980,0,2636,3,386875000,457343750,190,4,1705625) UpdaterUI.exe
(\SRVCHECKMKTST\Administrator,108012,244,0,2000,2,15625000,68906250,119,6,1705623) mctray.exe
(SYSTEM,2147504976,5276,0,2396,2,208593750,621875000,55,4,124654) svchost.exe
(\SRVCHECKMKTST\Administrator,2147527992,3016,0,2728,1,0,1250000,34,1,438) cmd.exe
(\SRVCHECKMKTST\Administrator,2147553500,6524,0,2012,1,1093750,6562500,58,2,438) conhost.exe
(\SRVCHECKMKTST\Administrator,2147529064,3044,0,1256,1,156250,781250,37,1,230) cmd.exe
(\SRVCHECKMKTST\Administrator,2147552896,5896,0,996,1,781250,19062500,61,2,230) conhost.exe
(SYSTEM,2147532668,11196,0,2964,5,1718750,2812500,207,8,26) WmiPrvSE.exe
(SYSTEM,2147532552,12120,0,2668,2,2812500,1875000,192,7,23) sppsvc.exe
(\SRVCHECKMKTST\Administrator,89244,8600,0,1160,2,312500,2500000,181,8,7) check_mk_agent.exe
(\SRVCHECKMKTST\Administrator,2147600584,8000,0,804,2,156250,937500,177,7,7) cscript.exe
(SYSTEM,2147546584,6604,0,2880,5,0,468750,143,6,2) msiexec.exe
(SYSTEM,2147565440,7676,0,2392,6,156250,2500000,161,6,1) msiexec.exe
(SYSTEM,73500,4328,0,2716,1,0,468750,112,1,1) check_mk_agent.exe

Die Idee mit der Aufgabenplanung hatte ich auch und ich denke, dies ist als “Offline”-Version eine der effektivsten Ideen.

Hier muss man auf den auszuführenden User des Tasks achten.
Gleiches gilt natürlich für das Ausführen über die Eingabeaufforderung. Sofern der entsprechende User die Berechtigung hat, alle notwendigen System-Informationen abzufragen, sollte dies kein Problem sein.
Notfalls, vergleiche die Ausgabe einfach mit dem vom “Lokal System” und passe die Rechte des Users an, bis die Ausgabe übereinstimmt.

Im Normalfall liest der Check_MK Agent ebenfalls alle Prozesse und akuten Service aus (wenn ich mich nicht täusche). Somit solltest du immer einen akuten “@Time”-Ausgabe haben.

Was die Interpretation der Ausgabe angeht, so müsste ich die Befehle recherchieren, die Check_MK hier nutzt. Hier werden nur die Header ausgeblendet. Solltest du also mit kurzer Suche auch selber raus finden können.

Was die Verfeinerung angeht, wüsste ich jetzt nicht explizit wie man dies erreichen soll, außer mit einer Überarbeitung des Outputs via Bash. Da hier allerdings viele verschiedene Ausgabe-Formate in eine “Pipe” fließen, denke ich wird dies schwer umsetzbar zu sein.

MfG Kruzgoth

Hallo,
ich habe eine junge Frau an das Thema gesetzt die in Syrien Informatik studiert hat und bei uns ein Praktkum machen wird.
Die Idee ist erst mal den Output in eine Datenbank zu schieben und dort bereiten wir dann auf.
Ich werde berichten.
Gruss
Ralf

Hi Ralf,
hat jetzt nicht direkt mit check_mk zu tun, aber für Monitoring “quick (und nicht mal) dirty” greife ich hin und wieder gern zu netdata (Demo)

image
Das hat auch schon jemand unter Windows zum Laufen bekommen: https://www.youtube.com/watch?v=ornB89bCTb8

Vielleicht hilft Dir das ja in diesem konkreten Fall?
vg
Simon

Hallo,
danke für den Tip.
Kann die Lösung die Werte in Dateien schreiben?
Gruss

Hi Ralf,
so weit ich weiß nicht. Wenn die Kiste aber “nur” crashed und wieder normal bootet, kannst Du die Dashboards ja wieder sehen. Reicht Dir das für eine Post-Mortem-Analyse? Die Retention lässt sich anpassen.

Ansonsten habe ich noch gesehen, dass Du Netdata auch als “headless collector” laufen lassen kannst. Damit hast Du die Daten außerhalb der Maschine gesichert; lokal wird gar nichts gespeichert.
vg
Simon