Zabbix Monitoring - Übersetzung SNMP Traps
Hallo zusammen,
ich hoffe ihr könnt mir bei einem Problem weiterhelfen, welches ich aktuell einfach nicht gelöst bekomme.
Hintergrund:
Betriebssystem: Ubuntu 14.04.01
Ich beschäftige mich aktuell mit dem Monitoringsstem Zabbix und baue dies als Monitoringlösung für unser Netzwerk auf. Neben dem Servermonitoring sollen auch Netzwerkdrucker usw. mit in das Monitoring integriert werden, was über SNMP sehr gut funktioniert. Nachdem die grundlegende Installation und Konfiguration der SNMP Umgebung (snmp, snmpd, snmptt...) abgeschlosssen wurde konnte ich die Vorlagen für das Monitoring der einzelnen Druckertypen realisieren. (Via SNMP v1 & 2). Dies läuft soweit problemlos.
Im Zuge meiner Beschäftigung mit diesem Thema, stieß ich auf folgende Anleitung (http://lab4.org/wiki/Zabbix_Monitoring_SNMP_Traps_empfangen) die es ermöglich innerhalb von Zabbix Statusnachrichten zu verarbeiten, die direkt von den Druckern geschickt werden. (Sobald ein entsprechender Fehler vorliegt)
Ich habe mich durch die Anleitung durchgearbeitet und das ganze funktionstüchtig umgesetzt.
Problemstellung:
Wie in der Anleitung beschrieben schickt der Drucker bei einem Fehler einen SNMP Trap an den Zabbix Server, dieser verarbeitet den Trap und schreibt den Inhalt der Nachricht in eine Textdatei im tmp Verzeichnis des Systems.
Mein Problem ist nun, wie kann man die eigentliche Fehlermeldung aus der Nachricht des Traps herausfiltern?
Auszug aus dem SNMP Trap:
Im folgenden ein Auszug aus dem SNMP Trap (einmal mit, einmal ohne Varriablen)
Ansatz:
Wenn ich das im SNMp Trap richtg verstanden habe, ist der eigentliche Fehler "inputMediaChangeRequest" d.h. es muss neues Papier eingelegt werden. Es gelingt mir jedoch nicht diesen Ausdruck isoliert wiederzugeben.
Wie der ausgegebene SNMP Trap formatiert wird, ist ja in der snmptt.conf angegeben (bei mir unter /etc/snmp/snmptt.conf). Gemäß der Dokumentation von snmptt (http://snmptt.sourceforge.net/docs/snmptt.shtml#Variable-substitutions) ist es möglich die einzlenen Varriablen auszugeben, jedoch ist mir das bislang nicht gelungen.
Die aktuelle Konfiguration:
Hoffe ihr könnt mir bei der Lösung helfen.
Gruß Dante
PS: $n oder $+n/$-n habe ich bereits erfolglos ausprobiert. (entsprechen $7)
ich hoffe ihr könnt mir bei einem Problem weiterhelfen, welches ich aktuell einfach nicht gelöst bekomme.
Hintergrund:
Betriebssystem: Ubuntu 14.04.01
Ich beschäftige mich aktuell mit dem Monitoringsstem Zabbix und baue dies als Monitoringlösung für unser Netzwerk auf. Neben dem Servermonitoring sollen auch Netzwerkdrucker usw. mit in das Monitoring integriert werden, was über SNMP sehr gut funktioniert. Nachdem die grundlegende Installation und Konfiguration der SNMP Umgebung (snmp, snmpd, snmptt...) abgeschlosssen wurde konnte ich die Vorlagen für das Monitoring der einzelnen Druckertypen realisieren. (Via SNMP v1 & 2). Dies läuft soweit problemlos.
Im Zuge meiner Beschäftigung mit diesem Thema, stieß ich auf folgende Anleitung (http://lab4.org/wiki/Zabbix_Monitoring_SNMP_Traps_empfangen) die es ermöglich innerhalb von Zabbix Statusnachrichten zu verarbeiten, die direkt von den Druckern geschickt werden. (Sobald ein entsprechender Fehler vorliegt)
Ich habe mich durch die Anleitung durchgearbeitet und das ganze funktionstüchtig umgesetzt.
Problemstellung:
Wie in der Anleitung beschrieben schickt der Drucker bei einem Fehler einen SNMP Trap an den Zabbix Server, dieser verarbeitet den Trap und schreibt den Inhalt der Nachricht in eine Textdatei im tmp Verzeichnis des Systems.
Mein Problem ist nun, wie kann man die eigentliche Fehlermeldung aus der Nachricht des Traps herausfiltern?
Auszug aus dem SNMP Trap:
Im folgenden ein Auszug aus dem SNMP Trap (einmal mit, einmal ohne Varriablen)
sysUpTimeInstance.1.3 ():16:20:57:36.07 prtAlertSeverityLevel.1.43 (INTEGER):critical prtAlertTrainingLevel.1.43 (INTEGER):management prtAlertGroup.1.43 (INTEGER):input prtAlertGroupIndex.1.43 (INTEGER32):2 prtAlertLocation.1.43 (INTEGER32):0 prtAlertCode.1.43 (INTEGER):inputMediaChangeRequest prtAlertDescription.1.43 (OCTETSTR): prtAlertTime.1.43 (TICKS):16:20:56:47.40
sysUpTimeInstance.1.3:16:20:57:36.07 prtAlertSeverityLevel.1.43:critical prtAlertTrainingLevel.1.43:management prtAlertGroup.1.43:input prtAlertGroupIndex.1.43:2 prtAlertLocation.1.43:0 prtAlertCode.1.43:inputMediaChangeRequest prtAlertDescription.1.43: prtAlertTime.1.43:16:20:56:47.40
Ansatz:
Wenn ich das im SNMp Trap richtg verstanden habe, ist der eigentliche Fehler "inputMediaChangeRequest" d.h. es muss neues Papier eingelegt werden. Es gelingt mir jedoch nicht diesen Ausdruck isoliert wiederzugeben.
Wie der ausgegebene SNMP Trap formatiert wird, ist ja in der snmptt.conf angegeben (bei mir unter /etc/snmp/snmptt.conf). Gemäß der Dokumentation von snmptt (http://snmptt.sourceforge.net/docs/snmptt.shtml#Variable-substitutions) ist es möglich die einzlenen Varriablen auszugeben, jedoch ist mir das bislang nicht gelungen.
Die aktuelle Konfiguration:
EVENT general .* "General event" Normal
FORMAT ZBXTRAP $aA $ar severity:$s $Fn$+*$Fn$-*
FORMAT ZBXTRAP $aA $ar severity:$s $Fn$+*$Fn$-*
Hoffe ihr könnt mir bei der Lösung helfen.
Gruß Dante
PS: $n oder $+n/$-n habe ich bereits erfolglos ausprobiert. (entsprechen $7)
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 253155
Url: https://administrator.de/contentid/253155
Ausgedruckt am: 22.11.2024 um 11:11 Uhr
11 Kommentare
Neuester Kommentar
Hi Dante,
da du den Drucker nicht angegeben hast hab ich dir hier mal die Templates für Zabbix angehangen.
https://www.zabbix.com/wiki/templates/start
Hoffe das hilft schon mal.
Gruß,
kurbach
da du den Drucker nicht angegeben hast hab ich dir hier mal die Templates für Zabbix angehangen.
https://www.zabbix.com/wiki/templates/start
Hoffe das hilft schon mal.
Gruß,
kurbach
Generelle Empfehlung, wenn Branch Offices im Spiel sind:
"A Zabbix proxy is the ideal solution for centralized monitoring of remote locations, branches and networks with no local administrators."
Quelle:
https://www.zabbix.com/documentation/2.0/manual/concepts/proxy
/kurbach
"A Zabbix proxy is the ideal solution for centralized monitoring of remote locations, branches and networks with no local administrators."
Quelle:
https://www.zabbix.com/documentation/2.0/manual/concepts/proxy
/kurbach
Hm, ok.
Verstehe die Config mit den Thin Clients.
Dein SNMP müllt halt dein VPN-Kanal zu, imho zuviel Traffic durchs VPN, das ließe sich mit nem Proxy reduzieren.
Wenn du ne Linux-Box als VPN-GW hättest, könnte die auch noch den Proxy machen... aber am Setup an sich will ich gar nicht so viel sagen, das passt ja eigentlich schon.
Schwer...
35€ für nen Raspberry Pi / Debian / Zabbix Proxy - Bäm.
Aber bei den Traps muss ich passen. Hört sich nach ner so kleinen Infrastruktur an, wenn keine HW vorhanden ist als Proxy, da könnte der RPi vielleicht passend sein - für den fall, dass viele Außenstellen angebunden werden, würd ichs sogar so vorschlagen.
Traps - wie gesagt, bin ich raus - vielleicht weiß ja noch jemand was.
/kurbach
Verstehe die Config mit den Thin Clients.
Dein SNMP müllt halt dein VPN-Kanal zu, imho zuviel Traffic durchs VPN, das ließe sich mit nem Proxy reduzieren.
Wenn du ne Linux-Box als VPN-GW hättest, könnte die auch noch den Proxy machen... aber am Setup an sich will ich gar nicht so viel sagen, das passt ja eigentlich schon.
Schwer...
35€ für nen Raspberry Pi / Debian / Zabbix Proxy - Bäm.
Aber bei den Traps muss ich passen. Hört sich nach ner so kleinen Infrastruktur an, wenn keine HW vorhanden ist als Proxy, da könnte der RPi vielleicht passend sein - für den fall, dass viele Außenstellen angebunden werden, würd ichs sogar so vorschlagen.
Traps - wie gesagt, bin ich raus - vielleicht weiß ja noch jemand was.
/kurbach
Servus,
schau dir einmal die Kyocera-MIBs an, damit gehen auch herstellerspezifische Sachen:
http://www.oidview.com/mibs/1347/KYOCERA.html
Papier voll vs. leer geht:
beiden Fächer leer (Kassette 1 und Universal)
iso.3.6.1.2.1.43.8.2.1.10.1.1 = INTEGER: 0
iso.3.6.1.2.1.43.8.2.1.10.1.2 = INTEGER: 0
beide Fächer gefüllt:
iso.3.6.1.2.1.43.8.2.1.10.1.1 = INTEGER: -3
iso.3.6.1.2.1.43.8.2.1.10.1.2 = INTEGER: -3
Die OIDs in diesem Script helfen vielleicht:
http://exchange.nagios.org/directory/Plugins/Hardware/Printers/SNMP-Pri ...
Alternativ ein snmpwalk machen und speichern, Papier raus/Papierstau produzieren, weiteren snmpwalk machen und mit einem diff den Unterschied feststellen.
Im Prinzip findest du fast jede Anzeige, die auch im Webinterface aufscheint, irgendwo per SNMP.
Beispiel für Konica Minolta, da lässt sich jedes noch so kleine Detail überwachen:
http://is.muni.cz/th/359846/fi_b/specifikace.pdf
Grüße, Stefan
schau dir einmal die Kyocera-MIBs an, damit gehen auch herstellerspezifische Sachen:
http://www.oidview.com/mibs/1347/KYOCERA.html
Papier voll vs. leer geht:
beiden Fächer leer (Kassette 1 und Universal)
iso.3.6.1.2.1.43.8.2.1.10.1.1 = INTEGER: 0
iso.3.6.1.2.1.43.8.2.1.10.1.2 = INTEGER: 0
beide Fächer gefüllt:
iso.3.6.1.2.1.43.8.2.1.10.1.1 = INTEGER: -3
iso.3.6.1.2.1.43.8.2.1.10.1.2 = INTEGER: -3
Die OIDs in diesem Script helfen vielleicht:
http://exchange.nagios.org/directory/Plugins/Hardware/Printers/SNMP-Pri ...
Alternativ ein snmpwalk machen und speichern, Papier raus/Papierstau produzieren, weiteren snmpwalk machen und mit einem diff den Unterschied feststellen.
Im Prinzip findest du fast jede Anzeige, die auch im Webinterface aufscheint, irgendwo per SNMP.
Beispiel für Konica Minolta, da lässt sich jedes noch so kleine Detail überwachen:
http://is.muni.cz/th/359846/fi_b/specifikace.pdf
Grüße, Stefan
Das gute an den raspberry PI's ist ja, dass die schön klein und einfach zu konfigurieren sind.
Das setzt Linux-Kenntnisse allerdings voraus.
Da wir hier aber von Zabbix sprechen, sollte das auch kein Problem darstellen.
Ich hab halt zwei stück privat und würde eiskalt sowas vorschlagen.
Nen superkleinen (Abmessungen) USB-Stick rein, damit keine Datenkorruptionen auf der SD entstehen, Debian und den Proxy drauf, Netzwerk konfigurieren, SSH aktivieren - dann muss das Ding nur noch hingeschickt werden. Und Das Ding mit Strom zu versorgen und an den Switch/Router anzuklemmen, dafür brauchts auch kein IT-ler vor Ort ; )
Nun - "When all you have is a hammer, every problem looks like a nail." - und mit den PI's hab ich halt schon Erfahrung, vielleicht sind die Traps wirklich der bessere Weg, aber bekanntlich führen ja viele Wege nach Rom. Vielleicht könnte so nen Pi noch mehr vor Ort machen... vielleicht nen Squid (falls inet Traffic nicht durchs VPN geroutet wird) o.ä.
Gruß
kurbach
Das setzt Linux-Kenntnisse allerdings voraus.
Da wir hier aber von Zabbix sprechen, sollte das auch kein Problem darstellen.
Ich hab halt zwei stück privat und würde eiskalt sowas vorschlagen.
Nen superkleinen (Abmessungen) USB-Stick rein, damit keine Datenkorruptionen auf der SD entstehen, Debian und den Proxy drauf, Netzwerk konfigurieren, SSH aktivieren - dann muss das Ding nur noch hingeschickt werden. Und Das Ding mit Strom zu versorgen und an den Switch/Router anzuklemmen, dafür brauchts auch kein IT-ler vor Ort ; )
Nun - "When all you have is a hammer, every problem looks like a nail." - und mit den PI's hab ich halt schon Erfahrung, vielleicht sind die Traps wirklich der bessere Weg, aber bekanntlich führen ja viele Wege nach Rom. Vielleicht könnte so nen Pi noch mehr vor Ort machen... vielleicht nen Squid (falls inet Traffic nicht durchs VPN geroutet wird) o.ä.
Gruß
kurbach