Icinga 2 Agent unter Windows check_procs.exe

This forum was archived to /woltlab and is now in read-only mode.
  • Hey,


    ich teste aktuell den Icinga Agent fuer Windows.


    Ich moechte dabei einen bestimmten Prozess ueberwachen. Icinga liefert ja schon den Check 'check_procs.exe' mit. Mit diesem kann ich aber keinen einzelnen Prozess ueberwachen, oder?


    Falls nicht, koennte ich natuerlich auch einfach den NsClient dazu installieren und dort den Prozess ueberwachen lassen.

    Koennte ich alternativ, wenn ich den NsClient nicht installieren moechte, auch einen eigenen Check erstellen, der dann von Icinga und dem Icinga Agent benutzt wird? Ist das sinnvoll?


    Viele Gruesse:)

  • Am wichtigsten ist mir zu wissen, ob er laeuft

    Meine Beispiel-Konfig genau dazu.

    Zusätzlich: Last und Memory der Maschine, also *nicht* pro Prozess.


    Dafür ginge evtl:

    https://exchange.nagios.org/di…Memory-Monitoring/details

    https://exchange.nagios.org/di…-Processes--2D-TK/details

    https://exchange.nagios.org/di…ows-Process-(WMI)/details


    icinga2.conf:

    include <windows-plugins>


    hosts.conf:


    services.conf

    The post was edited 2 times, last by sru ().

  • Danke fuer die Antwort.

    Allerdings ueberwachst du ja Services mit der Konfiguration, wenn ich das richtig sehe.


    Ich moechte ja einen Prozess ueberwachen, der unter Services nicht zu finden ist.

  • Das stimmt - das hab ich falsch verstanden.

    Check_procs kann aber die Prozesse zählen, die unter einem bestimmen Benutzer laufen.

    Hilft das ?

  • Das hilft mir leider auch nicht weiter.


    Waere es denn eine Moeglichkeit mir einen eigenen Check zu basteln, der diesen Prozess ueberwacht und welchen der Icinga Agent dann ausfuehrt auf dem Remote Windows Rechner?

  • Moin,


    wir haben das folgendermaßen gelöst:


    command.conf:


    service.conf:


    Hostdatei:

    Code
    1. vars.process["Prozessname"] = {
    2. nscp_arguments = [ "process=gcs.exe", "show-all", "warning=1" ]
    3. }

    Wobei gcs.exe der Prozess ist, welcher auf dem Server läuft.

  • Sofern das obige nicht für dich funktioniert:


    Waere es denn eine Moeglichkeit mir einen eigenen Check zu basteln, der diesen Prozess ueberwacht und welchen der Icinga Agent dann ausfuehrt auf dem Remote Windows Rechner?

    Sicher.

    z. B. Powershell, Perl oder vbscript.

    Könnte ich ggf. bei helfen.


  • Die Loesung setzt ja wieder vorraus, dass ich den NsClient installiere, oder? Das wollte ich eigentlich vermeiden.


    Sofern das obige nicht für dich funktioniert:


    Sicher.

    z. B. Powershell, Perl oder vbscript.

    Könnte ich ggf. bei helfen.

    Ja, sehr gerne. Bin mir nicht sicher, wie ich eigene Commandos im Icinga Director (oder Icinga) erstelle, so dass ich sie mit dem Icinga Agent verwenden kann.

    Gibts dazu vielleicht eine Doku?

  • Quote

    Die Loesung setzt ja wieder vorraus, dass ich den NsClient installiere, oder? Das wollte ich eigentlich vermeiden.

    Nun ja, das geht aus dem folgenden Schnipsel nicht unbedingt klar hervor ;-).

    Quote

    Falls nicht, koennte ich natuerlich auch einfach den NsClient dazu installieren und dort den Prozess ueberwachen lassen.

  • Nun ja, das geht aus dem folgenden Schnipsel nicht unbedingt klar hervor ;-).

    ok da hast du recht, war nicht klar formuliert.:/


    Ich möchte nicht für den einen Check extra den NsClient installieren.


    Ich habe bisher aber leider keine Erfahrungen damit, wie ich eigene Checks mit dem Director erstelle. Vielleicht gibts dafür noch eine Hilfestellung:)

  • Ich habe bisher aber leider keine Erfahrungen damit, wie ich eigene Checks mit dem Director erstelle.

    Das wäre aber eher den zweiten Schritt vor dem ersten machen. Solange du kein Skript/kein Programm hast, was dir eine Prüfung ermöglicht, brauchst du auch keinen Director, denn mit dem kannst du (meines Wissens) lediglich die Konfiguration einer Prüfung erledigen, nicht aber ein Skript erstellen.

    Vielleicht habe ich deinem Satz auch falsch verstanden.

  • eigene Commandos im Icinga Director (oder Icinga)

    Im Director kann ich es noch nicht, weis aber dass es geht.

    Als check_command in der commands.conf kein problem.


    Wenn das check_something Script dann existiert muss es auf die Endpunkte verteilt werden.

    Das leistet icinga nicht. Ist das ein Problem für dich ?


    Powershell-Ansatz, PM(K) ist dein Process-bezogener Arbeitsspeicher:

    Code
    1. PS C:\Users\sr> get-process "firefox" -ea SilentlyContinue
    2. Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
    3. ------- ------ ----- ----- ----- ------ -- -----------
    4. 721 109 353992 406212 932 65,63 4892 firefox

    Spaltenbeschreibung: get-help get-process -full


    Das muss nun in die nagios plugin-guidelines befördert werden:

    https://nagios-plugins.org/doc/guidelines.html


    Da kommt nun folgendes powershell script bei raus:

    Und das dazu gehörige checkcommand für die commands.conf:

    Code: commands.conf
    1. object CheckCommand "procwin" {
    2. import "plugin-check-command"
    3. command= [ "powershell", "-ExecutionPolicy", "ByPass", "-NonInteractive", "-NoProfile", "-Command", "d:/scripts/check_process.ps1" ]
    4. arguments = {
    5. "-p" = { skip_key= true; order= 0; value= "$win_proc_name$"}
    6. "-w" = { skip_key= true; order= 1; value= "$win_proc_warn$"}
    7. "-c" = { skip_key= true; order= 2; value= "$win_proc_crit$"}
    8. }
    9. }

    Dann der Service der es benutzt:

    Und der host der die Warnschwellen setzt:

    Das sollte es im Wesentlichen sein. Wenn nun noch ein Director-kundiger das umsetzen könnte...

    The post was edited 5 times, last by sru ().

  • Director kundig bin ich inzwischen selbst X(. Hier also die Umsetzung mittels Director.

    Wir fangen zunächst mit den Datenfeldern an, das werden später die Variablen im Host-Object:



    Dann erstellen wir das neue Command, in das Feld "Command" wird eingetragen:

    C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPass -NonInteractive -NoProfile -Command d:\scripts\check_process.ps1


     


    Nun kommt der Service:

     


    Ein Host-Template, welches die Ausführung auf dem Windows-Agent festlegt:



    Dieses Host-Template bekommt nun endlich die Datenfelder aus Schritt eins verpasst:



    Dieses Template wird nun einem Host zugewiesen und in diesem die Werte der Datenfelder gesetzt.

    (Post Limit ist erreicht...)

    The post was edited 2 times, last by sru ().

  • Und weiter gehts:


    Dieses Template wird nun einem Host zugewiesen und in diesem die Werte der Datenfelder gesetzt.



    Das wird dann deployed und dann kommt da auch wirklich sinnvolles bei raus:




    Hat doch schon viel Schönes, oder ?

    The post was edited 2 times, last by sru ().

  • The screenshots in #16 are somehow broken. I'd like to that a note for adding that as an howto somewhere. Are you maybe interested in writing a blog post over at icinga.com? :)

  • Hello Michael,

    For me, all 12 screen shots display. If they are really broken, it is a pitty - i already destroyed the local copies.


    Edit:

    Created a new windows user account at my machine and yes, you were right.

    Was able to rescue the images from my browsers cache and re-uploaded them.

    They now display in the test-account as well so i hope that is fixed.


    I would like to hear the feedback of the TO - if he finds that helpful (read that as: it solves his problem) - i could do it.

    At least the powerpoint part is questionable - sure, it works - but there might be missing features like argument parsing etc.

    The post was edited 1 time, last by sru ().

  • I would like to hear the feedback of the TO - if he finds that helpful (read that as: it solves his problem) - i could do it.

    Hi,


    erstmal vielen Dank fuer die Grossen Muehen, die Du dir gemacht hast. Ich denke, dass waere auch fuer andere sehr hilfreich und sollte in einer Doku festgehalten werden.


    Ich habe deine 'Bilderstrecke' mal so durch gearbeitet. Aktuell laufe in das Problem, dass in Icinga Web 2 als Output nur folgendes angezeigt wird:


    Code
    1. Check command 'procwin' does not exist.

    Versuche noch nachzuvollziehen woher die Meldung kommen kann. Muss auf dem Agent in der commands.conf oder einer sonstigen Datei noch der Command eingetragen werden?


    Viele Gruesse