Прежде чем начинать собирать статистику с Asterisk по протоколу snmp, нужно чтобы в нем был модуль res_snmp.so:
FreeBSD# asterisk -rvvvv
...
pbx*CLI> module show like snmp
Module Description Use Count
res_snmp.so SNMP [Sub]Agent for Asterisk 0
1 modules loaded
Как видим, все на месте. Для тех, у кого это нет этого модуля, нужно пересобрать порт с нужной опцией:
FreeBSD# make config
...
[*] SNMP SNMP protocol
...
Когда разобрались с наличием модуля, идем в конфиг /usr/local/etc/asterisk/res_snmp.conf и включаем SNMP:
[general]
; We run as a subagent per default -- to run as a full agent
; we must run as root (to be able to bind to port 161)
subagent = yes
; SNMP must be explicitly enabled to be active
enabled = yes
Как видим, Asterisk не может открыть 161 порт (на этом порту работает протокол snmp), если он запущен не от пользователя root.
Но не беда, по умолчанию asterisk работает как суб-агент snmp это значит, что он может отдавать данные в демон snmpd через сокет и ему не надо будет открывать 161 порт.
Готовим конфиг для snmp, вот мой конфиг /usr/local/etc/snmp/snmpd.conf:
syslocation "Univers Server Room"
syscontact admin@my_organization_dom
rocommunity public ТУТ_IP_сервера_zabbix
master agentx
agentXPerms 0660 0550 asterisk asterisk
agentXSocket /var/agentx/master
Если с запуском Asterisk 1.8 в jail не возникло проблем, то с запуском snmpd было 2 проблемы:
-
Не запускался демон
snmpd:FreeBSD# service snmpd restart snmpd not running? (check /var/run/net_snmpd.pid). Starting snmpd. /usr/local/etc/rc.d/snmpd: WARNING: failed to start snmpd
Сообщение об ошибке как-то не особо помогло в решении проблемы, но все-же рискнем заглянуть в логи:
FreeBSD# cat /var/log/snmpd.log init_kmem: kvm_openfiles failed: /dev/mem: No such file or directory Agent initialization failed
Решение оказалось простым
man snmpd:FreeBSD# man snmpd .... -r Do not require root access to run the daemon. Specifically, do not exit if files only accessible to root (such as /dev/kmem etc.) cannot be opened. .....Как сказано в мане, говорим демону
snmpdзапускаться с опцией-r, добавляем в/etc/rc.confстроку:#----------------------------- SNMP ---------------------------------------# snmpd_enable="YES" snmpd_flags="-r" #--------------------------------------------------------------------------#
И пробуем еще раз, теперь должно все запуститься:
FreeBSD# service snmpd restart Stopping snmpd. Waiting for PIDS: 27711. Starting snmpd. Error 2 (No such file or directory) could not get the assoclist
-
Опять какая-то ошибка, немного погуглив яндексом в рамблере нашел страничку с описанием бага #2311, там говорится про ядро FreeBSD и отсутствие в нем
SCTP(У меня в ядре как раз небыло этогоSCTP) и эту ошибку можно спокойно проигнорировать.Ну чтож, если говорят, что все должно работать, то проверяем:
FreeBSD# sockstat | grep snmpd root snmpd 27758 6 udp4 *:161 *:* root snmpd 27758 7 stream /var/agentx/master root snmpd 27758 8 tcp4 *:199 *:* root snmpd 27758 9 stream /var/agentx/master Как видим, `snmpd` слушает `161` порт и **UNIX**-сокет `/var/agentx/master`. Значит мы все сделали правильно, и теперь двигаемся дальше к настройке **zabbix**.
...... Тут должна быть часть о настройке Zabbix :) Когла-нибудь допишу. ......
Настройка сервера Zabbix Основную работу мы проделали. Теперь нам нужно подключить сервер к Zabbix и добавить туда шаблон. Сначала добавим шаблон, это делается в меню Настройки – Шаблон – Импорт шаблона. Шаблон можно скачать тут. Перед тем, как импортировать его, все значения PASSWORD нужно сменить на тот пароль, который вы указали в snmpd.conf. Теперь добавим наш сервер Настройка – Узлы сети – Создать узел сети. Заполняем поля, вводим название хоста, его ИП адрес, присоединяем шаблон, который мы импортировали. Все, теперь все должно работать. Шаблон умеет показывать количество каналов, версию , аптайм , ИД процесса, количество загруженных модулей. Так же в шаблоне есть встроенный график, отображающий количество каналов.
Ссылки по теме:
Comments
comments powered by Disqus