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

Общая
В каждом офисе всегда есть достаточное количество копировально-множительной техники, в которой постоянно кончается тонер, застревает бумага и происходят прочие, доставляющие неприятности пользователям происшествия.
Чтобы быстро реагировать на все возникающие проблемы с копировально-множительной техникой и быть всегда в курсе всех проблем поможет плагин 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 тут.
- Просмотров: 19978