Brother SNMP OID Toner
Hallo zusammen,
ich versuche krampfhaft seit ein paar Stunden herauszubekommen wir ich bei Brother Druckern verschiedener Modelle per SNMP den Tonerstatus (Füllstand) abzufragen für unser Monitoring.
hat da jemand eine Idee??
MfG
der Doktor
ich versuche krampfhaft seit ein paar Stunden herauszubekommen wir ich bei Brother Druckern verschiedener Modelle per SNMP den Tonerstatus (Füllstand) abzufragen für unser Monitoring.
hat da jemand eine Idee??
MfG
der Doktor
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 208991
Url: https://administrator.de/forum/brother-snmp-oid-toner-208991.html
Ausgedruckt am: 23.12.2024 um 14:12 Uhr
8 Kommentare
Neuester Kommentar
Hallo,
ich nutze bei unseren Kunden einen Icinga / Nagios zum Überwachen.
Ich habe bei den Brother-Geräten folgende OIDs im Einsatz:
Seitenzahl: 1.3.6.1.2.1.43.10.2.1.4.1.1
Papier Fach1: 1.3.6.1.2.1.43.8.2.1.10.1.1
Papier Fach2: 1.3.6.1.2.1.43.8.2.1.10.1.2
Papier Fach3: 1.3.6.1.2.1.43.8.2.1.10.1.3
Verbrauchsmaterial: (ggf. mal einen SNMPWalk machen, je nach Druckertyp - Farb oder S/W kann das abweichen):
- Stand: 1.3.6.1.2.1.43.11.1.1.9.1.ID
- Voll: 1.3.6.1.2.1.43.11.1.1.8.1.ID
- Name: 1.3.6.1.2.1.43.11.1.1.6.1.ID
(wobei ID für einen Unterpunkt steht! - SNMPWalk nutzen! Toner Gelb könnte z.B: ID 3 haben. Dies bei allen drei o.g. Abfragen einsetzen.)
Den aktuellen Füllstand kannst du errechnen: Füllstand = Stand * 100 / Voll
Ich hoffe ich konnte dir helfen,
Gruß,
Florian
ich nutze bei unseren Kunden einen Icinga / Nagios zum Überwachen.
Ich habe bei den Brother-Geräten folgende OIDs im Einsatz:
Seitenzahl: 1.3.6.1.2.1.43.10.2.1.4.1.1
Papier Fach1: 1.3.6.1.2.1.43.8.2.1.10.1.1
Papier Fach2: 1.3.6.1.2.1.43.8.2.1.10.1.2
Papier Fach3: 1.3.6.1.2.1.43.8.2.1.10.1.3
Verbrauchsmaterial: (ggf. mal einen SNMPWalk machen, je nach Druckertyp - Farb oder S/W kann das abweichen):
- Stand: 1.3.6.1.2.1.43.11.1.1.9.1.ID
- Voll: 1.3.6.1.2.1.43.11.1.1.8.1.ID
- Name: 1.3.6.1.2.1.43.11.1.1.6.1.ID
(wobei ID für einen Unterpunkt steht! - SNMPWalk nutzen! Toner Gelb könnte z.B: ID 3 haben. Dies bei allen drei o.g. Abfragen einsetzen.)
Den aktuellen Füllstand kannst du errechnen: Füllstand = Stand * 100 / Voll
Ich hoffe ich konnte dir helfen,
Gruß,
Florian
Hallo,
wie lautet denn deine Abfrage genau?
Mach doch mal nen SNMPGET drauf. Stimmt die Community? Bzw. Ist SNMP auf den Druckern freigeschaltet?
wie lautet denn deine Abfrage genau?
Mach doch mal nen SNMPGET drauf. Stimmt die Community? Bzw. Ist SNMP auf den Druckern freigeschaltet?
Hallo,
so, wenn ich jetzt folgendes in der Testumgebung bei mir mache:
Rechne ich nun folgendes:
Füllstand = Stand * 100 / Voll
Füllstand = -2 * 100 / -3
Füllstand = -200 / -3
Füllstand = 66,67
Sprich: Der Toner wird in 3er Schritten abgefragt. Nun musst du nur noch Schwellenwerte einbauen. D.h. alles über 40% ist ok. 10 - 40 % = Warning, weniger als 10% = error.
Gruß,
Florian
so, wenn ich jetzt folgendes in der Testumgebung bei mir mache:
Name des Toners:
root@nagios:~# snmpget -v1 -c public 192.168.120.31 1.3.6.1.2.1.43.11.1.1.6.1.1
Antwort: SNMPv2-SMI::mib-2.43.11.1.1.6.1.1 = STRING: "Black Toner Cartridge"
Zustand, wenn voll:
root@nagios:~# snmpget -v1 -c public 192.168.120.31 1.3.6.1.2.1.43.11.1.1.8.1.1
Antwort: SNMPv2-SMI::mib-2.43.11.1.1.8.1.1 = INTEGER: -2
Aktueller Stand:
root@nagios:~# snmpget -v1 -c public 192.168.120.31 1.3.6.1.2.1.43.11.1.1.9.1.1
Antwort: SNMPv2-SMI::mib-2.43.11.1.1.9.1.1 = INTEGER: -3
Rechne ich nun folgendes:
Füllstand = Stand * 100 / Voll
Füllstand = -2 * 100 / -3
Füllstand = -200 / -3
Füllstand = 66,67
Sprich: Der Toner wird in 3er Schritten abgefragt. Nun musst du nur noch Schwellenwerte einbauen. D.h. alles über 40% ist ok. 10 - 40 % = Warning, weniger als 10% = error.
Gruß,
Florian
Hallo flow.ryan,
hatte bis gerade das gleiche Problem wie du.
Muss ganz ehrlich sagen, die HP Drucker die wir haben, sind einfacher abzufragen.
Da wir die Brother Geräte jedoch in so gut wie jedem Büro stehen haben, musste ich mich darum kümmern.
Dabei habe ich für mein Script (Auszug siehe unten) nicht nur die OID für ColorantMaxValue und CurrentValue genommen, sondern mich nach einigen Tests auch auf den "DisplayString" konzentriert.
function check_toner() {
MAXLEVEL=$(snmpget -Ovq -v1 -c $COMMUNITY $HOSTNAME .1.3.6.1.2.1.43.11.1.1.8.1.2 2>/dev/null)
CURRLEVEL=$(snmpget -Ovq -v1 -c $COMMUNITY $HOSTNAME .1.3.6.1.2.1.43.11.1.1.9.1.2 2>/dev/null)
ALERTDESCR=$(snmpget -Ovq -v1 -c $COMMUNITY $HOSTNAME .1.3.6.1.4.1.2435.2.3.9.4.2.1.5.4.5.2.0 2>/dev/null)
EXIT_STRING="UNKNOWN - could not get values for toner level. \n"
EXIT_CODE=3
elif [ $MAXLEVEL -eq $CURRLEVEL ]; then
EXIT_STRING="OK - toner full. \n"
EXIT_CODE=0
elif [[ $CURRLEVEL -eq -3 ]] && [[ ! $ALERTDESCR =~ "WENIG TONER" ]]; then
EXIT_STRING="OK - toner not low. \n"
EXIT_CODE=0
elif [[ $ALERTDESCR =~ "WENIG TONER" ]]; then
EXIT_STRING="WARNING - toner low. \n"
EXIT_CODE=1
elif [[ $ALERTDESCR =~ "TONER ERSETZEN" ]]; then
EXIT_STRING="CRITICAL - toner empty! \n"
EXIT_CODE=2
else
EXIT_STRING="UNKNOWN - please check script. \n"
EXIT_CODE=3
fi
printf "$EXIT_STRING"
exit $EXIT_CODE
}
Mein Code orientiert sich stark an den standard Nagios Scripten. Im besonderen an "check_snmp_printer".
Dafür also auch ein fettes Dankeschön an den Ursprünglichen Ersteller!
hatte bis gerade das gleiche Problem wie du.
Muss ganz ehrlich sagen, die HP Drucker die wir haben, sind einfacher abzufragen.
Da wir die Brother Geräte jedoch in so gut wie jedem Büro stehen haben, musste ich mich darum kümmern.
Dabei habe ich für mein Script (Auszug siehe unten) nicht nur die OID für ColorantMaxValue und CurrentValue genommen, sondern mich nach einigen Tests auch auf den "DisplayString" konzentriert.
function check_toner() {
MAXLEVEL=$(snmpget -Ovq -v1 -c $COMMUNITY $HOSTNAME .1.3.6.1.2.1.43.11.1.1.8.1.2 2>/dev/null)
CURRLEVEL=$(snmpget -Ovq -v1 -c $COMMUNITY $HOSTNAME .1.3.6.1.2.1.43.11.1.1.9.1.2 2>/dev/null)
ALERTDESCR=$(snmpget -Ovq -v1 -c $COMMUNITY $HOSTNAME .1.3.6.1.4.1.2435.2.3.9.4.2.1.5.4.5.2.0 2>/dev/null)
EXIT_CODE=3
elif [ $MAXLEVEL -eq $CURRLEVEL ]; then
EXIT_STRING="OK - toner full. \n"
EXIT_CODE=0
elif [[ $CURRLEVEL -eq -3 ]] && [[ ! $ALERTDESCR =~ "WENIG TONER" ]]; then
EXIT_STRING="OK - toner not low. \n"
EXIT_CODE=0
elif [[ $ALERTDESCR =~ "WENIG TONER" ]]; then
EXIT_STRING="WARNING - toner low. \n"
EXIT_CODE=1
elif [[ $ALERTDESCR =~ "TONER ERSETZEN" ]]; then
EXIT_STRING="CRITICAL - toner empty! \n"
EXIT_CODE=2
else
EXIT_STRING="UNKNOWN - please check script. \n"
EXIT_CODE=3
fi
printf "$EXIT_STRING"
exit $EXIT_CODE
}
Mein Code orientiert sich stark an den standard Nagios Scripten. Im besonderen an "check_snmp_printer".
Dafür also auch ein fettes Dankeschön an den Ursprünglichen Ersteller!
EDIT:
Die Prüfung unter Hinzunahme der "ColorantMaxValue" und "ColorantCurrentValue" (eigentlich "Marker" anstatt "Colorant") für zu einem Problem:
So hat nach kruzer Zeit einer der 25 brother HL-5350DN Drucker einen Rückgabewert von "UNKNOWN - ..." geworfen.
Kurz gesucht: der Wert für MarkerCurrentValue lag bei 0.
Das obwohl das Webinterface und auch der Ausdruck zu den Verbrauchsinformationen einen Tonerstand > 50% anzeigten.
Entsprechnd habe ich das Script abgeändert und arbeite nun nurnoch mit dem DisplayString.
Zwar hat es sich gezeigt, dass der Weg von "TONER NIEDRIG" zu "TONER ERSETZEN" recht kurz ist, jedoch die einzige Möglichkeit ist effektiv die Drucker über SNMP abzufragen.
function check_toner() {
ALERTDESCR=$(snmpget -Ovq -v1 -c $COMMUNITY $HOSTNAME .1.3.6.1.4.1.2435.2.3.9.4.2.1.5.4.5.2.0 2>/dev/null)
if [ -z $ALERTDESCR ]; then
EXIT_STRING="UNKNOWN - could not get values for toner level. \n"
EXIT_CODE=3
elif [[ ! $ALERTDESCR =~ "WENIG TONER" ]] && [[ ! $ALERTDESCR =~ "TONER ERSETZEN" ]]; then
EXIT_STRING="OK - toner level is ok. \n"
EXIT_CODE=0
elif [[ $ALERTDESCR =~ "WENIG TONER" ]]; then
EXIT_STRING="WARNING - toner low. \n"
EXIT_CODE=1
elif [[ $ALERTDESCR =~ "TONER ERSETZEN" ]]; then
EXIT_STRING="CRITICAL - toner empty! \n"
EXIT_CODE=2
else
EXIT_STRING="UNKNOWN - please check script. \n"
EXIT_CODE=3
fi
printf "$EXIT_STRING"
exit $EXIT_CODE
}
Die Prüfung unter Hinzunahme der "ColorantMaxValue" und "ColorantCurrentValue" (eigentlich "Marker" anstatt "Colorant") für zu einem Problem:
So hat nach kruzer Zeit einer der 25 brother HL-5350DN Drucker einen Rückgabewert von "UNKNOWN - ..." geworfen.
Kurz gesucht: der Wert für MarkerCurrentValue lag bei 0.
Das obwohl das Webinterface und auch der Ausdruck zu den Verbrauchsinformationen einen Tonerstand > 50% anzeigten.
Entsprechnd habe ich das Script abgeändert und arbeite nun nurnoch mit dem DisplayString.
Zwar hat es sich gezeigt, dass der Weg von "TONER NIEDRIG" zu "TONER ERSETZEN" recht kurz ist, jedoch die einzige Möglichkeit ist effektiv die Drucker über SNMP abzufragen.
function check_toner() {
ALERTDESCR=$(snmpget -Ovq -v1 -c $COMMUNITY $HOSTNAME .1.3.6.1.4.1.2435.2.3.9.4.2.1.5.4.5.2.0 2>/dev/null)
if [ -z $ALERTDESCR ]; then
EXIT_STRING="UNKNOWN - could not get values for toner level. \n"
EXIT_CODE=3
elif [[ ! $ALERTDESCR =~ "WENIG TONER" ]] && [[ ! $ALERTDESCR =~ "TONER ERSETZEN" ]]; then
EXIT_STRING="OK - toner level is ok. \n"
EXIT_CODE=0
elif [[ $ALERTDESCR =~ "WENIG TONER" ]]; then
EXIT_STRING="WARNING - toner low. \n"
EXIT_CODE=1
elif [[ $ALERTDESCR =~ "TONER ERSETZEN" ]]; then
EXIT_STRING="CRITICAL - toner empty! \n"
EXIT_CODE=2
else
EXIT_STRING="UNKNOWN - please check script. \n"
EXIT_CODE=3
fi
printf "$EXIT_STRING"
exit $EXIT_CODE
}