Добавляем принтеры в Icinga2

Main

Оценка: 83.54% - 13 Голосов

Общая

В каждом офисе всегда есть достаточное количество копировально-множительной техники, в которой постоянно кончается тонер, застревает бумага и происходят прочие, доставляющие неприятности пользователям происшествия.

 Чтобы быстро реагировать на все возникающие проблемы с копировально-множительной техникой и быть всегда в курсе всех проблем поможет плагин check_snmp, входящий в пакет nagios plugins, установка которого описана тут.

Если у вас не описана работа данного плагина, то необходимо начать с этого.

 

Описание работы плагина check_snmp

В конфигурационный файл commands.conf добавляем следующие строки:


object CheckCommand "check_snmp" {
        import "plugin-check-command"
        command = [ PluginDir + "/check_snmp" ]
        arguments = {
                "-H" = "$snmp_address$"
                "-o" = "$snmp_oid$"
                "-C" = "$snmp_community$"
                "-c" = "$snmp_crit$"
                "-w" = "$snmp_warn$"
                "-s" = "$snmp_string$"
                "-r" = "$snmp_ereg$"
                "-R" = "$snmp_eregi$"
                "-l" = "$snmp_label$"
                "-u" = "$snmp_units$"
                "-t" = "$snmp_timeout$"
                "-p" = "$snmp_port$"
                "-P" = "$snmp_version$"
                "-m" = "$snmp_miblist$"
                "-O" = "$snmp_oidlabel$"
                "--rate-multiplier" = "$snmp_rate_multiplier$"
   }
        vars.snmp_address = "$address$"
}

 

Описываем сервис проверки принтера на наличие тонера

Практически любую о состоянии принтера можно вытащить зная ее OID.

В данном случае мы будем проверять наличие черного тонера в МФУ. OID черного тонера .1.3.6.1.2.1.43.11.1.1.9.1.1 и он хранит значение состояния картриджа в процентах, что упрощает добавление устройства в мониторинг.

В конфигурационный файл services.conf добавляем следующие строки:


apply Service "Black Toner" {
  display_name = "Черный тонер"
  import "prn_toner"
  vars.snmp_community = "public"
  vars.snmp_oid = ".1.3.6.1.2.1.43.11.1.1.9.1.1"
  vars.snmp_label = "Black Toner"
  vars.snmp_units = "%"
  vars.snmp_warn = "5:"
  vars.snmp_crit = "1:"
  vars.service_type = "toner"
  assign where host.vars.type == "prn"
}

 

Описываем шаблон сервиса проверки тонера

В конфигурационный файл templates.conf добавляем следующие строки:


template Service "prn_toner" {
  import "generic-service"
  check_command = "check_snmp"
  check_interval = 10m
  retry_interval = 1m
 }

Ставим устройство на мониторинг

В /etc/icinga2/conf.d/ создаем файл printers.conf и добавляем в него следующие строки


object Host "HP01" {
   address = "10.100.0.5"
   display_name = "HP LaserJet M1536dnf MFP"
   check_command = "hostalive"
   vars.type = "prn"
   vars.notification["mail"] = {
   groups = [ "icingaadmins" ]
 }
}

Проверяем конфигурацию и перезапускаем Icinga2.

 

Но не все копировально-множительные устройства хранят значение в процентах.

Некоторые фирмы, например Kyocera, рассчитывают остаток тонера по двум значениям OID - первое значение отображает количество страниц на которое рассчитан картридж, а второе значение - количество отпечатанных страниц данным картриджем. Это не самое удобное представление остатка тонера.

Чаще всего номера этих OID являются  .1.3.6.1.2.1.43.11.1.1.8.1.4 и .1.3.6.1.2.1.43.11.1.1.9.1.4

Мы можем написать небольшой скрипт для более понятного преставления остатка тонера и оно будет в процентах.

Работу с данным скриптом необходимо будет описать в конфигурационных файлах Icinga2

Создадим файл check_toner.sh в /usr/lib/nagios/plugins и добавим в него следующие строки:


#!/bin/bash
VAR1=`/usr/lib/nagios/plugins/./check_snmp -H IP-АДРЕС_ПРИНТЕРА -o ".1.3.6.1.2.1.43.11.1.1.8.1.4"`
VAR2=`/usr/lib/nagios/plugins/./check_snmp -H IP-АДРЕС_ПРИНТЕРА -o ".1.3.6.1.2.1.43.11.1.1.9.1.4"`
VAR3=`echo $VAR1 | awk '{print $4}'`
VAR4=`echo $VAR2 | awk '{print $4}'`
div=$((100 * $VAR4 / $VAR3))
if [ "$div" -ge 10 ]
then
echo "SNMP OK - Black Toner $div | Black Toner=$div"
exit 0
fi
if [ "$div" -le 1 ]
then
echo "SNMP CRITICAL - Black Toner *$div* | Black Toner=$div"
exit 2
fi
if [ "$div" -lt 10 ] && [ "$div" -gt 5 ]
then
echo "SNMP WARNING - Black Toner *$div* | Black Toner=$div"
exit 1
fi

 

Продолжение статей о Icinga2 тут. 

 

 

Добавить комментарий


Logo