Оповещения из 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
    • 11,8k
    • 9
    Поделиться публикацией

    Комментарии 9

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

        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

        Самое читаемое