Drucker sind mit eines der Leidwesen eines jeden Administrators. Steckengebliebene Druckauftraege kann man oft noch leicht remote aus der Queue loeschen. Aber dann wird es auch schon haerter. Sie fressen Papier das umstaendlich wieder irgendwo herausgesucht werden muss, leere Papierfaecher fuehren zu endlosen Supportanfragen, genau wie leerer Toner oder nicht ganz geschlossene Abdeckklappen. Viele User schaffen es auch nicht aus den Lampen und Symbolen auf den Druckern schlau zu werden, so dass oft nur ein Abstecher vor Ort uebrig bleibt. Wie gut ist es dann, wenn der Admin schnell und uebersichtlich einen Status des Druckers geliefert bekommt, bzw. noch viel besser bei auftretenden Problemen schon gleich frueher gewarnt wird.
Fuer alle Administratoren die Nagios als Monitoringsystem verwenden, gibt es ein wundervolles Plugin von der Firma Ciphron zur Verfuegung gestellt: check_printer, dass es erlaubt Drucker sehr gut mit Nagios zu monitoren. Das Plugin ist auf dem CIPHRONs CORPORATE BLOG genauer vorgestellt.
In Nagios ist es sehr schnell installiert und eingerichtet. Ich gehe im folgenden von einem Debian System aus.
Das Plugin herunterladen und in /usr/lib/nagios/plugins/ abspeichern. Da es in PHP geschrieben ist und SNMP braucht muessen entsprechende Pakete installiert sein, aptitude install php5-cli php5-snmp hilft bei Bedarf weiter. Dann muss ein ein checkcommand definiert werden:
define command{ command_name check_printer command_line /usr/bin/php $USER1$/check_printer $ARG1$ $ARG2$ $ARG3$ $ARG4$ $ARG5$ }
und schon kann es losgehen. Wenn ein Drucker bereits als Host definiert ist, kann es losgehen mit dem definieren von entsprechenden Services. Um Tonerinformationen herauszubekommen reicht schon ein einfaches:
define service{ use generic-service host_name MeinDrucker service_description TONER contact_groups drucker-admins check_command check_printer!123.123.123.123!public!toner!1!0.1 }
Die Syntax ist !IP!SNMP-Community!Welche Info!Wert!Warnlevel!. Das Beispiel gibt fuer einen Drucker MeinDrucker eine Warnung, wenn der Fuellstand des ersten Toners (meistens Schwarz) unter 10% faellt.
Das Plugin erklaert seine Funktionen selber sehr gut, schmeisst ueber fast alles Informationen aus und kann Warnungen beim Unterschreiten verschiedener Level etc. ausgeben. Echt superklasse und superpraktisch!!
Hi,
cooler Post mit guter Anleitung. Eine Frage hab ich noch wenn ich den Screenshot angucke: Warum benutzt du die Alert Funktion des Plugins nicht? Das zeigt alle Probleme des Druckers (Papierstau, Überhitzt, Speicher kaputt uvm). Klappt das mit den Druckern nicht?
Gruß,
Jan
Hi,
sorry der erst so spaeten Antwort! Ich werde die Alert-Funktion nutzen, nur hatte ich das Plugin da gerade erstmal schnell fuer 7 Drucker eingerichtet und wollte mir das alles mal angucken… Anfang Oktober werde ich mich dann intensiver damit beschaeftigen, das fehlerbereinigte von Euch nehmen, und dann die Alert-Funktion pruefen und sehr warscheinlich auch nutzen :-)
Ich gebe dann nen Statusbericht ob alles mit allen Druckermodellen passt. Klasse Plugin BTW, und das check_time_sync is ja mal auch superpraktisch! :-)
Hi,
sehr gutes Printer tool.
Leider funktioniert die Page Abfrage bei Konica Minolta Druckern nicht. Bei allen anderen schon.
Irgend eine Idee, welches Tray ich abfragen muss?
this contribution rocks!! it works with our printer, so easy to implement to nagios… keep a good work dude..
hi,
mein nagios mag das plugin wohl nicht!! wenn ich das plugin über die commands.cfg einbinde und nagios reload ausführe, kommt ne Fehlermeldung: Config Error! ich könnte mir vorstellen das es an php liegt, bin mir aber nicht sicher. kann jemand helfen??
moin! poste mal den config error was da genau wo steht.
yep, es ist die Standard antwort: „Running configuration check… CONFIG ERROR! Reload aborted. Check your Nagios config“.
Ich habe folgendes in meine „commands.cfg“ eingefügt und nagios reloaded:
define command{
command_name check_printer
command_line /usr/bin/php $USER1$/check_printer $ARG1$ $ARG2$ $ARG3$ $ARG4$ $ARG5$
}
dann kommt der Fehler!! nehme ich es raus und reloade, funktioniert es wieder.
gucke mal bitte in die resource.cfg was da als $USER1$ steht, sollte /usr/lib/nagios/plugins/ sein. dann ueberpruefe ob die check_printer auch in genau dem verzeichnis liegt. weiter musst du das paket php5-cli (oder auch php4-cli entsprechend deiner phpversion) installiert haben damit die binary existiert. guck mal nach und sag obs geholfen hat…
da steht „$USER1$=/usr/local/nagios/libexec“ da liegt auch die „check_printer“. Es scheint dann wohl am php Paket zu hängen. ich habe php5 auf meinem openSuse installiert. ob ich php5-cli habe kann ich selbst nicht feststellen??!! könnte ich es per yast nachinstallieren?
muesste eigentlich. ich kenn mich mit opensuse nich aus da ich alles unter debian mache, aber guck mal nach nem paket wie php5 und installiere es… _muesste_ eigentlich gehen, ansonsten im netz suchen, du brauchst wiegesagt die /usr/bin/php binary falls diese nicht existiert.
hi, bin jetzt auf Ubuntu umgestiegen… leider der gleiche Fehler beim einbinden des „define Command{..“ in meine command.cfg. Nagios reload endet mit dem selben Error. Rufe ich in der Shell das Commando „./check_printer 192.168.2.100 public toner 3“ auf, bekomme ich den korrekten Status meines Drucker und den Tonerstand. was mache ich falsch??
hi stefan, schicke mir doch bitte per mail deine commands.cfg und die komplette fehlermeldung per mail an prego@pregos.info. dann kann ich dir sicherlich weiterhelfen :-) vg jan
hallo, yep.. werd ich machen.. danke
hallo Jan, ich hab es gelöst!! Nun habe ich aber noch eine Frage zur Syntax (!IP!Comunity!…).. Ich würde gerne statt der IP-Adresse den Host-Namen eingeben oder am besten nur „check_printer!public nutzen wie bei vielen anderen Plugins. Gibt es da eine Möglichkeite?
hi stefan,
sorry der spaeten antwort. Es sollte dafuer ausreichen bei dem define command{} das $ARG1$ gegen ein $HOSTADDRESS$ auszutauschen und die nachfolgenden $ARG*$ jeweils -1 anzupassen.
vg jan :-)
:?:
Hi,
Vielleicht liegt es an meinem bisheringen langen Arbeitstag oder ich bin wirklich so stumpf und finde die Anleitung nicht.
In check_printer werde ich auch nicht so recht fündig.
Wo kann ich denn eine Anleitung bzw. diverse Beispiele finden?
Grüße Nick
Hallo,
Super plugin. Allerdings habe ich ein Problem mit Canon Drucker und nur der Reihe iR1600 mit der Option Alerts. Wenn diese Drucker auf Ready stehen bekomme ich ein Warning. Was kann ich tun?
Hallo,
super Erklärung zu dem check_printer Plugin, vielen Dank!
Es hat auch soweit direkt funktioniert, dass ich mit „alerts“ ein „OK“ zurück bekomme, allerdings nur mit einer Menge Zahlen, nicht mit einer „genauen“ Erklärung. Gibt es eine Möglichkeit den Output zu interpretieren?
Die Optionen des Plugins sind recht frei gehalten, gibt es eine Möglichkeit der Abfrage zum Drucker welche Counter mir zur Verfügung stehen?
Welche Hardware (num) ich Abfragen kann? Welche Parts (num) es gibt?
Viele Grüsse
Jens
Hallo Jens, die Moeglichkeit den Output vom Plugin direkt interpretieren zu lassen gibt es leider nicht. Bei den Countern, Hardware, Toner etc. wird immer aufsteigend gezaehlt. _Welche_ es direkt gibt kann man sich nicht anzeigen lassen, aber einfach aufsteigend durchprobieren bis man alle hat. Das mache ich zumindest… :-)
Hallo
bin gerade auf das Plugin gestoßen. Habe einen HP Drucker (Officejet 6500A) bei dem das check_hpjd nicht geht. Mit dem Plugin, bis auf Papier und alerts gehts – leider nur manuell.
In Nagios steht überall bei dem Drucker Warning und als Test nur (null). Bei Eingabe in die Shell bekomme ich eine richtige Antwort.
hi,
gib doch mal bitte die entsprechenden conf Ausschnitte damit man das besser sehen und debuggen kann.
THX :-)
/usr/bin/php /etc/nagios/libexec/check_printer 192.168.178.200 public alerts
UNKNOWN – Internal errorr
Es gibt keinen Fehler am Drucker
——-
/usr/bin/php /etc/nagios/libexec/check_printer 192.168.178.200 public paper 1
Warning – 0
Papier ist voll
———————
/usr/bin/php /etc/nagios/libexec/check_printer 192.168.178.200 public parts 4
Critical – duplexer door Status=0
Habe kein Duplex evtl daher.
————–
Den fehler mit (null) und Warning habe ich behoben. Habe in der command.cfg ein $ vergessen ;)
Zum Drucker selbst. Es ist ein HP Officejet 6500A
Hallo,
der Internal Error wurde im Modus Alert repariert. Der SNMP-Rückgabewert hat sich geändert. Die IF-Schleife muss angepasst werden. Das geänderte Skript befindet sich auf der Ciphron-Webseite.
Viel Spaß
Gruß
Mirko
Hallo,
habe den identischen Fehler wie von Tobias berichtet.
Das PHP Script habe ich vor 2 Tagen von der Seite http://www.ciphron.de/gfx/pool/check_printer heruntergeladen bzw. abgespeichert.
Gibt es evtl. jemanden der das Changelog kennt bzw. der mir die Änderungen sagen könnte?
Gruß
tom
Hallo prego
kann es sein, dass des plugin mit brother druckern überhaupt nicht gut zurecht kommt.
wenn ich auf der cmd folgendes eingebe :
./check_snmp_printer 192.168.x.x -Public CONSUM ALL
dann kommt als antwort nur das :
|
Es ist ein Brother HL-5350DN series
grüße skyerjoe
Habe ein „Problem“ mit dem Skript…
Die Ausgabe funktioniert wunderbar (Tonerstand inkl. Performancedaten auf der Kommandozeile, aber in Icinga fehlen diese Daten plötzlich und ich bekomme nur die Identifikationsnummer des Toners angezeigt. Screenshot dazu siehe:
http://www.nagios-portal.org/wbb/index.php?page=Board&boardID=5
Jemand eine Idee was da falsche laufen könnte?
Skript funktioniert auf der Kommandozeile wunderbar, doch nun habe ich den Command & Service angelegt und auf einmal fehlt mir der Füllstand / Performancedata im Icinga. Habe das Problem hier genauer beschrieben (Diesmal mit richtigem Link):
http://www.nagios-portal.org/wbb/index.php?page=Thread&threadID=24291
Kann mir jemand weiterhelfen?
Nachdem ich alles eingetragen habe, erhalte ich unter Nagios3 auf Ubuntu Server folgenden Fehler: PHP Fatal error: Call to undefined function snmp_set_quick_print() in /usr/lib/nagios/plugins/check_printer on line 127
In Line 127 steht: snmp_set_quick_print ( true ); Was kann ich dagegen tun? Jemand ´ne Idee?
sudo aptitude install php5-snmp :-)
Halo, Danke aber das hilft leider nciht. Hier erhalte ich die folgenden Fehler:
sudo aptitude install php5-snmp
The following NEW packages will be installed:
php5-snmp
0 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 11,0 kB of archives. After unpacking 90,1 kB will be used.
Err http://de.archive.ubuntu.com/ubuntu/ oneiric-updates/main php5-snmp amd64 5.3.6-13ubuntu3.3
404 Not Found [IP: 141.30.13.10 80]
Err http://security.ubuntu.com/ubuntu/ oneiric-security/main php5-snmp amd64 5.3.6-13ubuntu3.3
404 Not Found [IP: 91.189.92.167 80]
0% [Working]E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/p/php5/php5-snmp_5.3.6-13ubuntu3.3_amd64.deb: 404 Not Found [IP: 91.189.92.167 80]
E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/p/php5/php5-snmp_5.3.6-13ubuntu3.3_amd64.deb: 404 Not Found [IP: 91.189.92.167 80]
Ok, jetzt habe ich es hinbekommen. Es muss sudo apt-get install php5-snmp heißen und heute können auch die Pakete runtergeladen werden. Da gab´s wohl gestern Probleme. Danke !
So, nun doch noch eine Frage. Hat jemand ne Idee, wie ich das mit dem Gebraucht-Toner Behälter checken kann. Bei mir gibt er ein Warn aus. Eigentlich müssten ja die Werte genau andersrum sein, weil sich der Behälter ja füllt. Ein
check_command check_printer!123.123.123.123!public!toner 5!0.9!1.0!0.0 bringt mir trotzdem ein warning. Warscheinlich muss man das anders lösen, oder? Weil ich ja keine Werte zurück bekome sondern nur ein „ok“ oder „warn“
hallo zusammen,
prima anleitung,
ich habe nagios unter debian installiert. habe aber das problem das bei check_printer unter der statusinformation /usr/bin/php das angezeigt bekomme.
wenn ich aber unter services gehe, zeit er mir zb. den tonerstand an.
was habe ich übersehen?
kann mir jemand weiterhelfen…..
gruß lexus
Hallo zusammen,
nach der Suche bin ich auf der Seite gelandet. Es hört sich alles gut….
Das ist meine erste Nagios Installation und bin auch kein Linux profi ;-)
ich habe nagios unter Suse installiert. Ich möchte ein Canon und HP Drucker überwachen und wenn es klappt wie aussieht wäre es super.
Leider ich bekomme es nicht hin.
Erst lief auf fehler nach dem php5 nachinstalliert habe läuft als unbekannt (Status Info:/usr/local/nagios/libexec/check_printer ip community command).
Oben wird ein bsp. von ein Toner- Überwachung, wie tut man die andere sache konfigurieren (Papier Stau oder Fach)
Kann man eine Installation bzw. Konfigurations Anleitung bekommen?
Danke
wie ausieht liegt wirklich an der definition von der command für Papierstau oder Fach uws, jetzt den Tonerüberwachung scheint zu funktionieren…
wäre trotzdem super wenn jemand mir helfen kann
grüße
Hallo,
wenn ich deine Anleitung befolge steht beim Drucker „Service:Toner“ UNKNOWN. Im Eventlog steht folgende Meldung:
error executing command ‚/user/bin/php‘: No such file or directory. Make sure that the file actually exists (in PATH, if set) and is executable!
Kann mir bitte jemand sagen woran das liegt?
Im Verzeichnis /user/bin/ ist sowohl php (in blau) als auch php5 (in grün) zu finden…
Danke – Gruß
War nur ein Tippfehler! Danke! :)
Bei mir klappt check_Printer leider nicht. auf der kommandozeile geht alles:
[root@nagios ~]# /usr/local/nagios/libexec/check_printer 192.168.11.40 public toner 1 0.2
OK – Black Toner Cartridge[root@nagios ~]#
Im Nagios wird angezeigt:
/usr/local/nagios/libexec/check_printer ip community command
Was läuft da falsch?
Ich bin jetzt mit Nagios nicht so vertraut, deshalb vielleicht diese Frage.
Aber gibt es damit auch die Chance den Füllstand der Toner für die Drucker mit auszulesen und zu überwachen?
@Tintensusi: Wenn die Informationen ueber SNMP verfuegbar sind, dann ja.
Bei mir klappt check_printer wunderbar. Bei einem Drucker-Modell ist mir auf gefallen, dass in der WEB-Ansicht von Nagios der Status ohne die %-Anzahl des Toners angezeigt wird. beim Ausführen des Befehls direkt auf dem Server, wird dieser aber angezeigt:
WEB-Status Anzeige: OK – Black Cartridge HP CB390A
Nagios-Server Ausgabe: OK – Black Cartridge HP CB390A 57% (9192 of 15849 left) | toner=9192;3169.8;0;0;15849
Bei anderen Geräten, bei denen ich den gleichen command verwende, erscheinen die %-Angaben.
Wer die Info-Option alerts verwendet und sich wundert, warum bei nicht HP-Druckern ohne Fehler oder Warnung die Meldung
UNKNOWN – Could not get data
erscheint, kann das Problem wie folgt lösen:
snmpwalk -v -c public
In der ersten Zeile der Ausgabe den Wert nach STRING: notieren
Beispiel: iso.3.6.1.2.1.1.1.0 = STRING: „KONICA MINOLTA bizhub C220“
Die Herstellerbezeichnung KONICA reicht hier quasi als Präfix aus.
Im check_printer Skript den Bereich um Zeile 490 herum entsprechend anpassen. Ich habe Canon und KONICA ergänzt:
if ( $rawdata === FALSE || !is_array ( $rawdata ) ) {
if ( strpos($sysDescr, „HP ETHERNET“) !== FALSE ) {
nagios_return ( 0, „no alerts“ );
} elseif ( strpos($sysDescr, „Canon“) !== FALSE ) {
nagios_return ( 0, „no alerts“ );
} elseif ( strpos($sysDescr, „KONICA“) !== FALSE ) {
nagios_return ( 0, „no alerts“ );
} else {
nagios_return ( 3, „Could not get data“ );
}
}
Ich meinte natürlich:
snmpwalk ip-adresse -v snmp-version -c public
Hallo,
ich habe Icinga2 unter Debian 8.3 und bekomme die command.cfg nicht hin.
Auf der Kommandozeile kann ich Hardware, Toner usw. problemlos auslesen.
Die command.cfg sieht bei mir so aus:
define command{
command_name check_printer
command_line /etc/nagios-plugins/config/check_printer -H $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $ARG4$ $ARG5$
}
Weiss jemand Rat?
Viele Grüße
Ananda
Hi,
Nette Vorstellung des Plugins! Ich hab ein Problem jedoch mit einem Konica Minolta C203 Drucker. Das Plugin kann die geforderten MiBs nicht Zuordnen bez sind diese aus der C203 Baureie nicht bekannt.
Wie könnte ich das Problem am einfachsten Lösen?!
Leider kann der Hersteller mir auch nicht wirklich weiterhelfen da diese zwahr Tools bereit stellen die den Drucker Überwachen können dieses jedoch nur für Unternähmen machen die den Drucker direckt beim Hersteller Erworben haben.
Wie kann ich das Problem also nun am einfachsten lösen?