Zum Inhalt springen

Wer hat schon mal in Zabbix einen External Check eingefügt?


GoaSkin

Empfohlene Beiträge

Hallo,

ich habe ein Gerät, bei dem man verschiedene Betriebsdaten auslesen kann, jedoch nicht über SNMP, sondern ein proprietäres Protokoll. Darum habe ich auf dem Zabbix-Server ein Item als External Control angelegt, was ein Skript ausführt, dass eine TCP-Verbindung zum Gerät aufbaut, die Antwort auswertet und einen numerischen Wert zurück liefert.

Das klappt soweit auch.

Das Problem ist aber, dass das Ziel-Gerät nicht immer im Netzwerk erreichbar ist. Schlägt der Verbindungsaufbau einmal fehl, liefert das Skript entsprechend keinen Wert zurück. Das zieht Zabbix als Fehler und setzt das ganze Item dann auf Unsupported mit dem Ergebnis, dass der ganze Wert dann nie wieder abgefragt wird.

Kann mein Skript in diesem Falle etwas Spezielles zurück liefern, damit es Zabbix als legitim betrachtet, dass mal kein Wert zurück kommt oder anderweitig erreichen, dass das Item nicht auf Unsupported gesetzt wird?

-1, NULL oder FALSE zurück liefern bringt nichts. Dann setzt Zabbix das Item auf Unsupported mit der Begründung, der Wert sei kein Unsigned Integer.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

prinzipiell kannst du jede Software an deine Bedürfnisse anpassen. Ich kenne Zabbix nicht (weiß nur das es Open Source ist). Dadurch hast du schon einmal Zugriff auf den Quellcode.

Es geht dir jedoch darum, dein Skript anzupassen. Wo hast du dieses denn her?

Hast du den Quellcode für dieses Skript und in welcher Sprache ist es geschrieben?

Gruß smite

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

das Skript habe ich selbst geschrieben. Habe ich jetzt leider nicht hier, sondern auf der Arbeit. Im Prinzip öffnet es aber nur eine TCP-Verbindung, sendet ein paar Bytes und wandelt wiederum ein paar Bytes aus der Antwort in einen Integer um, den es am Ende ausgibt.

Zabbix führt das Skript aus und bekommt eine Zahl.

Solange es eine Rückgabe gibt, ist alles in Ordnung. Zabbix nimmt den Wert und verarbeitet ihn.

Doch manchmal kommt die TCP-Verbindung nicht zustande (z.B. wenn das Ziel-Gerät aus ist) und dann gibt es keine Rückgabe. Das betrachtet Zabbix dann als Fehler und deaktiviert darauf hin die gesamte Wertabfrage, bis ich sie in der Konfig-Oberfläche wieder manuell aktiviere, was aber aus beschriebenem Grund nie von Dauer ist.

Natürlich könnte ich den Zabbix-Quellcode so anpassen, dass die Wertabfrage nicht deaktiviert ist. Das möchte ich aber deshalb nicht, weil dies bei manchen anderen Abfragen durchaus seinen Sinn haben könnte.

Als Ultima Ratio würde ich das Skript einfach den ausgelesenen Wert in eine Datei ablegen lassen und falls die TCP-Verbindung mal nichts her gibt, den Vorgängerwert ausgeben lassen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...