===== Мониторинг Avaya IP-Phone в Icinga с помощью плагина Centreon Plugins ===== {{:avaya:pasted:20220201-123204.png }} В состав комплекта плагинов **Centreon Plugins** не входит выделенный плагин мониторинга IP-телефонов **Avaya**. Однако для этой цели мы можем использовать реализацию мониторинга стандартной **Linux**-системы с помощью периодических опросов по протоколу **SNMP** из плагина **os::linux::snmp::plugin**. Данная статья не описывает процессов интеграции плагина с системами мониторинга типа **Icinga**/**Nagios**, а лишь обозначает некоторые практические примеры использования режимов работы плагинов **Centreon Plugins** . ---- ==== Режимы работы плагина ==== Плагин мониторинга **os::linux::snmp::plugin** имеет несколько режимов работы, позволяющих отслеживать состояние разных показателей. С точки зрения мониторинга IP-телефонов Avaya нам будут интересны лишь некоторые из этих режимов:
# /usr/lib/nagios/plugins/centreon-plugins/centreon_plugins.pl \
--plugin=os::linux::snmp::plugin \
--list-mode

... Modes Available: ... cpu ... interfaces ... load memory ... uptime
---- ==== Режим cpu ==== Режим позволяет создать отдельную службу мониторинга, например "**Avaya CPU Usage**", статус которой будет меняться в зависимости от текущей нагрузки на процессор аппарата. Пример вызова данного режима:
# ./centreon_plugins.pl --plugin=os::linux::snmp::plugin --mode=cpu \
--warning-average='90' --warning-core='90' --critical-average='98' --critical-core='98' \
--hostname='MY-PHONE01' --snmp-community='myROcs' --snmp-version='2c' \
--use-new-perfdata

OK: 1 CPU(s) average usage is 14.00 % - CPU '0' usage : 14.00 % | 'cpu.utilization.percentage'=14.00%;0:90;0:98;0;100 '0#core.cpu.utilization.percentage'=14.00%;0:90;0:98;0;100
Опциями ''warning-average'' и ''critical-average'' задаём границы изменения общей нагрузки процессора (по всем ядрам) в процентах (более 90% - предупреждение, более 98% - критический статус). Опциями ''warning-core'' и ''critical-core'' задаём границы изменения нагрузки по каждому отдельному процессорному ядру в процентах (более 90% - предупреждение, более 98% - критический статус). {{ :icinga:centreon-plugins:pasted:20220201-133332.png }} ---- ==== Режим load ==== Режим позволяет создать отдельную службу мониторинга, например "**Avaya Load Average**", статус которой будет меняться в зависимости от средней загрузки операционной системы аппарата в целом. Пример вызова данного режима:
# ./centreon_plugins.pl --plugin=os::linux::snmp::plugin --mode=load \
--critical='12,,' \
--hostname='MY-PHONE01' --snmp-community='myROcs' --snmp-version='2c'

OK: Load average: 2.50, 2.49, 2.46 | 'load1'=2.50;;0:12;0; 'load5'=2.49;;;0; 'load15'=2.46;;;0;
Опциями ''warning'' и ''critical'' мы можем задать границы изменения загрузки системы в формате ''"load last 1m, load last 5m, load last 15m"''. То есть в нашем примере, задан только критический порог для показателя load за последнюю минуту со значением в 12 единиц (это пограничное значение было подсмотрено в документации Avaya). {{ :icinga:centreon-plugins:pasted:20220201-142415.png }} ---- ==== Режим memory ==== Режим позволяет создать отдельную службу мониторинга, например "**Avaya Memory Usage**", статус которой будет меняться в зависимости от текущего уровня утилизации оперативной памяти аппарата. Пример вызова данного режима:
# ./centreon_plugins.pl --plugin='os::linux::snmp::plugin' --mode='memory' \
--hostname='KOM-PHONE01' --snmp-version='2' --snmp-community='myROcs' \
--warning-usage-prct='90' --critical-usage-prct='98' \
--use-new-perfdata --filter-perfdata='(usage.bytes|usage.percentage)' 

OK: Ram Total: 115.25 MB Used (-buffers/cache): 51.04 MB (44.29%) Free: 64.21 MB (55.71%), Buffer: 0.00 B, Cached: 36.58 MB, Shared: 852.00 KB | 'memory.usage.bytes'=53518336B;;;0;120844288 'memory.usage.percentage'=44.29%;0:90;0:98;0;100
Опциями ''warning-usage-prct'' и ''critical-usage-prct'' задаём границы изменения статуса службы мониторинга в процентах (более 90% - предупреждение, более 98% - критический статус). Опция ''filter-perfdata'' позволяет отобрать только интересующие нас метрики производительности. Вы можете удалить из команды эту опцию, чтобы увидеть полный вывод плагина без фильтрации. {{ :icinga:centreon-plugins:pasted:20220201-145220.png }} ---- ==== Режим uptime ==== Режим позволяет создать отдельную службу мониторинга, например "** Avaya Uptime**", которая будет отслеживать время непрерывной работы аппарата между перезагрузками его встроенной ОС. Пример вызова данного режима:
#./centreon_plugins.pl --plugin='os::linux::snmp::plugin' --mode='uptime' \
--hostname='KOM-PHONE01' --snmp-version='2' --snmp-community='myROcs'

OK: System uptime is: 4d 15h 38m 3s | 'uptime'=401883s;;;0;
Сбор метрики производительности в секундах позволит нам построить наглядный исторический график, на котором будут заметны все перезагрузки аппарата. {{ :icinga:centreon-plugins:pasted:20220201-150509.png }} ---- ==== Режим interfaces ==== Режим позволяет создать отдельную службу мониторинга, например "**Avaya Interfaces**", статус которой будет меняться в зависимости от уровня утилизации и наличия ошибок на сетевых интерфейсах аппарата. Пример вызова данного режима:
# ./centreon_plugins.pl --plugin='os::linux::snmp::plugin' --mode=interfaces \
--hostname='KOM-PHONE01' --snmp-version='2' --snmp-community='myROcs' \
--add-traffic --units-traffic='%' \
--add-errors \
--warning-out-traffic='98' --warning-out-error='1' --warning-out-discard='50' \
--warning-in-traffic='98' --warning-in-error='1' --warning-in-discard='50' \
--use-new-perfdata --filter-uom='null' \
--filter-perfdata-adv='not (%(value) == 0)' \
--filter-perfdata='.*[.](traffic|error|discard|crc)[.].*' \
--critical-status='%{errdisable} ne "-"'

OK: All interfaces are ok | 'eth0#interface.traffic.in.bitspersecond'=448.82;;;0; 'eth0#interface.traffic.out.bitspersecond'=466.67;;;0; 'eth0.101#interface.traffic.in.bitspersecond'=375.38;;;0; 'eth0.101#interface.traffic.out.bitspersecond'=411.28;;;0;
Опция ''add-traffic'' добавляет в вывод плагина данные о производительности (perfdata) по трафику на сетевых интерфейсах, а опция ''units-traffic'' определяет то, что абсолютные показатели будут для удобства пересчитываться в проценты (в том числе и для сравнения с допустимыми пороговыми значениями). Опция ''add-errors'' включает режим вывода сведений об ошибках на интерфейсах. Опциями ''warning-in-*'' и ''warning-out-*'' задаём границы допустимых для нас значений в процентном соотношении. Например, в нашем случае опция ''warning-in-traffic'' служит для изменения статуса службы мониторинга на предупреждающий в случае, если утилизация входящего трафика превышает 98%. Необязательной опцией ''filter-uom'' можем отказаться от вывода единиц измерения (UOM) в выводимых данных perfdata. Опция ''filter-perfdata-adv'' позволяет нам задать расширенные условия для вывода данных perfdata. В нашем конкретном примере, из вывода плагина исключаются все значения, имеющие нулевой показатель (может быть полезно, если требуется сократить объём сохраняемых метрик). Опция ''filter-perfdata'' позволяет отбросить все не интересующие нас метрики perfdata с использованием регулярных выражений. Ну и, наконец, с помощью опции ''critical-status'' мы добавляем отлов интерфейсов, находящихся в состоянии ошибки. {{ :icinga:centreon-plugins:pasted:20220201-153022.png }} У телефонов **Avaya** серии **J100**, на которых проводилось тестирование и отладка работы плагина мониторинга **os::linux::snmp::plugin** было замечено то, что по протоколу SNMP может не возвращаться информация о пропускной способности сетевых интерфейсов. Это, в свою очередь,не позволяет контролировать процент текущей утилизации интерфейса и менять статус службы мониторинга в случае превышения допустимых пороговых значений. ---- Проверено на следующих конфигурациях: ^ Версия ОС ^ Версия Icinga ^ Версия Centreon Plugins ^ Модель Avaya IP-Phone ^ | Debian GNU/Linux 10.12 (Buster) | r2.13.2-1 | 20220113 | J139 / J189 | ---- {{:user:blogroot.png?50&nolink |}} Автор первичной редакции:\\ [[user:blogroot|Алексей Максимов]] \\ Время публикации: 01.02.2022 13:40 {{tag>Monitoring "Centreon Plugins" SNMP Icinga Nagios Plugin Avaya "IP Phone" Linux "Avaya J100" "Avaya J139" "Avaya J189"}} ~~DISCUSSION~~