Перед тем как перейти к настройке Zabbix, необходимо установить и настроить консольный почтовый клиент. Выбор стоял между sendmail и ssmtp.
Sendmail - один из старейших агентов передачи почты (MTA — mail transfer agent). Распространяется бесплатно вместе с исходными кодами. Существуют версии программы для практически всех операционных систем и аппаратных платформ.
Ssmtp - простой агент передачи почты, который может заменить sendmail в простых задачах. Работает на Linux, FreeBSD и Windows.
Я выбрал ssmtp, т.к. он очень легок и прост в настройке. Его функций вполне достаточно для настройки уведомлений на Zabbix. В качестве ОС - Ubuntu 11.10
sudo apt-get install ssmtp
2)После того как завершится установка, необходимо отредактировать конфигурационный файл
vi /etc/ssmtp/ssmtp.conf
И если вы собираетесь использовать gmail для отправки оповещений, то необходимо вставить следующее:
root=your_mail@gmail.com #почтовый ящик zabbixa
root=your_mail@gmail.com #почтовый ящик zabbixa
mailhub=smtp.gmail.com:465
rewriteDomain=gmail.com
AuthUser=your_gmail_username # (без @gmail.com)
AuthPass=your_gmail_password
FromLineOverride=YES
UseTLS=YES
Я использую Ubuntu 11.10 и по умолчанию у меня не установлен sendmail, поэтому следующий шаг не обязателен. Но для тех, у кого этот пакет установлен, следует выполнить следующий пункт.
3)Необходимо убедиться что не установлен sendmail
3)Необходимо убедиться что не установлен sendmail
sudo service sendmail stop
sudo apt-get remove sendmail
И затем создадим символическую ссылку для ssmtp, чтобы заменить sendmail
sudo ln -s /usr/sbin/ssmtp /usr/sbin/sendmail
4)Собственно вся настройка закончена. Для отправки сообщения из терминала достаточно ввести следующую команду:
echo "email content" | mail -s "email subject" email_address_to_send_email@somedomain.com
Именно этот способ мы будем использовать при написании скрипта для отправки email оповещений из Zabbix.
Может появиться сообщение, что необходимо установить mailutils, установим его с помощью команды:
sudo apt-get install mailutils
Настройка email оповещений. Часть 2
Может появиться сообщение, что необходимо установить mailutils, установим его с помощью команды:
sudo apt-get install mailutils
Настройка email оповещений. Часть 2
Хотелось бы отметить, что пароль от почтового ящика хранится в виде обычно текста, поэтому для безопасности рекомендую завести отдельный почтовый ящик для zabbix, а не использовать ваш собственный.
есть альтернативная прога /usr/ports/net/sendemail (freebsd) sendEmail. Имеет большой набор функций, также может работать с гуглом + атач.
ОтветитьУдалитьпример
usr/local/bin/sendEmail -f "Hello " -t $to_user -u "$subject" -m "$body_mes" -a /tmp/"$file_att" -s smtp.gmail.com -xu ot_kogo@gmail.com -xp password -o tls=yes -o message-charset=utf-8
-o message-content-type=html reply-to="reply mail <$reply>"
Доброго времени суток.
ОтветитьУдалитьна шаге:
"И затем создадим символическую ссылку для ssmtp, чтобы заменить sendmail
sudo -ln -s /usr/sbin/ssmtp /usr/sbin/ssmtp"
у меня выдал:
ln: creating symbolic link `/usr/sbin/ssmtp` : File exists
а при отправке почты из командной строки выдаёт следующее:
send-mail: Cannot open mail.server:25
Можете подсказать что поделать? На что жалуется? Каких то прав не хватает? или что? Телнетом по указанному адресу на 25-й порт соединяется.
OS:Debian 6.0.4
прошу прощения, была ошибка в данной строчке. исправил.
ОтветитьУдалитьэтот шаг нужен только в том случае, если у вас был установлен sendmail. на сколько я помню, в дебиан по умолчанию его нет.
в чем ошибка трудно сказать. что в логах пишет?
я бы на вашем месте попробовал поставить виртуальную машину и там попробовать заново, на чистой ОС. если заработает, тогда уже разбираться в чем проблема у вас.
Не исправили. Такая же ошибка
Удалитьпробую на домашнем компе на виртуалке.
ОтветитьУдалитьz1srv:~# mail -s "test" myemail@mail.ru
и тишина... ни ошибок ни чего.
Простите, а где можно логи посмотреть по этому случаю? у ssmtp пишется где-нибудь лог?
мой конфиг
/etc/ssmtp/ssmtp.conf
root=emailaddress@mail.ru
mailhub=smtp.mail.ru
rewriteDomain=mail.ru
AuthUser=emailaddress@mail.ru
AuthPass=password
FromLineOverride=YES
UseTLS-YES
думаю пока из консоли не отправится тестовое сообщение - смысла нет заббикс мучить в этом плане. :( оборудование обнаруживается, мониторинг работает, заббикс радует. осталось завести оповещение хотябы по почте.
от себя лично спасибо вам, что возитесь с такими как я))
Yahoooo!! не знаю что наделал )) но смог отправить сообщение с консоли на почту. А по точнее - создал новый п/я на gmail. может mail.ru не работает так!?
ОтветитьУдалитьТеперь посмотрим как будет отправлять почту заббикс.
На данный момент ситуация такая:
ОтветитьУдалитьс консоли сообщения уходят на почту(ssmtp). могу выложить лог отправки.
В заббиксе (Debian5.0.9,Zabbix1.8.11) настроил "Обнаружение" по "ICMP" определённую "подсеть".
Настроил "Действие" которое используя "Обнаружение" делает следующие действия (при условии Discovery check = "Search:ICMP Ping" И Discovery status = "Up"):
1- добавляет обнаруженные хосты в группу Обнаруженные
2- отправляет сообщение на почту админу.
В итоге хосты обнаружены и добавлены в нужную группу. но сообщения на почте нет.((
поздравляю) приведенный мной конфиг именно для gmail. для остальных почтовых служб настройки могут отличаться.
ОтветитьУдалитьтеперь по поводу заббикса. с Обнаружением я не пробовал, но пробовал делать с тригером(как раз собирался показать пошагово в следующем уроке, но к сожалению пока нет времени). вам тоже советую попробовать сначала с тригером.
Сначала создаете шаблон ping/loss как описано в моем уроке.
Затем к этому шаблону добавляете тригер вида ping_loss_300s_mail:icmppingsec[].last(300,0)}=0
далее создаете действие, где в качестве события выбираете тригер, в качестве условия можете выбрать группу, в которой находится наблюдаемый узел и в качестве Операции действия указываете Отправить сообщение какому либо пользователю(не забудьте создать этого пользователя и убедитесь что он имеет права доступа к группе, в которой находится наблюдаемый узел)
затем пробуйте отключать наблюдаемый узел, чтобы срабатывал тригер, при этом должны отсылаться сообщения(посылается ли сообщение, можете посмотреть в Администрирование/Аудит, там сверху справа выбираете действия(по умолчанию там стоит Журналы) и выбираете получателя)
Доброго времени суток.
ОтветитьУдалитьСоздал шаблон, добавил тригер, создал действие. в заббиксе всё срабатывает. НО! Смотрю в Администрирование/Аудит и вижу, что в Статусе забикс говорит мне что
Type -Email
Status -In progress
Retries left -3 потом 2 и 1
Recipient(s) -"мой п/я"
Message - "описание проблемы"
Error - wrong answer on MAIL FROM [530 5.7.0 Must issue a STARTTLS command first. f5sm3996719bke.9 ]
Спустя некоторое время Status = not sent
Почту поборол) Но теперь почему-то не работает та тема с SNMP по мониторингу загрузки каналов. создал элементы а он мне говорит что не поддерживаются. Хотя на другом сервере(виртуальном) это работает.
ОтветитьУдалитьподскажите пожалуйста как сделать так чтоб служба заббикс стартовала при загрузке ((
ОтветитьУдалитьне получается
Этот комментарий был удален автором.
ОтветитьУдалитьв чем проблема была с почтой была?
ОтветитьУдалитьпо поводу автозагрузки, поставьте утилиту chkconfig (очень удобная утилита для таких задач), ну а дальше думаю разберетесь или гугл подскажет
Без боя ну ничего не даётся ))))
ОтветитьУдалитьНе получается с chkconfig. вот что выдаёт.
# chkconfig zabbix_server on
zabbix_server: unknown service
# chkconfig -a zabbix_server
zabbix_server: unknown service
хотя zabbix_server запущен
а когда набираете chkconfig --list
ОтветитьУдалитьтам zabbix отображается?
там всё намного проще оказалось. у заббикса есть свой файл для запуска. его нужно было скопировать куда надо и заработало. теперь можно и стартовать и стопить и рестартить службу. и грузится служба заббикс при старте системы.
ОтветитьУдалитьВсё хорошо. только вот другой вопрос возник. можно ли в заббикс теперь ещё и трафик считать? чтото типа netflow
ммм, ещё вопросец. При создании карты в заббиксе далее создании элемента карты (свитч, роутер и т.д.) в настройках последних есть пункт URL. Я вбил в это поле http://192.168.1.2 (как пример). Так вот теперь при просмотре карты я могу перейти по сконфигурированной ссылке и попаду на вэб-интерфейс выбранного устройства сети. При этом оно откроется в этом же окне. Как прописать URL чтоб открываемая страница открывалась в новом окне и не закрывала карту.
ОтветитьУдалитьА ещё не могу найти как сконфигурировать "поле URL" так чтоб открывалось окно с telnet'ом или ssh'ем c выбранным устройством, не каждое устройство настраивается через вэб-интерфейс. Думаю было бы удобно :)
Пока не нашёл решения
Добрый день. Спасибо за полезную статью, долго сражался с Zabbixом, пока на нее не наткнулся. Прошу прощения за нубское замечание/вопрос, но выполнение строки
ОтветитьУдалитьecho "email content" | mail -s "email subject" email_address_to_send_email@somedomain.com
в Ubuntu 10.04 порождает следующую ошибку:
The program 'mail' can be found in the following packages:
* heirloom-mailx
Если же использовать команду вида
ssmtp somemail@somedomain.some < testmessage
где testmessage - это текстовый файл с текстом письма, то все работает. Меня конечно устраивает и такой вид, но просто интересно, есть ли быстрый и очевидный ответ на вопрос, почему так происходит? Возможно, из за того, что в моей системе sendmail не было, и никаких ссылок я не создавал?
Странно, вчера пробовал на свежеустановленной убунте 12,04 server, там по умолчанию нет sendmail и все работало под данному скрипту... надо попробовать на 11,10)
ОтветитьУдалитьДоброго времени суток, господа ,а как собственно написать сам скрипт, оповещение в заббиксе срабатывает ,сообщение на почту приходит ,но в теме письма и в теле только то, что напишешь в строке,а как сделать чтобы там отображались данные триггера,то есть приходит алерт и видим какой триггер сработал. Вот мой скрипт:
ОтветитьУдалить#!/bin/sh
echo "email content" | mail -s "email subject" admin@pomidora.com
Соответственно на мыло приходит email content и email subject, но не данные с триггера.Спасибо за ответы!
Всё разобрался, кому интересно вот скрипт :
ОтветитьУдалить#!/bin/sh
to=$1
subject=$2
body=$3
cat <<EOF | mail -s "$subject" "$to"
$body
EOF
У меня другая проблема zabbix почему то не цепляет скрипт отправки письма. Т.е. когда срабатывает Action - уведомления не отправляются. Уже проверил все права на папки, конфиг. Скрипт для отправки положил в AlertScriptsPath=/etc/zabbix/alert.d
ОтветитьУдалитьНа саму директорию дал 777 - все равно не пашет.
Ощущение такое что где галочку не поставил. У кого было что похожее?
https://gist.github.com/superdaigo/3754055
ОтветитьУдалитьПоменяйте логин, пароль в скрипте, засуньте в /usr/lib/zabbix/alertscripts, добавьте полное имя скрипта (с расширением) в способах оповещений+к пользователям.
у меня проблема почта отправлялась с одного ящика без проблем.Сейчас в /etc/ssmtp/ssmtp.conf заменил на другой ящик gmail. При попытке отправить командой echo "email content" | mail -s "email subject" email_address_to_send_email@somedomain.com выдает ошибку...mail: cannot send message: Process exited with a non-zero status
ОтветитьУдалитьВ чем проблема может быть?
а до этого тоже gmail ящик был?
Удалитьвключи в параметрах гугл аккаунта "доступ к аккаунту" (раздел - непроверенные приложения)
УдалитьВНИМАНИЕ! народ, у кого пишет при отправке с консоли тестового письма что то про "...ненулевой статус" зайдите в настройки самого гугл-аккаунта в раздел "непроверенные приложения" и включите "доступ к аккаунту", это следовало бы написать в самой статье, а то я напр. целый день убил чтобы это понять (
ОтветитьУдалитьСтатью писал сто лет назад) Тогда такой проблемы не было. Будет время - обязательно обновлю урок по настройке почты.
УдалитьСпасибо за комментарий, кому-нибудь обязательно пригодится.
вам спасибо за супер статью, очень помогла!
УдалитьЗдравствуйте. Подскажите пожалуйста, как написать скрипт письма? Например"в систему зашел пользователь"
ОтветитьУдалитьЗдравствуйте у меня всё отлично работает, но ест такая проблема что в сообщение нету какой из компов дал сбой. Пожалуйста помогите решать эту проблему
ОтветитьУдалитьСпасиба!!!!
Не работает для google почты для домена. Мне вот это помогло : https://gist.github.com/superdaigo/3754055
ОтветитьУдалитьmail: cannot send message: Процесс завершился с ненулевым статусом
ОтветитьУдалитьПри тесте такое сообщение, где собака зарыта ?
У меня ssmtp с гуглопочтой работать не захотел даже после включения "доступ к аккаунту" в раздел "непроверенные приложения". POP, ICMP в настройках аккаунта тоже включил. Выдавал ошибку
ОтветитьУдалитьmail: cannot send message: Process exited with a non-zero status
Зато с корпоративной почтой все заработало сразу - только порт поменял на 25 и закоментил стоку с UseTLS=YES
Я перевел своих клиентов на webjack, делает все то же самое, минимальный тариф дешевле.
ОтветитьУдалитьМожно получить месяц бесплатно по промокоду semen21, напишите его в чат техподдержки на сайте