User Tools

Site Tools


zabbix_-_мониторинг_asterisk

This is an old revision of the document!


Zabbix - мониторинг Asterisk

Реклама

  • Привет Всем любителям Asterisk и/или Zabbix и тем, кто только собирается с ними познакомиться! Предлагаем Вашему вниманию очередной “воспроизводимый в домашних условиях” вебинар. Давайте посмотрим, какие интерфейсы предлагает Asterisk для мониторинга и как подключить их к Zabbix. Так же, будет бонус для любителей Prometheus

Техническое задание

  • Развернуть Zabbix и Asterisk в сети предприятия
  • Настроить интерфейсы Asterisk для подключения Zabbix
  • Настроить интерфейсы Asterisk для подключения Prometheus

Запись вебинара

  • Тэги: Zabbix, Prometheus, Asterisk

Методическая подготовка

  • Середина курса Астериск1

Шаг 1. Что у нас есть для начала

  • Импортируем VM из образа Ubuntu24, подключаем мостом к локальной сети, рекомендуется 4GB RAM, запускаем, выясняем IP и подключаемся через SSH

Шаг 2. Разворачиваем Asterisk

Шаг 3. Разворачиваем Zabbix

Шаг 4. Мониторинг Asterisk через Zabbix Agent UserParameter

Решение прислал Кузьмин Алексей Михайлович

# cat /etc/hosts
127.0.0.1       localhost

127.0.1.1       ubuntu
  • Устанавливаем Zabbix Agent (из репозитория вендора, в базовом нет)
# docker inspect zabbix-docker-zabbix-server-1

# cat /etc/zabbix/zabbix_agentd.d/my.conf
Server=172.16.M.N
UserParameter=asterisk.activecalls,sudo /usr/sbin/asterisk -x "core show channels" | grep "active call" | awk '{print $1}'
UserParameter=asterisk.processedcalls,sudo /usr/sbin/asterisk -x "core show channels" | grep "calls processed" | awk '{print $1}'

UserParameter=asterisk.lines[*],sudo /usr/sbin/asterisk -x "core show channels" | grep '^$1' | wc -l
UserParameter=asterisk.chansip.discovery,sudo /usr/local/bin/asterisk.chansip.discovery.py
# zabbix_agentd -t asterisk.activecalls

# zabbix_agentd -t asterisk.lines[SIP/401]

# zabbix_agentd -p | grep discovery
# zabbix_agentd -t asterisk.chansip.discovery
Item prototype
...
  Name: asterisk lines {#CHANNAME}
...
  Key: asterisk.lines[{#CHANNAME}]
...

Шаг 5. Мониторинг Asterisk через шаблон "Asterisk by HTTP"

IP=192.168.M.N

wget "http://$IP:8088/rawman?action=login&username=admin&secret=admin" --save-cookies cookies.txt -q -O -
wget "http://$IP:8088/rawman?action=ping" --load-cookies cookies.txt -q -O -
wget "http://$IP:8088/rawman?action=logoff" --load-cookies cookies.txt -q -O -
  • В Zabbix добавляем узел Asterisk с IP 192.168.M.N, назначаем шаблон “Asterisk by HTTP”, устанавливаем значение макросов, проверяем значения в “Latest data”
{$AMI.HOST}: 192.168.M.N
{$AMI.URL}: http://192.168.M.N:8088/rawman
{$AMI.USERNAME}: admin
{$AMI.SECRET}: admin
server# ip route add blackhole 212.53.40.40

Шаг 6. Мониторинг Asterisk через Prometheus

# cat /etc/asterisk/prometheus.conf
...
enabled = yes
...
# curl http://$IP:8088/metrics
...
asterisk_calls_count
...
asterisk_endpoints_channels_count
...
# cat /etc/prometheus/prometheus.yml
...
  - job_name: asterisk
    metrics_path: /metrics
    static_configs:
      - targets: ['192.168.M.N:8088']
zabbix_-_мониторинг_asterisk.1752056404.txt.gz · Last modified: 2025/07/09 13:20 by val