среда, 15 июля 2015 г.

zabbix: мониторим freeswitch

Рабочая версия 2.4, под centos 6 x86_64
Считаем, что у нас уже есть сервер, поднимать будем агентов. Тут речь о настройке.
быстрая установка
идём на http://repo.zabbix.com/, выбираем нужный релиз, в моём случае zabbix-release-2.4-1.el6.noarch.rpm, ставим через rpm -Uvh, потом yum -y install zabbix-agent

Введение-предупреждение: selinux у меня выключен, поэтому если требуется его работа - или настраиваем в режиме permissive, выставляя потом права и создавая правила, или при любой проблеме первым делом проверяем, не он ли мешает работе.

2 метода получения данных:
  1. SNMP
  2. скриптами для агента

SNMP

Суть данного метода в том, что заббикс сервер сам подключается к фрисвичу и получает интересующие его данные. Но если данных не хватает, то "упс", нужен агент.

Ставим freeswitch-event-snmp, net-snmp, net-snmp-utils
Настраиваем snmp, заглядывая в доку http://dragonflybsd.blogspot.com/2015/07/snmp-agentx.html, разрешения можно выставить так
agentXPerms 0755 0755 freeswitch daemon

Теперь подключаемся к фрисвичу и запускаем модуль
# fs_cli
> load mod_snmp
Если посыпались строки (более одной)
[WARNING] mod_snmp.c:70 Warning: Failed to connect to the agentx master agent ([NIL]):
значит что-то не запустилось. Для начала - проверяем наличие agentx каталога и прав
# ls -al /var/agentx
Нет? смотрим доку выше, запускаем в отладочном режиме...

Есть? Пробуем "быстрый хак":
# chmod -R 777 /var/agentx
Если в течении 20 секунд в консоли появилось 
[INFO] mod_snmp.c:70 NET-SNMP version 5.5 AgentX subagent connected
то разбираемся с владельцами и правами. Выставить 1 раз на каталог не получится - при остановке сервиса каталог будет удалён, это надо в конфигах snmp настроить. 
Теперь желательно настроить конфиг нормально, с правильными ограничениями.

Проверка.
snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.27880.1.2
Должно выдать ряд параметров, и если что-то есть -- можно переходить ко второй части - настройка заббикса.

(залью шаблон - вставлю ссылку)

Скрипты

Параметры, которые имеет смысл получать:
status
uptime
show calls count
show channels count


Аптайм есть в статусе, но он в человекочитаемом виде, а нам надо секунды, поэтому аптайм лучше. Только учитывать, что множитель у аптайма 0.01.

Для статуса лучше сделать прокси как для камаилио, но можно и дёргать каждый раз fs_cli, например сессий с момента старта
# fs_cli -x 'status' |grep "session(s) since startup" | awk '{print $1}'
Теперь можно загнать эту строку в UserParameter и обрабатывать.

Можно взять готовые шаблоны, например самый простой
https://gist.github.com/crashdump/7790123
всего 5 айтемов, но для старта хватит.

Комментариев нет:

Отправить комментарий