Aktionen

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:



1 Discovery Rule

Wir erstellen eine Discover-Rule wie folgt:
Zabbix-LLD-Discovery-mit-Zabbix-Sender-001.png
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:
Zabbix-LLD-Discovery-mit-Zabbix-Sender-002.png



2 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



3 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!



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