Оповещения из Zabbix телефонным звонком

    Всем привет.
    Я давно использую zabbix и давно читаю хабр.

    Мысль научить заббикс разговаривать голосом посещала меня давно, и даже делал систему которая чудным голосом сообщала ночным саппортам что случилось.
    Сегодня я прочитал пост mxx про nagios`ом по телефону и меня срочно настигла мысль привинтить это к моей системе.

    Через два с половиной часа все заработало, а поскольку в комментах к оригинальному посту просили такое решение, то я его тут опубликую.



    Итак:
    Шаг №1 — Пререквизиты. Ставим festival и pjsip
    sudo aptitude install festival
    


    pjsip (см. пост mxx)

    Шаг №2 — Конфиг zabbix_server
    zabbix@zabbix-new:~$ grep AlertScript /etc/zabbix/zabbix_server.conf 
    ### Option: AlertScriptsPath
    AlertScriptsPath=/home/zabbix/bin/
    


    Шаг №3 — скрипты заббикса
    zabbix@zabbix-new:~$ cat /home/zabbix/bin/sipalarm 
    #!/bin/bash
    HOME=/home/zabbix
    SPOOL=$HOME/spool
    STAMP=`date +%s`
    
    add_to_spool () {
    	text2wave <(echo $2) > $SPOOL/$STAMP$1.wav
    }
    
    add_to_spool "$1" "$2"
    $HOME/bin/sipnd &
    


    zabbix@zabbix-new:~$ cat /home/zabbix/bin/sipnd    
    #!/bin/bash
    HOME=/home/zabbix
    SPOOL=$HOME/spool
    die () {
    	echo "$1"
    	exit 0
    }
    check_lock () { 
    	test -e $HOME/sipnd.lock && die "already running"
    }
    get_lock () {
    	echo $$ > $HOME/sipnd.lock
    }
    drop_lock () {
    	rm $HOME/sipnd.lock
    }
    
    check_lock; get_lock
    for i in $SPOOL/*.wav; do
    	TMP=${i##*+}
    	PHONE=+${TMP%%.wav}
    	echo "DEBUG: pjsua --config-file=/etc/pjsua.cfg --play-file=$i sip:$PHONE@sipnet.ru --auto-play"
    	( sleep 60 && echo q ) | pjsua --config-file=/etc/pjsua.cfg --play-file=$i sip:$PHONE@sipnet.ru --auto-play
    	wait
    	rm $i
    done
    drop_lock
    
    


    Шаг №4 — Настройка оповещений
    Сначала добавить новое средство оповещения


    Потом дать какому то пользователю адрес (в нашем случае номер мобильника)


    И в настройках Action прописать доставку оповещения этому пользователю свежеопределенным средством.


    Внимание:
    * — знак + в номере важен
    * — zabbix будет проговаривать только заголовок триггера (соответственно заголовок должен быть содержательным).
    * — в настройках pjsua выставить адекватный параметр duration (чтобы успеть 2-3 раза послушать сообщение).
    * — алармы собираются в пул и потом доставляются по одному (1-2 минуты на 1 аларм, при рассылке на 10 человек последний будет получать звонок сильно с опозданием).
    * — используйте зависимости триггеров — иначе задолбает звонить.
    * — только английский, русский привинтить можно, но я не хочу.
    * — на написание топика ушло больше времени чем на всю систему, если что не заметил добро пожаловать в комментарии.
    • +23
    • 12.7k
    • 9
    Share post

    Similar posts

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 9

      0
      Выложи пример wav-файла из своей системы, будет интересно.
      +1
      Спасибо большое, я знаю теперь чем озадачить админа сейчас :)
        –2
        А зачем? Зачем его учить звонить? Почему недостаточно оповещения по смс+почта+jabber?
          +3
          Затем, что можно пропустить смску, почту, или джаббер, но пропустить ряд настойчивых телефонных звонков — почти нереально, только если специально игнорировать. Поэтому такой вид оповещений имеет право на существование, но желательно для очень критичных событий.

        Only users with full accounts can post comments. Log in, please.