Mit Nagios kann man eine Vielzahl an Informationen von den unterschiedlichsten Hardwaregeräten abfragen. Ein sicherlich sehr nützliches ist das von ciphron entwickelte check_printer. Damit kann man
- Tonerstand
- Papierstand
- Druckvolumen
- Hardwarestatus
- etc.
abgefragt werden.
Die Installation ist nicht sehr aufwendig und lässt sich leicht durchführen.
Schritt 1
Ladet das Plugin von der Seite des Herstellers herunter ➡ ciphron.de/gfx/pool/check_printer
Schritt 2
Speichert die Datei im Plugin-Verzeichnis von Nagios unter /usr/lib/nagios/plugins ab und ändert die Rechte ab (siehe Screenshot)
Schritt 3
Der Abfrage Befehl ist in der Nagios-Konfiguration zu hinterlegen. Ich habe es in die /etc/nagios3/commands.cfg geschrieben. Dort einfach die folgenden Zeilen eintragen.
define command{ command_name check_printer command_line /usr/bin/php $USER1$/check_printer $ARG1$ $ARG2$ $ARG3$ $ARG4$ $ARG5$ }
Schritt 4
Als wahrscheinlich aufwendigster Schritt ist das Gerät, also der abzufragende Drucker, noch zu hinterlegen. Dazu wechselt in das Verzeichnis /etc/nagios3/conf.d und legt dort eine Datei mit dem Names eures Druckers an, z.B. Drucker.cfg. Dort müsst ihr nun die Informationen zum Gerät und die Abfrageparameter definieren.
# A simple configuration file for monitoring the local host # This can serve as an example for configuring other servers; # Custom services specific to this host are added here, but services # defined in nagios2-common_services.cfg may also apply. # define host{ use generic-printer-ad-gde ; Name of host template to use host_name Drucker1 alias Drucker1, Canon iR C3080 address 192.168.2.50 } define hostextinfo{ host_name Drucker1 notes Drucker1, Canon iR C3080 notes_url http://192.168.2.50/ icon_image base/hp-printer40 icon_image_alt Drucker1, Canon iR C3080 vrml_image hp-printer40.png statusmap_image base/hp-printer40.gd2 } define service{ use generic-service-printer-de ; Name of service template to use host_name Drucker1 service_description PING check_command check_ping!100,10%!250,20% } define service{ use generic-service-printer-de host_name Drucker1 service_description Counter contact_groups printeradmins check_command check_printer!192.168.2.50!public!counter!1 } define service{ use generic-service-printer-de host_name Drucker1 service_description TONER_black contact_groups printeradmins check_command check_printer!192.168.2.50!public!toner!1!0.05 } define service{ use generic-service-printer-de host_name Drucker1 service_description TONER_Cyan contact_groups printeradmins check_command check_printer!192.168.2.50!public!toner!2!0.05 } define service{ use generic-service-printer-de host_name Drucker1 service_description TONER_Magenta contact_groups printeradmins check_command check_printer!192.168.2.50!public!toner!3!0.05 } define service{ use generic-service-printer-de host_name Drucker1 service_description TONER_Yellow contact_groups printeradmins check_command check_printer!192.168.2.50!public!toner!4!0.05 } define service{ use generic-service-printer-de host_name Drucker1 service_description Paper_Tray_1 contact_groups printeradmins check_command check_printer!192.168.2.50!public!paper!2!0.1 } define service{ use generic-service-printer-de host_name Drucker1 service_description Paper_Tray_2 contact_groups printeradmins check_command check_printer!192.168.2.50!public!paper!3!0.1 } define service{ use generic-service-printer-de host_name Drucker1 service_description Paper_Tray_3 contact_groups printeradmins check_command check_printer!192.168.2.50!public!paper!4!0.1 } define service{ use generic-service-printer-de host_name Drucker1 service_description Paper_Tray_4 contact_groups printeradmins check_command check_printer!192.168.2.50!public!paper!5!0.1 }
In der Beispieldatei wird ersichtlich, was alles abgefragt wird. Ihr müsst die Einträge nur noch an eure Gegebenheiten anpassen:
- host_name = Name des Druckers, der in Nagios für die Indexierung verwendet wird
- alias = ist hier der Hersteller und das Modell des Druckers
- address = Ip-Adresse des Geräts
- Im Bereich hosttextinfo sind die Beschreibung, ein Link auf die Adminoberfläche und das Icon definiert
- In den nachfolgenden define service Abschnitten ist definiert, welche Informationen Nagios von den Druckern abholen soll.
-
Achtung:
- Der host_name ist anzupassen
- service_description = verwendet einen eindeutigen Namen, da dieser auch in der weiteren Nagios-Konfiguration verwendet wird und in der Weboberfläche ausgegeben wird.
- contact_groups = Die Gruppe, die benachrichtigt werden soll, wenn ein Ereignis eintrifft
- check_command = definiert den Abfragebefehl und die Eskalationsstufe
!toner!1!0.05 = eine Benachrichtigung an die contact_groups wird gesendet, wenn der Toner nur noch zu 5% voll ist.
Schritt 5
Nagios auffordern die neue Konfiguration und das neue Gerät zu berücksichtigen. Auf der Konsole den Befehl eingeben
sudo /etc/init.d/nagios3 reload
Schritt 6
Ergebnis im Webbrowser begutachten
Sollte die Fehlermeldung „Return code of 255 is out of bounds“ von Nagios ausgegeben werden, dann schaut euch die Lösung des Problems hier an ➡ What the heck is „Return code of 255 is out of bounds“?

ist absolut technik-begeistert und großer Fan von Linux und Open Source. Raspberry Pi Bastler der ersten Stunde und nach wie vor begeistert von dem kleinen Stück Hardware, auf dem er tolle Projekte umsetzt. Teilt hier seine Erfahrungen mit Nextcloud, Pi-hole, YubiKey, Synology und openmediavault und anderen spannenden IT-Themen. Nutzt Markdown und LaTeX zum Dokumentieren seiner Projekte und Gitea zum Versionieren. Sitzt vor einem 49“ Monitor, nutzt Windows und MacOS zum Arbeiten, Linux auf seinen Servern und virtuellen Maschinen und hört dabei Spotify und MP3s und Radio-Streams über seinen RadioPi.
Endlich mal ne super ausführliche Anleitung.Damit kann man wengistens arbeiten :-)Danke für deine Hilfe!
Vielen Dank für die Informationen über Drucker. Ich muss einige Materialien für mein Unternehmen drucken. Ich werde mich nach einem guten Druckerdienst umsehen, der mir dabei helfen kann.