Всем привет.
Я давно использую 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 человек последний будет получать звонок сильно с опозданием).
* — используйте зависимости триггеров — иначе задолбает звонить.
* — только английский, русский привинтить можно, но я не хочу.
* — на написание топика ушло больше времени чем на всю систему, если что не заметил добро пожаловать в комментарии.