1. Установка и настройка SNMP-агента
Устанавливаем SNMP-агента:
# apt-get install snmpdНужно заглянуть в файл /etc/default/snmpd и убедиться, что запуск SNMP-агента разрешён:
SNMPDRUN=yesРедактируем файл конфигурации SNMP-агента /etc/snmp/snmpd.conf, приведя к следующему виду:
agentAddress udp:127.0.0.1:161 view asterisk included .1.3.6.1.2.1.1.1 view asterisk included .1.3.6.1.2.1.1.2 view asterisk included .1.3.6.1.2.1.1.4 view asterisk included .1.3.6.1.2.1.1.5 view asterisk included .1.3.6.1.2.1.1.6 view asterisk included .1.3.6.1.4.1.22736 rocommunity public 127.0.0.1 -V asterisk rwcommunity private 127.0.0.1 -V asterisk createUser zabbix SHA auth_password AES encryption_password rouser zabbix priv -V asterisk sysLocation Ufa sysContact Vladimir Stupin <vladimir@stupin.su> sysObjectID .1.3.6.1.4.1.22736.1 master agentx agentXSocket /var/agentx/master agentXPerms 0660 0775 nobody asteriskУказанный выше файл конфигурации является лишь примером. Реально вы можете захотеть поменять часть настроек. Например:
- agentAddress - прослушиваемый SNMP-агентом IP-адрес,
- view asterisk included - в этом представлении я ограничил доступ к OID'ам. Доступ разрешён только к OID'ам, содержащим информацию об узле и к дереву OID'ов с состоянием Asterisk,
- rocommunity - строка сообщества для чтения данных для SNMP версий 1 и 2c,
- rwcommunity - строка сообщества для записи данных для SNMP версий 1 и 2c,
- createUser - строка описывает одного пользователя SNMP версии 3 - его имя, пароли и алгоритмы аутентификации и шифрования,
- rouser - описывает права доступа пользователя SNMP версии 3,
- sysLocation - строка местонахождения оборудования. Бывает полезно в больших компаниях, когда имеется много оборудования и сотрудников, или оборудование расположено в необычном месте: за фальшь-потолком или на радиомачте,
- sysContact - строка с контактными данными администратора оборудования. Бывает полезно в больших компаниях, чтобы найти сотрудника, ответственного за оборудование,
- sysObjectID - идентификатор типа оборудования. Полезно, например, для автоматического обнаружения оборудования и автоматической постановки на контроль с шаблоном, соответствующим этому OID'у,
- master, agentXSocket, agentXPerms задают настройки Unix-сокета SNMP-агента, к которому будут подключаться субагенты.
# apt-get install pwgenСгенерировать 16-символьный пароль можно следующим образом:
$ pwgen 16Чтобы Asterisk, запущенный от пользователя asterisk, имел доступ к каталогу с Unix-сокету SNMP-агента, меняем права доступа к каталогу /var/agentx:
# chmod o+rx /var/agentxПерезапускаем SNMP-агента:
# systemctl restart snmpd.service2. Включение SNMP-модуля в Asterisk
Открываем файл /etc/asterisk/res_snmp.conf и приводим его к следующему виду:
[general] subagent = yes enabled = yesПосле чего просим Asterisk выгрузить модуль SNMP и загрузить его снова:
# asterisk -rx 'module unload res_snmp.so' # asterisk -rx 'module load res_snmp.so'3. Использование MIB-файлов
Посмотреть OID'ы в виде дерева:
$ snmptranslate -M /var/lib/mibs/:/var/lib/mibs/ietf/:/var/lib/mibs/iana/ -m DIGIUM-MIB:ASTERISK-MIB -Tp -Td -Ln 1.3.6.1.4.1.22736 | lessПосмотреть значения OID'ов с их символьными именами по SNMP второй версии можно следующим образом:
$ snmpwalk -v 2c -c public 127.0.0.1 .1.3.6.1.4.1.22736.1 | lessДля SNMP третьей версии то же самое делается так:
$ snmpwalk -v 3 -u zabbix -n '' -l authPriv -a SHA -x AES -A auth_password -X encryption_password 127.0.0.1 .1.3.6.1.2.4.1.22736.1 | less4. Шаблоны для Zabbix
В качестве основы для шаблона я воспользовался официальными MIB-файлами:
Я подготовил два шаблона для контроля интересующих меня параметров с помощью Zabbix:
- Template_App_Asterisk_SNMPv2.xml - шаблон, использующий протокол SNMP версии 2c,
- Template_App_Asterisk_SNMPv3.xml - шаблон, использующий протокол SNMP версии 3.
На снимке экрана ниже показаны имеющиеся в шаблоне элементы данных:
На этом снимке показаны результаты опроса Asterisk по этому шаблону:
К сожалению, SNMP-модуль Asterisk не позволяет узнать состояние регистраций абонентов. Если бы состояние регистраций можно было бы контролировать, я обязательно добавил бы в шаблон низкоуровневое обнаружение регистраций и контроль их состояний. Это позволило бы своевременно обнаруживать проблемы со шлюзами абонентов.
Один из вариантов какого бы то ни было решения этой проблемы может быть следующим. Если VoIP-шлюзы находятся в находятся в отдельной сети, где больше нет никакого оборудования, можно воспользоваться функциями обнаружения Zabbix и автоматически ставить обнаруженные IP-адреса хотя бы на контроль доступности по ICMP.
2 комментария:
Спасибо за шаблоны, комрад! Те, что находил до твоих - не хотели грузиться в заббикс((
Надо было смотреть, для какой версии Zabbix шаблоны.
Отправить комментарий