Zabbix LLD Discovery per zabbix sender
Aus znilwiki
Man kann eine LLD Discovery auch per Zabbix-Sender (zabbix_sender.exe
) auslösen.
Das ganze gelingt wie folgt:
Discovery Rule
Wir erstellen eine Discover-Rule wie folgt:
Der Type ist Zabbix trapper
Somit wird weder der Zabbix-Server als auch der Zabbix-Agent nicht selbst aktiv.
In der Übersicht sehen wir nun auch einen Intervall von 0:
JSON vorbereiten
Hier mein JSON über die Datenbanken - in schöner Darstellung:
{
"data": [
{
"{#EXCHANGEDATABASE}": "Mailbox Database EXCHANGE",
"{#EXCHANGEDBSERVER}": "EXCHANGE"
}
]
}
In diesem Fall eine Datenbank auf einem Server.
So können wir diesen jedoch NICHT an den Server senden sondern müssen diesen noch wie folgt aufbereiten:
- In Textdatei speichern
- ein Minus Zeichen als ersten Zeichen
-
- dann ein Leerzeichen
- dann der Name des Discovery-Items, hier also
znil.ExchangeStatistics[discoverdatabases]
- dann ein Leerzeichen
- dann der JSON-String ohne unnötige Leerzeichen etc. in einer(!) Zeile.
Die kompletten Daten müssen also in einer Zeile stehen:
- znil.ExchangeStatistics[discoverdatabases] {"data":[{"{#EXCHANGEDATABASE}":"Mailbox Database EXCHANGE","{#EXCHANGEDBSERVER}":"EXCHANGE"}]}
Das ganze Speichern wir in einer Text-Datei - hier EXDB-Discover.txt
Datei senden
Diese Datei senden wir jetzt mit
zabbix_sender.exe -c zabbix_agentd.win.conf -i EXDB-Discover.txt
Alternativ mit
zabbix_sender.exe -z <IP-des-Zabbix-Server> -i EXDB-Discover.txt
Es sollte eine Ausgabe wie folgt geben:
info from server: "processed: 1; failed: 0; total: 1; seconds spent: 0.002842" sent: 1; skipped: 0; total: 1
Das war schon alles!