Скрипты для мониторинга Asterisk в Zabbix

Чтобы знать о появлении проблемы с Астериском по факту возникновения, а не от недовольных пользователей — будем использовать shell-скрипты и заводить получаемые значения в Zabbix. Установку zabbix-агента и добавление хостов в систему мониторинга в этой статье я описывать не буду.

Получение статуса DND внутреннего абонента в Asterisk (не путать с DND телефона). Возвращает «0», если DND включен и «1», если выключен. Для получения обратных значений — заменить NOT_INUSE на BUSY.

 
#!/bin/sh
# Requesting subscriber "101" status
result=`asterisk -rx "database show" | grep NOT_INUSE | grep 101 | wc -l`
# Output the result
echo $result

 

Проверяем регистрацию транка. Если транк зарегистрирован — получим «1», если нет — «0».

 
#!/bin/sh
# Requesting the status of trunk "4951234567"
result=`/usr/sbin/asterisk -rx "sip show registry" | grep Registered | grep 4951234567 | wc -l`
# Output the result
echo $result

 

Получаем количество зарегистрированных транков.

 
#!/bin/sh
# Requestiong amount of registered trunks
result=`/usr/sbin/asterisk -rx "sip show registry" | grep Registered | wc -l`
# Output the result
echo $result

 

Получаем количество активных разговоров в очереди колл-центра.

 
#!/bin/sh
# Requesting amount of active calls in queue
result=`asterisk -rx "queue show queue_callcenter" | grep "in call" | wc -l`
# Output the result
echo $result

 

Получаем количество вызовов в очереди, ожидающих ответа оператора.

 
#!/bin/sh
# Requesting amount of waiting calls in queue
result=`asterisk -rx "queue show queue_callcenter" | grep wait | wc -l`
# Output the result
echo $result

 

Получаем количество зарегистрированых пиров.

 
#!/bin/sh
# Requesting amount of registered peers
result=`asterisk -rx "sip show peers" | grep OK | wc -l`
# Output the result
echo $result

 

Считаем количество записей разговоров в папке.

 
#!/bin/sh
# Requesting amount of recorded calls in "mixmon" folder
result=`find /mixmon -type f | wc -l`
# Output the result
echo $result

 

Вычисляем размер папки, в которой хранятся записи разговоров.

 
#!/bin/sh
# Requesting folder size (bytes)
storsize=`du -s /mixmon/ | awk '{print $1}'`
# Converting bytes to megabytes
result=$(($storsize/1048576))
# Output the result
echo $result

Leave a Reply

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