Zum Inhalt

Abfragen von Toner- und Papierfüllstände bei Druckern

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

  • Tonerstand
  • Papierstand
  • Druckvolumen
  • Hardwarestatus
  • etc.

abgefragt werden.

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)

Toner- und Papierfüllstände abfragen

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

Toner- und Papierfüllstände abfragen

Gib mir gerne einen Kaffee ☕ aus ❗️

Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕️ ausgeben.

Donation via PayPalDonation via LiberaPay

Donation via Bitcoin
Bitcoin Address: bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj