Исходные данные
CentOS 6.4 minimal
Zabbix 2.0.6
mail.domain.local - адрес почтового сервера.
Установка mutt
yum install mutt
Настройка mutt
vi /home/zabbix/.muttrc
<Esc> :x
chown zabbix /home/zabbix/.muttrc
chgrp zabbix /home/zabbix/.muttrc
Создаем скрипт для отправки почты
vi /usr/local/share/zabbix/alertscripts/mutt_send.sh
<Esc> :x
chgrp zabbix /usr/local/share/zabbix/alertscripts/mutt_send.sh
chown zabbix /usr/local/share/zabbix/alertscripts/mutt_send.sh
chmod 755 /usr/local/share/zabbix/alertscripts/mutt_send.sh
Создаем новый тип медиа (Administration - Media Type)
Добавляем пользователю новый тип
Заходим в Configuration - Action (Event Source - Trigger) и создаем новое действие или правим существующее
В текст сообщения я внес:
Далее можно спровоцировать какой-либо триггер, и проверить оповещиния:
Не забываем про SElinux.
CentOS 6.4 minimal
Zabbix 2.0.6
mail.domain.local - адрес почтового сервера.
Установка mutt
yum install mutt
Настройка mutt
vi /home/zabbix/.muttrc
set from = zabbix@domain.local
set realname = ""
set hostname = "domain.local"
set smtp_url = "smtp://mail.domain.local:25/"
set charset="utf-8"
set copy=no
chown zabbix /home/zabbix/.muttrc
chgrp zabbix /home/zabbix/.muttrc
Создаем скрипт для отправки почты
vi /usr/local/share/zabbix/alertscripts/mutt_send.sh
#! /bin/sh
# Parameters (as passed by Zabbix):
# $1 : Recipient
# $2 : Subject
# $3 : Message
recipient=$1
subject=$2
message=$3
echo $message | mutt -e "set content_type=text/html" "$recipient" -s "$subject"
chgrp zabbix /usr/local/share/zabbix/alertscripts/mutt_send.sh
chown zabbix /usr/local/share/zabbix/alertscripts/mutt_send.sh
chmod 755 /usr/local/share/zabbix/alertscripts/mutt_send.sh
Создаем новый тип медиа (Administration - Media Type)
Добавляем пользователю новый тип
Заходим в Configuration - Action (Event Source - Trigger) и создаем новое действие или правим существующее
В текст сообщения я внес:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<style type="text/css">
td{
padding: 5px;
}
.PROBLEM {
color: red;
}
.OK {
color: green;
}
.Disaster {
background-color: #FF3838;
}
.High {
background-color: #FF9999;
}
.Average {
background-color: #FFB689;
}
.Warning {
background-color: #FFF6A5;
}
.Information {
background-color: #D6F6FF;
}
</style>
</head>
<body>
<table border="1">
<tr>
<td colspan="2" class="{TRIGGER.STATUS}">{TRIGGER.STATUS}</td>
</tr>
<tr class="{TRIGGER.SEVERITY}">
<td rowspan="5" style="font-weight: bold;">
{HOST.NAME1}<br>({IPADDRESS1})
</td>
<td >Severity: {TRIGGER.SEVERITY}</td>
</tr>
<tr class="{TRIGGER.SEVERITY}">
<td >{ITEM.NAME1} = {ITEM.VALUE1}</td>
</tr>
<tr class="{TRIGGER.SEVERITY}">
<td >URL: <a href="{TRIGGER.URL}">{TRIGGER.URL}</a></td>
</tr>
</table>
</body>
</html>
Далее можно спровоцировать какой-либо триггер, и проверить оповещиния:
Не забываем про SElinux.
Спасибо за интересную статью! А можно ли Заббиком анализировать теги HTML ответа?
ОтветитьУдалитьКондюрин Владимир
Не понял вопроса, приведите пример
ОтветитьУдалитьПочему то не отправляется сообщение, как можно протестировать ?
ОтветитьУдалитьОтправить сообщение вручную из консоли, например:
Удалить/usr/local/share/zabbix/alertscripts/mutt_send.sh my@mail.ru "Subject: Test" "Test"
username@zabbix:/usr/lib/zabbix/alertscripts$ ./zabbix-send.sh mail@mail.ru "Subject: Test" "Test"
ОтветитьУдалить./zabbix-send.sh: 11: ./zabbix-send.sh: /usr/lib/sendEmail: not found
хотя sendEmail присутствует в папке /usr/lib/
хотя теперь тест проходит точнее ошибка не выходит но письмо на почту не приходит
УдалитьЗначит что-то не корректно настроили в mutt или смотреть логи системы(/var/logs) или логи почтовика.
УдалитьПочему-то тестовое письмо ./mutt_send.sh mail@gmail.com "Subject: Test" "Test2" проходит успешно, но вот при добавление данного скрипта в zabbix оно не отправляется.
ОтветитьУдалитьзапили чуть иначе, подскажите у меня не добавляется цвет фона в присылаемом письме возможно блог съедает часть html'a можете вставить как code ?
ОтветитьУдалитьЦвет фона устанавливается CSS и основан на макросе {TRIGGER.SEVERITY}.
УдалитьУ меня установлен английский язык. Если установлен другой язык, то надо проверять посмотреть что за значение туда подставляется(открыть письмо как html). Если там что-то не английское, попробовать поправить CSS (но я не уверен что это будет работать).
Каким образом запилил иначе? Тоже не отправляется маил в html виде из заббикса. Запускаю скрипт руками - все норм, из заббикса - болт. Пробовал и sendmail, и mutt все одно. Zabbix 2.4.6. Права на скрипт норм, запускаю руками под пользователем zabbix норм, пишу полные пути... Ничего не помогает. В виде простого текста проблем нет.
УдалитьУ меня работает именно так как на скринах. Путь /usr/local/share/zabbix/alertscripts (для CentOS, для других не знаю), а в настройках указывается только имя файла. Не забывайте проверить selinux. А дальше смотреть логи
Удалить/usr/local/share/zabbix/alertscripts лежат два скрипта:
ОтветитьУдалить1. Рабочий
#! /bin/bash
to=$1
subject=$2
body=$3
fr="email"
cat <<EOF | mail -s "$subject" -r "$fr" "$to"
$body
EOF
2. Работает только при запуске руками:
#! /bin/bash
to=$1
subject=$2
body=$3
fr="email"
echo "$body" | /usr/bin/mutt -s "$subject" -e "set envelope_from=yes" -e "set from="$fr"" -e "set content_type="text/html"" -- "$to"
и еще
cat <<EOF | /usr/sbin/sendmail -r "$fr" -t
To: $to
Subject: $subject
Content-Type: text/html
$body
EOF
В какие логи посмотреть? Пожалуйста объясните подробнее!
Попробуйте использовать именно приведенные скрипты и настройки.
Удалить/home/zabbix/.muttrc
/usr/local/share/zabbix/alertscripts/mutt_send.sh
Логи заббикса (по-умолчанию) /var/log/zabbix/zabbix_server.log
Логи selinux /var/log/audit/audit.log
Прошел по тем же граблям http://habrahabr.ru/post/267523/
УдалитьПереустановил все на CentOS7. Работает. СПАСИБО!
Вот еще один маленький вопрос. Есть несколько триггеров, в которых три итема, поэтому уведомление оформляю вот так:
Удалить{ITEM.NAME1} = {ITEM.VALUE1}
{ITEM.NAME2} = {ITEM.VALUE2}
{ITEM.NAME3} = {ITEM.VALUE3}
Но в таком случае, триггеры, где итемов меньше трех выглядят как *UNKNOWN*=*UNKNOWN*
Как избавится от такого мусора? Размер шрифта сделать 0 ? Как?
Если говорить про html, то каждую такую строку можно положить внутрь div или span и т.д.
УдалитьВ css добаить что-то типа
.UNKNOWN {
visibility: hidden;
}
а в hml
<div class="ITEM.NAME1">{ITEM.NAME1} = {ITEM.VALUE1}</div>
Если имя итема будет unknown то поле будет скрыто
А если это ячейка таблицы
Удалить<"tr" class="{TRIGGER.SEVERITY}">
<"td" >{ITEM.NAME1} = {ITEM.VALUE1}<"/td">
<"/tr">
Как ее скрыть?
Как-то так, (только соответственно имя существующего итема не должно содержать unknown)
Удалить<"tr" class="{TRIGGER.SEVERITY} {ITEM.NAME1}">
<"td" >{ITEM.NAME1} = {ITEM.VALUE1}<"/td">
<"/tr">
Вот не получается совсем.
Удалить.UNKNOWN {
display: none;
}
<"tr" class="{TRIGGER.SEVERITY}">
<"td" class="{ITEM.NAME3}">{ITEM.NAME3} = {ITEM.VALUE3}
Все дело в что, что zabbix выдает {ITEM.NAME3} = *UNKNOWN*. Вот так он считает и никак иначе. А имя класса должно начинаться с латинской буквы и может содержать только - или _. Не знаю как эти грабли обойти.
настройка действия в заббиксе обращайте внимание если кто еще столкнется.
УдалитьА в FreeBSD у Zabbix не существует пользовательской директории, как быть?
ОтветитьУдалитьНи разу не сталкивался с FreeBSD, но как написано в мане https://www.freebsd.org/cgi/man.cgi?query=mutt&sektion=1&manpath=freebsd-release-ports
УдалитьПользовательский конфиг быть должен
~/.muttrc or ~/.mutt/muttrc
User configuration file.