Aktionen

Zabbix:Template Windows Service Auto-Discover Zabbix 3.x - Windows Dienste Service Discovery mit Bordmitteln

Aus znilwiki

Version vom 12. März 2018, 11:25 Uhr von BLinz (Diskussion | Beiträge) (→‎Migration vom bisherigen Template)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Seit Version 3.x ist Zabbix direkt über den Windows-Agenten in der Lage, Windows Dienste per Discovery zu finden.
Nachfolgend die Anleitung wie man das umsetzt - inklusive Filter für Dienste die nicht mit Überwacht werden sollen.



Voraussetzungen

  • Zabbix Agent 3.x oder höher auf den zu überwachenden Windows-Hosts
  • Zabbix Server Version 3.x oder höher




Filter

Der Discovery-Prozess wird uns alle Dienste vom Starttyp

  • Automatisch
  • Automatisch (Verzögerter Start)

liefern. Trotzdem sind da immer wieder Dienste dabei die wir gar nicht überwachen wollen.
In meiner bisherigen Lösung hatte ich deshalb eine Text-Datei genutzt in welcher die Namen von Diensten die Ignoriert werden sollen eingetragen werden konnten.

In Zabbix führen wir diese Liste nun als Regular Expression
Wie bisher bauen wir das so, das wir wahlweise

  • den Dienstnamen, z.B. "Spooler"
  • Den Anzeigenamen, z.B. "Druckwarteschlange"

in diese Liste eintragen können.

Wir gehen zu

Administration => General => Regular expressions

und erstellen eine "New regular expression"

Name: Windows_Services_to_ignore

Und in diese tragen wir für jeden Dienst der Ignoriert werden soll eine Zeile ein: ClipCapIt-170426-130139.PNG
Da wird ein "Text in Text" vergleich genutzt! Solltet Ihr den Buchstaben "e" dort eintragen so werden alle Dienste die ein "e" enthalten ignoriert!
Wenn ihr das Zeichen ^ davor setzt so muss das Wort am Anfang stehen. Es gelten alle RegEx-Regeln für POSIX-Systeme



Template

Discovery rule

Wir erstellen ein neues Template, meines nenne ich

znil Template native Windows Service Discovery Zabbix 3.x


Im Bereich "Discovery rules" erstellen wir eine neue Rule mit dem folgenden Eigenschaften

Name ...........: Discover Windows Service
Type ...........: Zabbix Agent (active)
Key ............: service.discovery
Update intervall: 3600
Keep lost period: 1

ClipCapIt-170426-140103.PNG

Dann wechselt oben auf Filters:
ClipCapIt-170426-140228.PNG
mit den folgenden Einstellungen:

A  {#SERVICE.STARTUP}     1
B  {#SERVICE.STARTUP}     0
C  {#SERVICE.NAME}        @Windows_Services_to_ignore
D  {#SERVICE.DISPLAYNAME} @Windows_Services_to_ignore

oben unbedingt bei "Type of calculation" auf "Custom expression" wechseln:

(A or B) and C and D


Erklärung:

  • Der Dienst muss vom Starttyp 1 ODER 0 sein (Automatischer Start & Automatischer Start verzögert)
  • UND der Dienstname muss unserem Regular Expression entsprechen
  • UND Dienst-Anzeigename muss unserem Regular Expression entsprechen




Item prototype

Wir erstellen einen neuen Item-Protypen:
ClipCapIt-170426-140943.PNG

Name ..............: Service - {#SERVICE.DISPLAYNAME} - State
Type ..............: Zabbix agent (active)
Key ...............: service.info[{#SERVICE.NAME}]
Type of information: Numeric (unsigned)
Data type .........: Decimal
Update interval ...: 120
Show value ........: Windows service state




Trigger

Und noch den passenden Trigger-Prototypen:
ClipCapIt-170426-141737.PNG

Name .....: Service {#SERVICE.DISPLAYNAME} is not running
Expression: {znil Template native Windows Service Discovery Zabbix 3.x:service.info[{#SERVICE.NAME}].last()}<>0 and {znil Template native Windows Service Discovery Zabbix 3.x:service.info[{#SERVICE.NAME}].last()}<>255
Severity .: Warning

Bei der Expression testen wir ob der Zustand NICHT 0 (= läuft) und NICHT 255 ist.
255 steht für "Dienst nicht vorhanden" - Falls der Dienst deinstalliert wird, wird so kein Alarm ausgelöst.



Download

Hier das Template als Download.
Die Regular expression müsst Ihr aber auf jeden Fall von Hand anlegen!
Znil_Template_native_Windows_Service_Discovery_Zabbix_3.x.xml.zip



Migration vom bisherigen Template

Vorher hatte ich ja immer mein eigenes Programm dafür eingesetzt (servdisc.exe) da Zabbix bis 3.x das noch nicht konnte.
Um von der alten Version auf diese neue zu migrieren gibt es 2 Möglichkeiten:

  • Ihr erstellte dieses neue Template, löscht das alte bei den Hosts und fügt stattdessen dieses hinzu. Ggf. die zugewiesenen Templates bei der Auto-Registration nicht vergessen
  • Ihr baut das schon vorhandene Template auf dieses um. Achtung: Viele Schlüsselwörter sehen ähnlich aus, haben aber andere Schreibweise! Also alles mit Copy&Paste anpassen
    • In diesem Fall wird er alle Dienste neu erkennen und die alten löschen!
    • Setzt vorher Keep lost resources period (in days) auf 0 - so löscht er die alten Dienste sofort - und kann die neuen auch wieder sofort anlegen
    • Eventuell setzt Ihr auch den Intervall runter - aber nicht vergessen den hinterher wieder hoch zu setzten.




Kommentare

Loading comments...