Шаблон, конфиг и скрипт на
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