2016-05-23 24 views
1

Ich schreibe eine Anwendung, die Daten von entfernten Geräten über eine HTTP API liefert. Diese Geräte sind auf einer mobilen Datenverbindung und haben begrenzte Ressourcen.Verwendung von zabbix_sender für die Host-Erkennung

Ich möchte benutzerdefinierte Überwachungsdaten über die HTTP-API erhalten, basierend auf dem in der Anwendung entwickelten Sicherheitsmodell, und diese Daten direkt (oder indirekt) von node.js an Zabbix senden. Ich möchte Zabbix Agent nicht auf den Remote-Geräten verwenden.

Ich sehe, dass ich zabbix_sender verwenden kann, um Daten an einen Zabbix-Server zu senden, der einen vorkonfigurierten Host enthält. Das funktioniert großartig. Ich beabsichtige, Überwachungsdaten über meine benutzerdefinierte API zu liefern, und wenn diese empfangen werden, gebe diese Daten an zabbix_sender im Server-Netzwerk weiter.

Das Problem ist, es gibt viele Geräte im Feld und mehr werden die ganze Zeit hinzugefügt.

TL; DR:

Wenn zabbix_sender einen benutzerdefinierten Hostnamen bereitstellt, die in Zabbix nicht existiert bereits, versagt es.

Ich möchte automatisch gefundene Hosts hinzufügen, basierend auf neuen Hostnamen von zabbix_sender. Wie würde ich das tun?

Auch ein besonderer Respekt, wenn jemand Beispiele geben kann, wie man zabbix_sender vermeidet und Daten direkt von node.js an den Zabbix-Server sendet. Ich meine: schlagen Sie ein NPM-Paket vor, mit dem Sie Erfahrung haben. (Update: Gefunden Arbeits node.js Paket hier: https://www.npmjs.com/package/node-zabbix-sender)

Zabbix Konfiguration: Ich bin von Zabbix 2.4 in Docker installiert Lernen, keine benutzerdefinierte Konfiguration aus dieser Dockerhub: https://hub.docker.com/r/zabbix/zabbix-2.4/

Antwort

3
  1. Wahrscheinlich die besten würde sein, die Zabbix-API zu create hosts direkt zu verwenden.

  2. Alternativ können Sie eine Aktion einrichten und eine aktive Agentenverbindung emulieren, wodurch Zabbix den Host über die active agent auto-regstration erstellen würde.

  3. Sie könnten auch low level discovery (LLD) verwenden, um JSON zu senden, was dazu führen würde, dass Hosts/Elemente basierend auf Prototypen erstellt werden.

In all diesen Fällen Sie eine Minute lang warten müssen (Standard) für die Gastgeber in der Zabbix-Cache angezeigt werden soll, dann können Sie die Daten senden.

Beachten Sie auch, dass Zabbix 2.4 nicht mehr unterstützt wird, es wird keine Korrekturen erhalten - es ist kein "Langzeit-Support" Release.