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“?