Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по FreeBSD (http://forum.oszone.net/forumdisplay.php?f=10)
-   -   [решено] Zabbix. Отправка по email (http://forum.oszone.net/showthread.php?t=271438)

rip88 06-11-2013 09:56 2248350

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 естественно всю перечитал уже.

rip88 07-11-2013 14:52 2249268

Проблема была в том, что по умолчанию стояла оболочка 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
.

После описанных выше манипуляций все заработало, проблема решена.


Время: 08:54.

Время: 08:54.
© OSzone.net 2001-