Настройка мониторинга Asterisk по iax2-транкам

Jul 02, 2019 13:54

Шаблон, конфиг и скрипт на github/Krushon.

0. Импортируем шаблон из github

1. Создаём скрипт в папке /etc/zabbix/scripts и даём права за запуск:

# mkdir /etc/zabbix/scripts
# nano /etc/zabbix/scripts/asterisk.trunk-with-name.sh

#!/bin/bash
# Получаем количество всех транков в системе
total=`sudo asterisk -rx 'iax2 show peers' | sed -n '/iax2/p' | awk '{print $1}'`
# Получаем число активных транков
active=`sudo asterisk -rx 'iax2 show peers' | sed -n '/OK/p' | wc -l`
# Получаем имена транков с проблемами
offline=`sudo asterisk -rx 'iax2 show peers' | sed -n '/UNREACHABLE/p' | awk '{print $1}'`
# Сравниваем общее число с числом активных транков и выводим сообщение об их состоянии
if [ $active -lt $total ]
then
echo Trunks offline $offline
else
echo All trunks are online
fi

# chmod +x /etc/zabbix/scripts/asterisk.trunk-with-name.sh

2. Создаём конфиг в папке /etc/zabbix/zabbix_agent.d/:

# nano /etc/zabbix/zabbix_agent.d/asterisk.conf

# Статус службы fail2ban
UserParameter=asterisk.fail2ban_status,ps cax | grep fail2ban | wc -l
# Количество цепочек fail2ban в iptables
UserParameter=asterisk.fail2ban_chain,iptables -nL | grep Chain | grep -E 'f2b|fail2ban' | wc -l
# Время работы службы asterisk
UserParameter=asterisk.uptime,asterisk -rx "core show uptime seconds" | grep --text -i "System uptime:" | awk '{print $3}'
# Количество активных разговоров
UserParameter=asterisk.active_calls,asterisk -rvvvvvx 'core show channels'| grep --text -i 'active call'| cut -c1
# Статус транков
UserParameter=asterisk.trunk,/etc/zabbix/scripts/asterisk.trunk-with-name.sh
# Статус службы asterisk
UserParameter=asterisk.asterisk_status,ps cax | grep asterisk | wc -l

3. В файле /etc/zabbix/zabbix_agentd.conf добавляем AllowRoot=1

4. Перезапускаем агента

# systemctl restart zabbix-agent

zabbix-agent, инструкция, linux, iax2, asterisk, zabbix

Previous post Next post
Up