![]() |
Zabbix. Отправка по email
Всем доброго дня.
Настроил Zabbix 2.0 на FreeBSD 9.2, все работает нормально, за исключением того, что не удается научить Zabbix слать уведомления. Что делалось: 1) В zabbix_server.conf дописывалась строчка AlertScriptsPath=/usr/local/etc/zabbix2/zabbix/alertscripts/ 2) В папке по указанному выше пути создавался файл mail.sh следующего содержания: !#/bin/sh to=$1 subject=$2 body=$3 cat << EOF | mail -s "$subject" "$to" $body EOF В скриптах разбираюсь плохо, скрипт не мой, однако другого не дано - везде пишут, что рабочий. 3) chmod 755 mail.sh chmod +x mail.sh 4) Установил ssmtp из портов, настроил revaliases и ssmtp.conf - проверил. Все прекрасно работает, вручную письма отправляются. Единственная проблема - пробовал запускать sudo -l zabbix mail - он о нем не знает. Пришлось писать полный путь /usr/local/sbin/ssmtp вместо mail в скрипте. 5) В самой панели Zabbix создал новый Media Type - Script - указал mail.sh Сделал Action - при сбое отсылать уведомление на почту. Так вот, когда срабатывает триггер - уведомление не отсылается. Action горит красным - т.е. не срабатывает и пишет no sent. В логах /tmp/zabbix_server.log ничего нет по этому поводу, также как и в /var/log/maillog. Т.е. ошибок никаких не пишет. Грешу на скрипт, если кто сталкивался с настройкой - буду признателен за помощь. Может кто знает, как настроить без скрипта, просто по email также. Для этого требуется smtp сервер без авторизации, я таковых не знаю. Поэтому пошел путем создания скрипта через ssmtp и почту яндекса (на гугле получил бан, т.к. "подозрительная активность" и невозможно связаться с ТП гугла). Инструкцию на оф сайте Zabbix естественно всю перечитал уже. |
Проблема была в том, что по умолчанию стояла оболочка sh.
Неделю пытался настроить, и только сейчас понял, как. Необходимо доустановить bash, т.к. sh не даст объявить переменные to=$1 subject=$2 body=$3 Далее необходимо назначить пользователю zasbbix оболочку bash через команду pw usermod zabbix -s /usr/local/bin/bash, либо вручную поправив /etc/passwd Также, для того, чтобы скрипт работал, необходимо писать не EOF, а точку. После ввода точки происходит отправка письма. В mailer.conf естественно все должно ссылаться на /usr/local/sbin/ssmtp, а не на sendmail. В rc.local прописать строчку sendmail_enable=NONE Далее редактируем скрипт: #!/usr/local/bin/bash to=$1 subject=$2 body=$3 echo $body << . | /usr/bin/mail -s $subject $to . После описанных выше манипуляций все заработало, проблема решена. |
Время: 01:01. |
Время: 01:01.
© OSzone.net 2001-