gelöst Icinga2 und Windows Eventlog

Mitglied: Bitboy

Bitboy (Level 2) - Jetzt verbinden

04.07.2019 um 10:40 Uhr, 2128 Aufrufe, 6 Kommentare

Hallo zusammen,

ich mache ja gerade meine ersten Gehversuche Richtung Monitoring und tu mich noch recht schwer mit Icinga.

Ich möchte gerne die Eventlogs überwachen und eine Meldung bei bestimmten ereignissen ausgeben.

Leider finde ich kein Command Template im Icinga Director.

Was ich bis jetzt rausgefunden hab ist, das der Standard Icinga2 Agent das anscheint nicht kann sondern, dass man den NSCP dazu installieren muss.
Lokal kann ich mit diesem auch Events abfragen, aber wie man das nun ins Icinga bekommt weiß ich nicht.

Am Liebsten wäre mir ein Befehl bei dem man Quelle und ID als Variable angeben kann so dass ich nur den einen Befehl brauche.
Im Internet hab ich auch nur die Parameterliste des NSCP Clients gefunden, aber keine Anleitung wie mans ins Icinga integriert.

Danke sehr
Mitglied: em-pie
LÖSUNG 04.07.2019 um 10:49 Uhr
Moin,

schaue dich hier einmal um:
https://docs.nsclient.org/howto/external_scripts/
https://docs.nsclient.org/tutorial/

Was du per se machen musst:
  • Unter Windows ein Script schreiben, welches dir dein Eventlog nach deinen Kriterien abfragt und das, was du haben möchtest zurück gibt. Dabei könntest du noch mit OK, WARNING und CRTICIAL arbeiten.
  • in der Ini am NSCClient das Ausführen von remotescripten zulassen. Ich habe zusätzlich noch eingestellt, dass der Client nur ANfragen vom NAGIOS/ Icinga2 entgegen nehmen darf. Kann man sicherlich alles noch weiter absichern/ einschräöken
  • Unter ICINGA/ NAGIOS dann einen Command anlegen, der das starten des Script am Client initiieren wird, und dabei kannst du dann Parameter (EventID und Source) angeben.
  • in den Services des zu monitorenden Hosts setzt du dann die Werte für die Parameter ein

Ich frage auf diese Weise z.B. die Windows Clients, ob diev. Dienste laufen oder wie die Auslastung einzelner LVMs aussieht.

Gruß
em-pie
Bitte warten ..
Mitglied: Bitboy
04.07.2019 um 11:00 Uhr
Hey.
danke für die schnelle Antwort. Das bedeutet, dass eingebaute check_eventlog vom NSCP Client kann man gar nicht nutzen?

Ich schau mir mal deine Links an und wenn ich nciht weiter komm frag ich nochmal.
Bitte warten ..
Mitglied: em-pie
04.07.2019 um 11:11 Uhr
Doch, das geht doch auch....
Den Befehl hatte ich nicht auf dem Schirm.

Schaue einfach mal hier:
https://docs.nsclient.org/reference/windows/CheckEventLog/

Das ist doch alles beschrieben.
Wenn du also ID und Quelle übergeben willst, setzt du da einfach Argumente ($ARG1$ und $ARG2$) ein und füllst die Argumente dann in der Servicedefinition.
Bitte warten ..
Mitglied: lcer00
04.07.2019 um 12:00 Uhr
Hallo,

wenn Du noch mehr probieren willst:

Winlogbeat auf dem Windows installieren https://www.elastic.co/de/downloads/beats/winlogbeat

Das nach Logstash schicken und dann nach Icinga2 ausgeben.

https://icinga.com/2017/05/15/releasing-the-icinga-output-plugin-for-log ...

Grüße

lcer
Bitte warten ..
Mitglied: Bitboy
04.07.2019 um 18:01 Uhr
Danke sehr, schau ich mir vllt auch noch an.

So nach einigem hin und her hab ichs schonmal so weit, dass er versucht das Powershellscript auszuführen, allerdings scheint die Parameterübergabe noch nicht zu passen. Das schau ich mir dann nächste Woche an, war wahrscheinlich auch keine gute Idee noch eine Batch dazwischen zu hängen...


Was auch Geduld kostet ist das Abfragen der Events mit Powershell.
Get-Eventlog scheint da bischen wählerisch zu sein:
Wenn man den After-Parameter verwendet funktioniert die Filterung nach Source nicht mehr...
Bitte warten ..
Mitglied: Bitboy
10.07.2019 um 09:58 Uhr
Hallo zusammen

ich möchte dann noch gern meine Lösung posten falls es noch jemand braucht.
Die Parameterübergabe aus Icinga heraus hat überhaupt nicht gut funktioniert wegen Leerzeichen und ähnlichem.
Mit dem NSC Client hab ich es nicht geschafft das Kommando so zu bauen, dass es schön variable ist weil nsc++ so einen Filter Parameter verwendet, der mehrer Werte enthält. Außerdem hätte ich bevorzugt, dass nur ein Agent installiert werden muss.

Also los gehts. Der Icinga Agent kann auch externe Programme ausführen und da mir der Aufruf einer .exe deutlich einfacher schien als powershell mit Parametern hab ich zunächst einen simplen Wrapper in Autoit geschrieben, der mir den Aufruf von Powershellscripten vereinfacht:
die daraus resultierende exe hab ich dann ins PluginDir von Icinga auf dem zu überwachenden Rechnerkopiert.

Als nächstes das Powershellscript. Das nimmt die Variablen zu Source und ID etc an und prüft ob in den letzten 10 Minuten das Event aufgetreten ist. (Die Zeitspanne könnte man auch noch variable machen). Das befindet sich ebenfalls im PluginDir des zu überwachenden Systems, könnte aber im Prinzip überall sein.
Exit Code und Consolen Text werden vom Powershell an den Wrapper zurückgegeben und von dort an Icinga.
Damit hab man eine, wie ich finde, sehr variable Lösung die alle möglichen Powershellscripte und damit Prüfungen ausführen kann, ohne groß was anpassen zu müssen.

Zuletzt das Kommando, das über den Icinga Director zusammengebaut wird. Wichtig ist nur, dass als erster Parameter an den Wrapper der Pfad zum Script übergeben wird. Die anderen Parameter werden 1zu1 durchgereicht.

PS: Merke gerade, dass die optionalen Parameter für Warnung und Kritisch noch fehlen. Na egal. Die Idee soweit sollte klar sein.
Funktioniert auch fein. Noch ein Hinweis: Da der Parameter Scriptpath ein Leerzeichen enthält müssen im Icinga 2 Anführungszeichen am Anfang und Ende verwendet werden, das escapen übernimmt dann die Software.

PPS: Das Auslesen von Powershellausgaben ist in Autoit scheinbar nicht so einfach, daher wird der Text einfach in die Zwischenablage kopiert und von dort ausgelesen. Kann man vllt schöner machen, aber funktioniert ganz gut so.
Bitte warten ..
Heiß diskutierte Inhalte
Router & Routing
Cisco RIPv1 RIPv2
MrLabelFrageRouter & Routing26 Kommentare

Hallo Zusammen, ich muss nochmal auf eine schon behandelte Frage eingehen. Bitte jemand, der auch den Cisco Paket Tracer ...

LAN, WAN, Wireless
RJ45 Buchsen Verbindung
gelöst DennisAdm1nFrageLAN, WAN, Wireless18 Kommentare

Ich habe als Aufgabe bekommen die LAN-Verbindung in einem Haus zu fixen, dabei ist mir aufgefallen, dass der RJ45-Stecker ...

Windows 10
Achtung: Upgrade auf Win10 20H2 löscht unter Umständen eigene Zertifikate
DerWoWussteInformationWindows 1013 Kommentare

Microsoft untersucht es derzeit, siehe Windows 10 ,Feature Update to 1909, Certificates missing after Wer ebenso untersuchen möchte was ...

Windows 10
Windows 7 zu Windows 10 weiterhin kostenlos möglich?
gelöst CubeHDFrageWindows 1013 Kommentare

Guten Abend, ist es möglich einen vorhandenen Windows 7 Key für Windows 10 zu verwenden? Kennt ihr vielleicht andere ...

Windows 10
Windows10 Hilfsprogramme endgültig löschen
istike2FrageWindows 1013 Kommentare

Hallo, wir sind gerade dabei mit Windows OOBE ein Image vorzubereiten. Wir würden gerne Xbox, HP Hilfsprogramme, Cortana usw. ...

LAN, WAN, Wireless
Suche Access Point Wandhalterung
gelöst EZimmerFrageLAN, WAN, Wireless11 Kommentare

Einen schöne guten Tag, wir haben uns bei einer Ausschreibung beteiligt und sind nun auch der Suche nach folgendem ...

Ähnliche Inhalte
Windows Server
Icinga2 Windows Agent Frage
NurWeilEsGehtFrageWindows Server

Moin, ich habe mal eine Frage zu dem Icinga2 Agent für Windows. Ich habe den Client erfolgreich installiert und ...

Vmware
ICINGA2 VMware Hosts monitoren
askandoFrageVmware1 Kommentar

Hallo, ich möchte mit icinga2 meine ESX Hosts bzw. Vcenter monitoren. Der User soll lediglich lese- Rechte auf die ...

Monitoring

Problem mit Mailbenachrichtigung im Icinga2

xXEddiXxFrageMonitoring

​Hi, ich habe ein Problem mit den Mailbenachrichtigungen im Icinga2. Die Benachrichtigungen werden nicht versendet, hier ein Auszug aus ...

Monitoring

Icinga2 Unauthorized. Please check your user credentials

agsurferFrageMonitoring5 Kommentare

Hi, ich habe ein Problem beim Aufruf der icinga 2 api. Eingerichtet habe ich Icinga entsprechend der Dokumentation ). ...

Windows Tools

Windows EventLog Collector Abonement - Hinzufügen mehrerer Server

gelöst TobiasGreisFrageWindows Tools1 Kommentar

HAllo zusammen, ist es möglich, eine Vielzahl an Servern auf einmal zu einem Abonement hinzuzufügen, ohne jeden einzeln eingeben ...

Windows Server

Domain Controller Eventlog

ITSharkFrageWindows Server3 Kommentare

Moin zusammen, ich bin auf der Suche nach einem Eintrag im Eventlog und werde nicht fündig. Wo finde ich ...

Berechtigungs- und IdentitätsmanagementBerechtigungs- und IdentitätsmanagementWebdienste und -serverWebdienste und -serverDatenbankenDatenbankenMonitoring & SupportMonitoring & SupportHybrid CloudHybrid CloudSmall Business ITSmall Business IT