Zabbix

Мониторинг 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 доступен только с разрешённых адресов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *