Прежде чем начинать собирать статистику с 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