Найти тему
Merion Academy

Очень простой мониторинг транков в Asterisk

👋🏻 Привет! С вами снова Merion Academy - платформа доступного IT образования. Без лирики, приступим сразу к настройке. Подключитесь к консоли сервера - создаем файл:

[root@asterisk ~]# touch chektrank.sh

Далее открываем этот файл для редактирования через nano редактор:

[root@asterisk ~]# nano chektrank.sh

Вписываем скрипт в этот файл:

#!/bin/bash

# Задаем переменные

ALLTRUNKSMINIMUM=\"`/usr/sbin/asterisk -rx \"sip show registry\"`\" # Смотрим статусы транков

ALLTRUNKS=`echo \"$ALLTRUNKSMINIMUM\" |grep \"SIP registrations\" |awk \'{print $1}\'` # Смотрим сколько всего транков в системе

REGTRUNKS=`/usr/sbin/asterisk -rx \"sip show registry\" |grep Registered |wc -l` # Зарегистрированные транки (все транки со статусом Registered)

# Задаем условие

if [ \"$REGTRUNKS\" -lt \"$ALLTRUNKS\" ]; then # Если есть хоть один проблемный транк (В одном или более транке встретился статус отличный от Registered) то

sleep 5 # Ждем 5 секунд

echo `/usr/sbin/asterisk -rx \"sip reload\"` # Делаем sip reload

sleep 5 # Ждем 5 секунд

VAR=`/usr/sbin/asterisk -rx \"sip show registry\"` # Смотрим статусы транков после проверки

# Уведомляем на почту о том какие статусы стали после проверки

echo \"$VAR\" | mail -s \"Мониторинг транков\" your@mail.ru

# Если условие ложно (т.е. с транками все хорошо)

else

echo “ALL STATUS OK” # Просто выводим что со всеми статусами все хорошо и ничего не делаем больше

fi

Теперь зашедулим скрипт через планировщик заданий cron:

[root@asterisk ~]# crontab -e

Жмем «О» что бы написать или вставить текст. Пишем в открывшемся окне:

0 /120 * * * /bin/bash /root/chektrank.sh

Жмем esc и пишем :wq. Не забываем включить verbose в логах :)

--
До встречи на нашей образовательной платформе.
Merion Academy - платформа доступного IT образования.