Всем привет.
Я давно использую zabbix и давно читаю хабр.
Мысль научить заббикс разговаривать голосом посещала меня давно, и даже делал систему которая чудным голосом сообщала ночным саппортам что случилось.
Сегодня я прочитал пост mxx про nagios`ом по телефону и меня срочно настигла мысль привинтить это к моей системе.
Через два с половиной часа все заработало, а поскольку в комментах к оригинальному посту просили такое решение, то я его тут опубликую.
Итак:
Шаг №1 — Пререквизиты. Ставим festival и pjsip
pjsip (см. пост mxx)
Шаг №2 — Конфиг zabbix_server
Шаг №3 — скрипты заббикса
Шаг №4 — Настройка оповещений
Сначала добавить новое средство оповещения

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

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

Внимание:
* — знак + в номере важен
* — zabbix будет проговаривать только заголовок триггера (соответственно заголовок должен быть содержательным).
* — в настройках pjsua выставить адекватный параметр duration (чтобы успеть 2-3 раза послушать сообщение).
* — алармы собираются в пул и потом доставляются по одному (1-2 минуты на 1 аларм, при рассылке на 10 человек последний будет получать звонок сильно с опозданием).
* — используйте зависимости триггеров — иначе задолбает звонить.
* — только английский, русский привинтить можно, но я не хочу.
* — на написание топика ушло больше времени чем на всю систему, если что не заметил добро пожаловать в комментарии.
Я давно использую 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 человек последний будет получать звонок сильно с опозданием).
* — используйте зависимости триггеров — иначе задолбает звонить.
* — только английский, русский привинтить можно, но я не хочу.
* — на написание топика ушло больше времени чем на всю систему, если что не заметил добро пожаловать в комментарии.
