Aktionen

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

Aus znilwiki

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.



1 Voraussetzungen

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




2 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



3 Template

3.1 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




3.2 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




3.3 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.



4 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


5 Kommentare


Kommentar hinzufügen
znilwiki freut sich über alle Kommentare. Sofern du nicht anonym bleiben möchtest, trage deinen Namen oder deine Email-Adresse ein oder melde dich an. Du kannst das Feld auch einfach leer lassen.