Мониторинг Asterisk в Zabbix: практическая настройка AMI и шаблона
Ниже — практический вариант подключения Asterisk к Zabbix через отдельного AMI-пользователя и официальный шаблон Asterisk by HTTP. Перед изменениями сохраните конфиги и не используйте административную AMI-учётку.
1. Проверяем версии и состояние Asterisk
asterisk -V
asterisk -rx 'core show version'
asterisk -rx 'module show like manager'
asterisk -rx 'module show like http'
systemctl status asterisk --no-pager
ss -lntp | grep -E ':(5038|8088)\b'2. Сохраняем конфигурацию
mkdir -p /root/asterisk-monitoring-backup
cp -a /etc/asterisk/manager.conf /root/asterisk-monitoring-backup/
cp -a /etc/asterisk/http.conf /root/asterisk-monitoring-backup/3. Создаём отдельного AMI-пользователя
В /etc/asterisk/manager.conf включите AMI и добавьте пользователя, ограниченного адресом Zabbix server или proxy:
[general]
enabled = yes
port = 5038
bindaddr = 127.0.0.1
[zabbix]
secret = CHANGE_ME_LONG_RANDOM_SECRET
deny = 0.0.0.0/0.0.0.0
permit = 127.0.0.1/255.255.255.255
read = system,call,log,verbose,command,agent,user,config,dtmf,reporting,cdr,dialplan
write = noneЕсли Zabbix обращается напрямую по сети, замените bindaddr и permit на реальный адрес, но не открывайте AMI всему интернету.
4. Включаем HTTP server Asterisk
В /etc/asterisk/http.conf:
[general]
enabled=yes
bindaddr=127.0.0.1
bindport=8088
prefix=asteriskПри обращении с удалённого Zabbix proxy используйте адрес management-интерфейса и firewall allowlist.
5. Применяем конфигурацию
asterisk -rx 'manager reload'
asterisk -rx 'http reload'
asterisk -rx 'manager show users'
asterisk -rx 'http show status'
ss -lntp | grep -E ':(5038|8088)\b'6. Проверяем AMI и rawman локально
curl -sS -u 'zabbix:CHANGE_ME_LONG_RANDOM_SECRET' \
'http://127.0.0.1:8088/asterisk/rawman?action=CoreStatus'В ответе должны быть Response: Success и данные CoreStatus. Ошибки 401/403 означают проблему с credentials или ACL; connection refused — HTTP server не слушает нужный адрес.
7. Подключаем шаблон в Zabbix
- создайте или откройте host Asterisk;
- привяжите шаблон Asterisk by HTTP;
- укажите macros URL, AMI user и secret согласно именам macros в вашей версии шаблона;
- secret храните как Secret text;
- проверьте Latest data и Unsupported items.
8. Быстрая проверка самой АТС
asterisk -rx 'core show uptime'
asterisk -rx 'core show channels count'
asterisk -rx 'pjsip show endpoints'
asterisk -rx 'pjsip show contacts'
asterisk -rx 'queue show'Эти команды помогают сверить данные Zabbix с фактическим состоянием Asterisk.
9. Диагностика
journalctl -u asterisk --since '15 min ago' --no-pager
asterisk -rx 'manager show user zabbix'
asterisk -rx 'http show status'
curl -v -u 'zabbix:SECRET' 'http://127.0.0.1:8088/asterisk/rawman?action=Ping'Если Zabbix item Unsupported, сначала вручную повторите его HTTP-запрос с Zabbix server/proxy и проверьте маршрутизацию, firewall и URL prefix.
10. Rollback
cp -a /root/asterisk-monitoring-backup/manager.conf /etc/asterisk/manager.conf
cp -a /root/asterisk-monitoring-backup/http.conf /etc/asterisk/http.conf
asterisk -rx 'manager reload'
asterisk -rx 'http reload'Критерий успеха: rawman возвращает Success, в Zabbix появляются актуальные uptime/channels/endpoints, items не находятся в Unsupported, а AMI доступен только с разрешённых адресов.