Ошибка при тестировании способа оповещения zabbix

Содержание

  1. Отправка уведомлений из Zabbix в Telegram через Webhook
  2. Zabbix 5 — настраиваем уведомления в Telegram
  3. Создание бота в Telegram
  4. Отправка уведомления в Telegram пользователю
  5. Отправка уведомления в Telegram группе
  6. Отправка уведомлений и графиков из zabbix в telegram
  7. Введение
  8. Создание бота в telegram
  9. Отправка уведомлений в telegram через webhook
  10. Настройка zabbix на отправку графиков в telegram
  11. Разные оповещения о разных событиях
  12. Оповещения в telegram со ссылками на график и триггер
  13. Заключение

Отправка уведомлений из Zabbix в Telegram через Webhook

Не так давно вышел Zabbix 4.4 в котором появилось много всего интересного. Например, добавлена возможность использования web-хуков и собственных обработчиков действий и уведомлений при выявлении сбоев проверяемых сервисов. Обработчики можно создавать на JavaScript и применять для обращения к внешним службам доставки уведомлений или системами отслеживания ошибок. Например, можно написать обработчик для отправки сообщений о проблемах в корпоративный чат.

В данной статье я расскажу как можно из Zabbix 4.4 (а так же из 5.0) отправлять сообщения в Телеграм без использования дополнительных скриптов.

Исходные данные: Zabbix 4.4
Задача: Сделать отправку уведомлений из Zabbix в Telegram через Webhook

Для того чтобы отправлять сообщения в Телеграм необходим доступ до api.telegram.org на порт 443 с Вашего Zabbix-сервера.

1. Создаем бота у @botfather, официальная инструкция тут

Команда для создания бота /newbot
Далее вводим имя желаемого бота обязательно маленькими буквами и в конце префикс _bot, например: myxxxxxxx_bot
Если имя не занято, то botfather скажет «Done! Congratulations on your new bot» и далее выдаст ссылку на бота, вида: t.me/myxxxxxxx_bot
А так же кроме всего прочего после слов «Use this token to access the HTTP API:» выдаст API-ключ нашего бота, он нам пригодиться дальше.

Нам нужно перейти по ссылке на нашего бота и нажать ЗАПУСТИТЬ или ввести /start, если этого не сделать, то сообщения Вам приходить не будут. Данную ссылку Вы можете давать всем кто будет получать оповещения.

2. Теперь нам нужно узнать собственный идентификатор, чтобы указать его в настройках профиля пользователя в Zabbix

Самый простой способ узнать свой ID — это подключиться к боту @get_id_bot, нажать ЗАПУСТИТЬ и он выдаст вам Ваш ID. Дополнительную информацию о боте можно узнать здесь.

3. Импорт нового способа оповещения:

Открываем Zabbix, переходим в «Администрирование» -> «Способы оповещений», наживаем «Импорт» и выбираем файл zbx_export_mediatypes.xml

У нас появляется новый способ оповещения «Telegram via Webhook», редактируем его и в строку с именем token вводим Ваш API-ключ бота из п.1

Далее Вы можете изменить 3 дополнительных параметра отправки сообщений, это parse_mode, disable_web_page_preview и disable_notification

Параметр parse_mode задает режим разметки сообщений, может иметь значения HTML, Markdown или MarkdownV2, более детально о разметке сообщений можно почитать в официальной документации.

Параметр disable_web_page_preview дает возможность отключить предпросмотр ссылок в сообщениях, может иметь значения true или false. Иногда имеет смысл ставить его в false, выбирать Вам.

Параметр disable_notification дает возможность отключить уведомления о приходе сообщения, может иметь значения true или false.

Параметр HTTPProxy используется только в пропатченой версии zabbix-server v4.4, которая позволяет отправлять сообщения в Телеграм через HTTP-прокси. Не заполняйте это поле в стандартной версии zabbix v4.4! О том как пересобрать zabbix-server с поддержкой HTTPProxy для Web-хуков я описал тут
В Zabbix v5.0 реализована работа вебхуков через прокси и патч не требуется, поэтому Вы можете использовать параметр HTTPProxy и указать в нем адрес прокси-сервера.
Формат параметра HTTPProxy: schema://user:[email protected]:port
где
schema — это протокол, может быть http, https или socks5h
user и password — это логин и пароль пользователя если на прокси используется авторизация (не обязательные поля)
ip — это IP адрес или доменное имя
port — это порт прокси
Пример:
http://123.45.67.89:3128
или
socks5h://vasua:[email protected]:1080

Установленная галочка «Включить запись меню события» (Include event menu entry) позволяет добавлять в алармы на странице «Проблемы» ссылку с именем указанном в поле «Имя записи меню» (Menu entry name) при выборе которой будет открываться страница указанная в «URL записи меню» (Menu entry URL). Поле «URL записи меню» установлено в специально, это позволяет вместе с включенной опцией «Обработка тегов» формировать правильные ссылки на сообщения в чате.

Пример настройки, маркировки тегом и вид меню перехода к сообщению:

Настройки метода оповещения

Пример маркировки тегами и меню перехода к сообщению в Телеграм

Zabbix telegram via webhook test

4. Настройка способа оповещения у пользователя

Теперь перейдите в настройки пользователя который должен получать оповещения, добавьте новое оповещение.

Тип выберите «Telegram via Webhook», в поле «Отправлять на» введите ID пользователя из п.2, пример на картинке ниже:

zabbix telegram via webhook user profile

5. Настройка действий

Теперь можно настроить непосредственно действия по отправке уведомления при наступлении определенных событий, для этого перейдите в Zabbix в «Настройка» -> «Действия», выберите Источник событий — Триггеры и нажмите кнопку «Создать действие».

6. Отладка скрипта отправки и логгирование.

Скрипт отправки написан на JavaScript и ведет полное логгирование действий по отправке на уровне 3 (warning), если Вы откроете стандартный лог-файл Zabbix-server по пути /var/log/zabbix/zabbix_server.log, то увидите примерно такое:

Код ответа 200 означает успешную отправку.

Могут быть и ошибки отправки, пример (указан неправильный ID чата):

или указан неправильный токен:

В отправляемых сообщениях можно использовать эмодзи символы, коды символов смотрим тут, колонка Unicode. Перед кодом нужно использовать обратный слэш для экранирования.

Внимание! Отправка эмодзи с указанием unicode-кода будет работать только в Zabbix v4.4, в 5-й версии Zabbix нужно использовать непосредственно сами картинки, их можно вставлять в нужные места сообщений (смотрите скриншоты ниже).

Пример отправки сообщения с эмодзи в Zabbix v4.4:

Пример отправки сообщения с эмодзи в Zabbix v4.4

Пример отправки сообщения с эмодзи в Zabbix v5:

Пример отправки сообщения с эмодзи в Zabbix v5

На этом все, до скорых встреч.

Если у Вас возникли вопросы или Вы хотите чтобы я помог Вам, то Вы всегда можете связаться со мной разными доступными способами.

Источник

Zabbix 5 — настраиваем уведомления в Telegram

Настраиваем уведомления из Zabbix 5 в Telegram. В разделе Administration → Media types (Администрация → Типы оповещений) уже есть куча предустановленных вебхуков, в том числе и Telegram, осталось его только настроить.

На самом деле есть несколько способов отправлять сообщения из Zabbix в Telegram, но здесь я рассмотрю только отправку с помощью вебхуков.

Нам понадобится создать бота для отправки сообщений. Бот может отправлять сообщения пользователям или в группу.

Создание бота в Telegram

Создадим бота, через которого Zabbix будет отправлять сообщения. Для управления ботами есть специальный бот @BotFather, добавляем его себе в контакты и пишем ему:

Выводится справка по командам. Для создания бота пишем:

Нам предлагают указать для бота name (имя), я пишу:

Нам предлагают указать для бота username (логин), он должен оканчиваться на «bot» или «Bot» я пишу:

Бот создан, получаем токен «Use this token to access the HTTP API». Копируем его и вставляем в Zabbix в разделе Administration → Media types → Telegram → Parameters → Token.

Сохраняем изменения. Кстати, в описании также приводится краткая инструкция по настройке Telegram:

Отправка уведомления в Telegram пользователю

Если вы хотите отправить личное сообщение пользователю, то в его профиле в разделе Media нужно указать chat id пользователя из Telegram.

Для получения chat id пользователю нужно в Telegram добавить бота @myidbot и отправить команду:

На самом деле таких ботов, которые возвращают идентификаторы довольно много.

Можно протестировать отправку сообщения в Telegram ссылкой «test».

Sending failed: Bad Request: chat not found.

Это нормально, ботам нельзя отправлять сообщения пользователям без их согласия. Нахожу созданного бота Zabbix internet-lab.ru и отправляю ему команду:

Проверяю ещё раз.

Отправка уведомления в Telegram группе

Для отправки уведомления в группу нужно эту группу создать, добавить в неё созданного бота и отправить уведомление на id группы.

ПРИМЕЧАНИЕ: если вы сделаете группу «супергруппой», то у неё сменится идентификатор.

Создаю группу, добавляю в неё бота.

Для получения group id в Telegram добавляю бота @myidbot в группу и отправляю команду:

Получаем идентификатор группы, заметьте, что он отрицательный, не теряем минус.

Можно протестировать отправку сообщения в Telegram.

Сообщения отправляются в Telegram. Теперь можно заниматься настройкой, шлифовкой, дизайном и прочими неинтересными вещами.

Источник

Отправка уведомлений и графиков из zabbix в telegram

Я чаще всего использую стандартные уведомления от zabbix на почтовый ящик, это позволяет спокойно спать. Тем не менее, решил пойти в ногу со временем и попробовать настроить отправку оповещений из zabbix в популярный мессенджер telegram. К тому же я постоянно активно пользуюсь этим мессенджером и считаю его очень удобным.

Введение

Способов настройки уведомлений из заббикса в телеграм существует несколько. Их можно разделить по информативности:

  • Отправка только текстовых оповещений.
  • Отправка графиков.

Так же можно разделить по типу реализации:

  • Использовать встроенный webhook в zabbix.
  • Написать свой простой скрипт для уведомлений.
  • Взять готовую реализацию уведомлений в telegram на github.

Я постараюсь разобрать все возможные варианты. Идти будем от простого к сложному. Сначала настроим текстовые оповещения, потом добавим графики. Отправлять будем как в личку, так и в группу.

Я буду настраивать все в zabbix 5.0, установленный на Centos 8. Принципиального значения это не имеет, решение будет одинаково работать практически на всех дистрибутивах linux.

Если у вас еще нет своего сервера для мониторинга, то рекомендую материалы на эту тему. Для тех, кто предпочитает систему CentOS:

То же самое на Debian 10, если предпочитаете его:

Создание бота в telegram

Первым делом создадим бота, через которого будем слать оповещения из заббикса. Для этого добавляем себе в контакты @BotFather и пишем ему сначала /start, потом /newbot.

Мы создали бота для оповещений и получили для него token, который нам понадобится далее. Теперь нужно добавить в свой список контактов созданного бота. Для этого найдите его по имени. В моем случае имя @serveradminru_bot.

Теперь проверим, как работает отправка уведомлений через нашего бота. Для этого в консоли сервера набираем примерно такую команду:

Бот пришлет оповещение.

В моем запросе изменяемые данные следующие:

210806260 id моего аккаунта. Чтобы его узнать, добавьте бота @my_id_bot и напишите ему /start
Проверяю работу бота Текст сообщения
bot1393668911:AAHDfgghTHgfhdfyX28R-wxKfvH1WR6-vdNw Слово bot и дальше token бота. Пишется все в одно слово.

Если все в порядке, двигаемся дальше. Это самая простая часть, тут не должно быть затруднений.

Отправка уведомлений в telegram через webhook

Начиная с 5-й версии, в Zabbix из коробки работают уведомления в telegram через механизм webhook. Чтобы настроить его, переходите в Администрирование -> Способы оповещений и выбирайте там Telegram.

Внутри увидите некоторые параметры. Можно так же посмотреть текст скрипта, который используется для отправки оповещений. В целом, тут сейчас не обязательно что-то менять. Дефолтные настройки полностью рабочие. Надо только указать токен бота.

Тут же можете шаблоны поправить так, как вам нравится. Это нововведение 5-й версии Zabbix — правка шаблонов оповещений в настройках самих оповещений. Это позволяет создавать для каждого типа свои шаблоны. Очень удобно.

Давайте теперь проверим отправку уведомлений через этот способ. Нажимайте Тест.

Я указал текст сообщения, заголовок, свой id и token бота. В итоге мне в личку пришло сообщение от бота.

Если хотите отправить оповещение в группу, то сначала создайте ее, а потом добавьте туда бота. Не потеряйте минус в id группы. Его тоже нужно указывать. Я сначала не понял этого и копировал id группы без минуса. В итоге, оповещения в группу не отправлялись.

Итак, убедились, что сообщения в telegram нормально отправляются. С технической стороны проблем нет. Теперь настроим отправку уведомлений по событиям. Я обычно для этого использую тестовый триггер. В стандартном шаблоне zabbix для OS Linux есть элемент данных Number of logged in users, который считает количество залогиненных пользователей. Я для него делаю триггер, чтобы он срабатывал, когда пользователей 2 и более. И с его помощью тестирую уведомления, просто подключаясь на сервер по ssh двумя подключениями одновременно.

Теперь идем в настройки пользователя и добавляем ему способ оповещений через telegram.

Если у вас ранее не работали никакие уведомления, то не забудьте активировать Действия.

У нас все настроено для отправки оповещений в telegram. Добейтесь срабатывания триггера и проверяйте телеграм канал, в который настроили отправку сообщений.

Все работает. Если вам достаточно такого функционала, то можно оставлять и пользоваться. Но как по мне, так бледновато эти уведомления выглядят. Можно немного шаблоны изменить, чтобы было более читаемо. Так же есть возможность все настроить более красиво и наглядно, да еще и с графиками. Дальше я расскажу еще 2 разных способа отправки уведомлений из zabbix в telegram с графиками и готовыми ссылками на события.

Настройка zabbix на отправку графиков в telegram

Для отправки графиков в telegram предлагаю воспользоваться известным скриптом на питоне — https://github.com/ableev/Zabbix-in-Telegram. Пользуясь случаем, передаю благодарность автору за его создание. Копируем исходники себе.

Нам нужно будет установить несколько модулей python, перечисленные в requirements.txt. Для этого нам понадобится pip. Ставим его и модули.

Копируем в директорию /usr/lib/zabbix/alertscripts файлы zbxtg.py и zbxtg_settings.example.py из скачанного с github проекта. Последний переименовываем в zbxtg_settings.py. Назначаем пользователя zabbix владельцем этих файлов.

Приводим содержимое zbxtg_settings.py примерно к такому виду.

Жирным я выделил те параметры, что нужно поменять. Вам необходимо указать token от бота, который мы ранее создавали, полный url адреса сервера с zabbix. Обратите внимание на этот урл. Не факт, что у вас по localhost/zabbix/ будет открываться web интерфейс Zabbix. Это зависит от настроек Web сервера. Лично я указал просто http://localhost. Дальше указываете учетную запись мониторинга. Лучше всего сделать отдельную учетку с доступом только на чтение. Она нужна для получения графиков. И в конце нужно будет указать параметры доступа к базе данных заббикса. При желании, можете и иконки emoji изменить. Я меняю местами PROBLEM и WARNING. Желтый треугольник на проблемах смотрится более наглядно.

Сохраняем конфиг и проверяем работу скрипта. Если вы только создали бота, то не забудьте ему написать личное сообщение, для настройки персональных сообщений, либо из группы, чтобы он мог слать оповещения в группу. Если этого не сделать, получите ошибку.

Проверим из консоли работу скрипта.

В личку телеграма должно прийти тестовое сообщение. Если получите ошибку на тему того, что python не найдет, то поменяйте в файле zbxtg.py в самой первой строке python на python3 или создайте символьную ссылку.

А в консоли появится примерно такой вывод.

То же самое проделаем с группой.

Если все в порядке, двигаемся дальше. В случае ошибок, сразу разбирайтесь, в чем может быть проблема.

Идем в web интерфейс и добавляем 2 новых способа оповещений с помощью скрипта. Один для персональных сообщений, второй для групповых. Во втором случае надо добавить ключ —group, все остальное идентичное.

Так же нам нужно настроить шаблоны оповещений. Я предлагаю следующий вариант. Тип сообщений Проблема.

Тема по умолчанию <> — :
Сообщение по умолчанию Последнее значение: ()
zbxtg;graphs
zbxtg;graphs_period=1800
zbxtg;itemid:
zbxtg;title: —
Важность триггера:
Host: ()
Описание:

  • <> — макрос для выставления иконки emoji с восклицательным знаком
  • zbxtg;graphs — указывает, что будем отправлять график
  • zbxtg;itemid: — параметр автоматически определяет itemid для графика на основании информации об итеме в триггере, можно указать нужный itemid вручную
  • zbxtg;title — задает имя для заголовка графика

Все остальное понятно по смыслу, так как относится к стандартным макросам zabbix. Вот полный список параметров, которые поддерживает скрипт:

zbxtg;graphs включает отправку графиков
zbxtg;graphs_period=10800 период за который строится график
zbxtg;graphs_width=700 ширина графика
zbxtg;graphs_height=300 высота графика
zbxtg;itemid: выбор itemid для графика на основе триггера
zbxtg;title: — заголовок графика
zbxtg;debug включает режим отладки, некоторая дополнительная информация сохраняется в tmp_dir
zbxtg;channel включает возможность отправки оповещения в telegram channel
zbxtg;to:username1,username2,username3 можно сразу в шаблоне указать, кому будут отправляться оповещения
zbxtg;to_group:Group то же самое, что выше, только для групп

Для операции восстановления шаблон попроще.

Тема по умолчанию <> — :
Сообщение по умолчанию Server: ()
Описание:
Проблема устранена!
Время устранения проблемы:

И для подтверждения.

Тема по умолчанию <> — :
Сообщение по умолчанию подтвердил проблему со следующим сообщением:
Текущее состояние проблемы

Разные оповещения о разных событиях

Далее показываю на примере, как можно слать уведомления в личку и в группу, одновременно и по отдельности, в зависимости от настроенных условий. По каким-то действиям пишем в личку, по каким-то в группу. Достаточно просто сделать 2 отдельных пользователя для этого. Одному настроить в качестве способа оповещений личные сообщения, а второму указать группу. Затем в действиях, указывая, какому пользователю отправлять сообщение, выбирать способы уведомлений.

Перед созданием пользователя надо добавить новую группу и дать ей необходимые права. Вы можете очень гибко этим управлять.

Если учетка техническая, только для оповещений, то доступ к веб интерфейсу можно не делать. Даем ей права доступа на чтение только к группе Zabbix servers, так как будем слать уведомления только по триггерам этого хоста.

Теперь добавляем пользователя и помещаем его в эту группу.

Добавляем ему telegram группу в способы оповещения. Добавлять можно не по id, а по имени группы, так удобнее.

Так же добавим персональные уведомления telegram пользователю admin. Здесь уже указываем id учетной записи .

Настраиваем действия. В данном примере я делаю отправку всех уведомлений пользователю Admin, у которого в способах оповещений указана личка telegram. А сообщения по конкретному триггеру Zabbix server: Zabbix agent is not available (for 3m) пользователю tg-group, у которого указана группа telegram.

Думаю, идею вы поняли. Можно очень гибко настроить уведомления в Zabbix и это очень круто и удобно. И работает из коробки. Проверим теперь, как будут выглядеть оповещения в telegram. Останавливаем на сервере zabbix-agent и ждем работы триггера с оповещениями.

Проверяем телеграм и видим там одинаковые уведомления и в группе, и в личке.

После обновления проблемы или закрытия, придут свои оповещения.

При этом, если сработает любой другой триггер, уведомление придет только в личку. В группу ничего не будет отправлено.

Шаблоны и графики в уведомлениях можете настраивать по своему вкусу. Обращаю внимание на графики. Они приходят в отдельных сообщениях. Далее я покажу еще один скрипт для уведомлений в telegram. Он немного по-другому работает — прикрепляет сразу ссылки на историю и триггер, а так же вкладывает графики в то же сообщение, что и текст.

Если у вас возникают ошибки с отправкой графиков, то проверить их работу можно в консоли. Вот пример запроса.

Это нормальный вывод ошибки, которая указывает на то, что выбран itemid 23301, которого либо не существует, либо к нему нет доступа, либо для него нет графика. Если выбрать правильный itemid, то после выполнения скрипта никакого вывода не будет, а в телеграм будет отправлен выбранный график.

Оповещения в telegram со ссылками на график и триггер

Расскажу про еще один интересный скрипт для отправки красивых и функциональных оповещений в telegram, в котором помимо всего прочего сразу же публикуются ссылки на триггер, график и некоторые другие полезности. Вот он на гитхабе — https://github.com/xxsokolov/Zabbix-Notification-Telegram. Инструкция от автора в некоторых местах не очень понятная, так что я немного повозился, прежде чем все получилось. В основном c xml были проблемы, но обо всем по порядку.

Клонируем к себе репозиторий.

Копируем в /usr/lib/zabbix/alertscripts папку zbxTelegram_files и файлы _config.yml, zbxTelegram.py, .requirements и zbxTelegram_config.example.py. Последний переименовываем в zbxTelegram_config.py.

Делаем пользователя zabbix владельцем этих файлов и разрешаем исполнение скрипта.

Автор скрипта предлагает запускать его в виртуальном окружении, поэтому поставим пакет virtualenv.

Переходим в /usr/lib/zabbix/alertscripts, создаем виртуальное окружение и активируем его.

Ставим зависимости и деактивируем окружение.

Редактируем конфигурационный файл zbxTelegram_config.py. Список параметров, которые нужно поменять.

В url на конце должен обязательно быть слеш. Дальше делаем все то же самое, что и ранее. Идем в Способы оповещений и добавляем новый тип, где в качестве скрипта указываем zbxTelegram.py.

Шаблоны тем сообщений можете настроить как вам больше нравится. Автор предлагает такие:

  • — мапинг значений ProblemResolvedUpdate в emoji (config: zabbix_status_emoji_map)
  • <> — мапинг значений Severity в emoji (config: zabbix_status_emoji_map)

В поле Сообщение копируется xml конфиг полностью, который приведен в файле actions.example. Копируйте его 1 в 1.

Во все шаблоны можете его вставить без изменений. Я немного попытался его править, но каждый раз потом получал ошибку парсинга xml. В итоге бросил. Автор перечисляет значение каждого парметра, так что можете попытаться настроишь шаблоны на свой вкус.

  • — прикреплять график (TrueFalse)
  • True — прикрепить ссылку url на History (TrueFalse)
  • True

    — прикрепить ссылку url из триггера (TrueFalse)

  • True — прикрепить теги (TrueFalse)
  • — период графика в секундах
  • — передача itemid
  • — передача triggerid
  • — передача eventid
  • — заголовок графика —
  • — передача url из триггера
  • — передача списка тэгов из триггера

Проверим работу уведомлений. Сначала через консоль.

В данном случае слова test менять нельзя. Именно они инициируют отправку тестового сообщения. Вот как оно выглядит.

То же самое можно сделать через web интерфейс.

Если все в порядке, подключайте данный тип уведомлений к пользователю, указывайте его в действиях и проверяйте. Уже не буду это подробоно описывать, так как устал. Материал и так очень объемный получился. В итоге уведомления в телеграме от этого скрипта будут выглядеть вот так:

Текст более информативен по дефолту и выглядит приятнее, графики в одном сообщении с текстом. В последней строке есть готовые ссылки на триггер, историю по итему. Только имейте ввиду, что url для ссылок берется из конфига и если у вас там указан localhost, то только с него и можно будет их посмотреть. Так что указывайте внешний, а не локальный url. Из минусов отмечу тоненькие графики без заливки. В скрипте от ableev они более наглядные.

Заключение

Теперь у нас zabbix работает современно, модно, молодежно 🙂 Использует telegram для отправки оповещений с графиками, ссылками и т.д. Функционал удобный и настраивается достаточно просто. У меня практически не было затруднений, когда разбирал тему. Беру себе на вооружение и использую по необходимости. Хотя сам не люблю оповещения в телеграме, и чаще всего их отключаю, как и от остальных программ. Не нравится, когда меня в каждую минуту могут отвлечь какие-то события. Проверка почты раз в 30 минут самая подходящая интенсивность для меня.

Тем не менее, при работе коллектива, оповещения в общую группу могут быть очень удобны. Особенно, если только на мониторинге сидят отдельные люди, в чью задачу входит оперативная реакция на события.

Источник

В предыдущих статьях серии про Zabbix мы рассказывали о том, как контролировать различное оборудование и сервисы. Однако не менее важно настроить оповещения о событиях, требующих реакции со стороны системного администратора.

В этой статье мы расскажем о том, как настроить отправку сообщений о срабатывании триггеров Zabbix по электронной почте, через SMS и Телеграм. Вы также научите свой Zabbix звонить администратору по телефону и сообщать о критических событиях синтезированным голосом с помощью сервиса голосовых рассылок Звонобот.

Отправка сообщений по электронной почте

Для того чтобы Zabbix мог отправлять сообщения по электронной почте, необходимо сделать следующее:

  • настроить способы оповещений Media Types;

  • назначить Media с типом Email пользователю Zabbix;

  • добавить действие при срабатывании триггера Trigger Action

Расскажем об этом подробнее.

Настройка способов оповещений Media Types

Если в Web-интерфейсе Zabbix выбрать Media Types из меню Administration, вы увидите многочисленные способы оповещений, доступные для настройки в Zabbix. Часть из них показана на рис. 1.

Рис. 1. Способы оповещений в Zabbix

Рис. 1. Способы оповещений в Zabbix

Мы будем использовать готовые способы оповещений Email и Telegram, а также создадим собственные — p1sms.ru (для отправки SMS) и Zvonobot (для голосовых сообщений по телефону).

Если вы находитесь там, где есть интернет, то сможете получать сообщения через Email и Telegram. Но бывает и так, что доступны только SMS и голосовые звонки. Чтобы не пропустить важные сообщения от Zabbix, пригодятся все эти способы.

Чтобы настроить отправку электронной почты, щелкните на странице Media Types строку Email. Далее вам нужно будет заполнить форму, указав в ней параметры исходящего почтового сервера (рис. 2).

Рис. 2. Настройка способа оповещения Email (домен указан только для примера)

Рис. 2. Настройка способа оповещения Email (домен указан только для примера)

Мы показали случай, когда используется собственный почтовый сервер, доступный на порту 25 с использованием STARTTLS. Сообщения будут отправлены на адрес admin@my-domain.ru (имя домена приведено только для примера).

В ответственных случаях безопаснее использовать собственный почтовый сервер, который находится под вашим контролем. При необходимости можно настроить отправку почты и через публичные почтовые сервисы, такие как Google Mail или Яндекс Почту. Помимо официальной документации в интернете есть инструкции по настройке, например, здесь.

Настроив способ оповещения  Email, выполните проверку с помощью ссылки Test, расположенной справа напротив Email в списке способов оповещений, показанном на рис. 1.

Щелкните эту ссылку и заполните форму, указав в ней адрес получателя Send to, тему сообщения Subject и текст сообщения Message. Затем щелкните кнопку Test (рис. 3).

Рис. 3. Отправка тестового сообщения через способ оповещения Email

Рис. 3. Отправка тестового сообщения через способ оповещения Email

Если настройки почтового сервера указаны правильно, вы получите сообщение на указанный адрес электронной почты.

На вкладке Message Templates можно изменить стандартные шаблоны сообщений, отправляемых по электронной почте. 

Назначение Media с типом Email пользователю Zabbix

Чтобы способ оповещения заработал, его нужно назначить пользователю Zabbix, например, Admin.

Выберите в меню Administration раздел Users, щелкните имя пользователя Admin, а затем откройте вкладку Media. На рис. 4 мы показали ситуацию, когда для пользователя было добавлено несколько способов оповещения, в том числе и способ Email.

Рис. 4. Способы оповещения для пользователя Admin

Рис. 4. Способы оповещения для пользователя Admin

Для добавления способа оповещения Email щелкните ссылку Add. В списке Type выберите строку Email.

В поле Send to укажите адрес электронной почты, по которому должно отправляться оповещение. С помощью поля When active можно ограничить дни и часы отправки сообщений.

Набор флажков Use if severity позволяет задать уровни серьезности триггеров, при срабатывании которых необходимо отправить сообщение по указанному адресу (рис. 5).

Рис. 5. Добавление способа оповещения

Рис. 5. Добавление способа оповещения

В нашем случае сообщения отправляются по электронной почте круглосуточно, причем при срабатывании триггера с любым уровнем серьезности.

Если нужно отредактировать или удалить способ оповещения, воспользуйтесь ссылкой Edit или Remove, соответственно (рис. 4). 

Добавление действий при срабатывании триггера Trigger Actions

Итак, мы настроили и проверили способ оповещения Email, а также добавили его для пользователя Admin.

Теперь нужно добавить действие при срабатывании триггера. Для этого в меню Configuration выберите меню Action, а из него — строку Trigger Actions.

На рис. 6 показан уже сформированный список действий для различных способов оповещений.

Рис. 6. Список действий для различных способов оповещений

Рис. 6. Список действий для различных способов оповещений

Здесь действие zabbix03 action, заключающееся в отправке сообщения по электронной почте, выполняется для всех уровней серьезности, кроме Disaster. Действие SMS Notify выполняется при срабатывании триггеров с уровнем серьезности High и Disaster. И, наконец, действие DISASTER_ALERT_Phone_CALL определено для звонков по телефону при срабатывании триггеров уровня Disaster.

Чтобы создать новое действие, воспользуйтесь кнопкой Create action на странице Trigger Actions. Вам будет предложено добавить действие на вкладке Action (рис. 7). 

Рис. 7. Редактирование добавленного действия

Рис. 7. Редактирование добавленного действия

Задайте имя действия, а затем щелкните ссылку Add, чтобы добавить операцию. При добавлении выберите в списке Type уровень серьезности триггера Trigger severity. Чтобы сообщение электронной почты отправлялось для любого уровня серьезности, кроме Disaster, выберите значения полей Operator и Severity, как это показано на рис. 8.

Рис. 8. Добавление нового условия выполнения действия

Рис. 8. Добавление нового условия выполнения действия

Далее для добавленного действия на вкладке Operations необходимо добавить операции. На рис. 9 три операции уже добавлены.

Рис. 9. Добавление операций

Рис. 9. Добавление операций

Для добавления операции воспользуйтесь ссылкой Add. Здесь можно добавить операции, которые будут выполнены при срабатывании триггера, при восстановлении его состояния (поле Recovery operations), а также при обновлении состояния (поле Update operations).

На рис. 10 мы показали форму редактирования уже добавленной операции.

Рис. 10. Редактирование операции

Рис. 10. Редактирование операции

Здесь как минимум необходимо выбрать пользователя в поле Send to users и способ извещения Email в поле Send only to

Вы также можете отредактировать шаблон темы сообщения Subject и шаблон сообщения Message, отметив флажок Custom message. Если этого не сделать, будут использованы шаблоны сообщения по умолчанию, определенные в способе оповещения Email. 

Официальная документация, имеющая отношение к настройке отправки сообщений по электронной почте, находится здесь:

  • конфигурирование способа оповещения Email (на русском языке для версии 6.0);

  • настройка действий (на русском языке)

Отправка сообщений в Telegram

Сервер Zabbix версии 6.2 содержит встроенную поддержку отправки сообщений в мессенджер Telegram, основанную на использовании Telegram Bot API и Zabbix webhook.

Мы расскажем о том, как настроить отправку персональных сообщений. Если нужно отправлять сообщения в группу Telegram, то соответствующий способ настройки описан в официальной документации Telegram webhook, а также в статье.

Создание бота

Прежде всего создайте новый бот с помощью бота @BotFather. Для этого отправьте боту @BotFather команду «/newbot». Вам будет предложено ввести имя для нового бота, а также имя пользователя.

Результат показан на рис. 11 (имена и токен приведены только для примера).

Рис. 11. Регистрация нового бота (имена и токен приведены только для примера)

Рис. 11. Регистрация нового бота (имена и токен приведены только для примера)

Для настройки отправки сообщений в Telegram вам потребуется токен HTTP API, выделенный на рис. 11 рамкой красного цвета, а также идентификатор пользователя Telegram, который будет получать оповещения из Zabbix.

Получение идентификатора пользователя Telegram

Свой идентификатор пользователя Telegram можно получить с помощью бота @myidbot, доступный по ссылке https://t.me/myidbot.

Запустите этот бот и введите ему команду «/getid». В ответ вы получите собственный идентификатор (рис. 12, идентификатор показан только для примера).

Рис. 12. Получение собственного идентификатора (идентификатор показан только для примера)

Рис. 12. Получение собственного идентификатора (идентификатор показан только для примера)

Запуск бота

Получив идентификатор, подключитесь к боту, созданному на предыдущей шаге, и выдайте ему команду «/start». Это необходимо, чтобы бот смог отправлять вам сообщения.

Добавление способа оповещений Telegram

Теперь в Web-интерфейсе Zabbix откройте меню Administration, выберите из него строку Media Types, а затем найдите и щелкните ссылку Telegram.

ваш идентификатор, полученный от бота @myidbot, а в поля Скопируйте токен, полученный от бота @BotFather при создании вашего бота, в поле Token, а затем щелкните кнопку Update (рис. 13, токен приведен только для примера).

Рис. 13. Копирование токена при настройке способа оповещения Telegram (токен приведен только для примера)

Рис. 13. Копирование токена при настройке способа оповещения Telegram (токен приведен только для примера)

Добавив способ оповещения, протестируйте его с помощью ссылки Test.

При тестировании в поле Token уже должен находиться токен вашего бота. Скопируйте в поле To ваш идентификатор, полученный от бота @myidbot, а в поля Subject и Message — тему и текст сообщения, соответственно.

Если все будет хорошо, вы увидите сообщение об успешном тестировании (рис. 14).

Рис. 14. Тестирование способа оповещения Telegram

Рис. 14. Тестирование способа оповещения Telegram

Вы также получите тестовое сообщение в Telegram (рис. 15).

Рис. 15. Получено тестовое сообщение в Telegram

Рис. 15. Получено тестовое сообщение в Telegram

Если все в порядке, можно переходить к назначению настроенного способа оповещения Telegram пользователю Zabbix, а также к добавлению этого способа к существующему или новому действию.

Назначение типа оповещения Telegram пользователю

Ранее вы уже назначали тип оповещения Email пользователю Admin. Теперь нужно повторить эту операцию для типа оповещения Telegram.

Откройте вкладку Media, выбрав в меню Administration раздел Users и щелкнув имя пользователя Admin. Далее воспользуйтесь ссылкой Add, чтобы добавить новый тип оповещения.

Выберите в списке Type способ Telegram, а в поле Send To идентификатор пользователя Telegram, который мы получили раньше от бота @myidbot. 

С помощью флажков Use if severity укажите серьезность триггеров, при срабатывании которых нужно отправлять сообщения в Telegram. На рис. 16 показана установка флажков для случая, когда в Telegram требуется отправка для уровней от средней (Average) до катастрофической (Disaster).

Рис. 16. Настройка типа оповещения для Telegram при назначении пользователю Zabbix

Рис. 16. Настройка типа оповещения для Telegram при назначении пользователю Zabbix

Добавление оповещения в Telegram для действия при срабатывании триггера

На следующем шаге в меню Configuration выберите меню Action, а потом из него — строку Trigger Actions. Затем откройте вкладку Operations (рис. 17).

Рис. 17. Вкладка Operations с добавленными операциями

Рис. 17. Вкладка Operations с добавленными операциями

На вкладке Operations с помощью ссылки Add добавьте новую операцию, выбрав из списка Send to users пользователя Admin, а из списка Send only to — строку Telegram (рис. 18).

Рис. 18. Добавление операции отправки в Telegram

Рис. 18. Добавление операции отправки в Telegram

Теперь при выполнении действия вы получите сообщение о срабатывании триггера (а также о восстановлении его состояния) в мессенджер Telegram.

Красивые сообщения в Telegram с использованием Emoji

Вы можете «оживить» сообщения, отправляемые сервером Zabbix в Telegram с помощью символов Emoji (рис. 19).

Рис. 19. Добавление символов Emoji в сообщения от Zabbix

Рис. 19. Добавление символов Emoji в сообщения от Zabbix

Чтобы это сделать, добавьте символы Emoji в тему Subject для шаблонов сообщений способа оповещений Telegram, доступных на вкладке Message templates (рис. 20).

Рис. 20. Шаблоны сообщений для Telegram

Рис. 20. Шаблоны сообщений для Telegram

Символы Emoji можно скопировать через буфер обмена Clipboard со страницы https://apps.timwhitlock.info/emoji/tables/unicode, а затем вставить их в нужное место шаблона (рис. 21).

Рис. 21. Вставка символа Emoji в поле Subject шаблона сообщения для Telegram

Рис. 21. Вставка символа Emoji в поле Subject шаблона сообщения для Telegram

Символы Emoji полезны, так как привлекут ваше внимание к важным сообщениям.

Отправка SMS из Zabbix

В сервере Zabbix среди встроенных способов оповещений Media Types есть отправка SMS. Однако этот способ требует наличия GSM модема, подключенного к последовательному порту сервера Zabbix, о чем написано в документации.

У нас не было желания искать совместимый GSM модем, приобретать его и размещать в дата-центре. Поэтому мы решили использовать для отправки SMS один из многочисленных онлайн-сервисов, специализирующихся на решении этой задачи.

Выбор сервиса для отправки SMS

Как оказалось, отправка SMS через онлайн-сервисы стоит заметных денег, причем для некоторых операторов мобильной связи есть еще и ежемесячная абонентская плата. Стоимость отправки SMS на момент написания этой статьи составляла от 5 руб. до 20 руб. за одно сообщение. 

Некоторые сервисы допускают отправку SMS без абонентской платы, однако не для всех операторов мобильной связи (например, https://sms.ru/).

В итоге был выбран сервис P1SMS https://p1sms.ru/. После настройки шаблона сообщений удалось отключить модерацию и отравлять сообщения по цене 5 руб. за штуку. Если в вашей информационной системе критичные ошибки не идут большим потоком, то это может быть разумным выбором.

Как мы уже говорили, доставка оповещений через SMS будет работать даже в том случае, если в зоне нахождения вашего смартфона нет интернета (или он очень дорогой), но есть мобильная связь.

Скрипт отправки SMS через P1SMS

Zabbix позволяет вам создавать собственные способы оповещения, основанные на вызове скриптов. Это описано в документации (на русском языке для версии 6.0).

Для отправки SMS мы подготовили скрипт, которой требует небольшого редактирования. Вам потребуется изменить в нем АПИ-ключ и номер телефона, на который будут отправляться сообщения от Zabbix.

Чтобы получить АПИ-ключ, зарегистрируйтесь на сайте P1SMS по адресу https://p1sms.ru/. Ключ можно скопировать на странице https://admin.p1sms.ru/panel/apiinfo.

Далее создайте на сервере Zabbix каталог /usr/lib/zabbix/alertscripts для скриптов добавляемых способов оповещения. Отредактируйте файл /etc/zabbix/zabbix_server.conf, удалив символ комментария со строки:

AlertScriptsPath=/usr/lib/zabbix/alertscripts

Затем сохраните файл конфигурации zabbix_server.conf, перезапустите сервис Zabbix и убедитесь, что он работает:

# systemctl restart zabbix-server
# systemctl status zabbix-server

Скрипт отправки SMS нужно скачать по этому адресу.

Переименуйте его в p1sms.pl и запишите в каталог /usr/lib/zabbix/alertscripts.

Сделайте владельцем скрипта пользователя zabbix и разрешите запуск скрипта:

# chown zabbix:zabbix /usr/lib/zabbix/alertscripts/p1sms.pl
# chmod +x /usr/lib/zabbix/alertscripts/p1sms.pl

Проверьте, что владелец и права установлены правильно:

# ls -lh /usr/lib/zabbix/alertscripts/p1sms.pl
-rwxr-xr-x 1 zabbix zabbix 2.1K Oct 18 13:06 /usr/lib/zabbix/alertscripts/p1sms.pl

Найдите в скрипте p1sms.pl функцию sendp1sms и отредактируйте в ней две строки:

my $api_key = '*************';
my $phone_number = '';

Укажите здесь свой API-ключ сервиса P1SMS и номер мобильного телефона для отправки SMS в формате 7хххххххххх.

Добавление способа оповещения p1sms.ru

Откройте в Web-интерфейсе Zabbix меню Administration, выберите из него строку Media Types, а затем щелкните кнопку Create media type. Появится страница добавления нового способа оповещения, которую вам нужно заполнить, как это показано на рис. 22.

Рис. 22. Добавление способа оповещения Script

Рис. 22. Добавление способа оповещения Script

В поле Name введите название способа оповещения p1sms.ru, а затем выберите из списка Type строку Script. Укажите имя скрипта p1sms.pl в поле Script name.

Далее добавьте в поле Script parameters три параметра: {ALERT.SENDTO}, {ALERT.SUBJECT} и {ALERT.MESSAGE} (именно в этом порядке). Должно получиться так, как показано на рис. 22. Сохраните изменения.

Добавление шаблона сообщений SMS

Мы будем отправлять SMS при недоступности контролируемых серверов с помощью шаблона ICMP Ping, который есть среди готовых шаблонов Zabbix. Вам нужно добавить этот шаблон ко всем серверам, которые вы собираетесь контролировать. Установите в этом шаблоне для метрики Unavailable by ICMP ping уровень серьезности Disaster.

Для добавления шаблона на сервис P1SMS откройте раздел редактирования шаблонов без модерации. Он доступен в разделе Управление, строка Шаблоны без модерации.

Добавьте здесь такой шаблон с помощью кнопки СОЗДАТЬ ШАБЛОН:

ICMP ping %w Down (0)

Добавленный шаблон показан на рис. 23.

Рис. 23. Добавлен шаблон без модерации

Рис. 23. Добавлен шаблон без модерации

Инструкция по составлению шаблонов появится на странице добавления шаблона после того, как вы щелкните кнопку СОЗДАТЬ ШАБЛОН.

Шаблоны без модерации нужны для ускорения отправки SMS через сервис P1SMS. Если таких шаблонов нет, или если отправляемое сообщение не будет соответствовать шаблону, SMS попадет на модерацию и может быть задержано на время до 10 минут. Так как нам нужно узнать о проблеме как можно скорее, придется использовать шаблоны.

После добавления шаблона дождитесь, когда он пройдет модерацию. При необходимости вы можете связаться со службой поддержки через онлайн-чат на сайте P1SMS.

Далее протестируйте добавленный способ оповещений с помощь кнопки Test в разделе Media Types. Используйте здесь сообщение, подходящее под шаблон, например «ICMP ping (hcp2.user-domain.ru:icmpping): Down (0)» (рис. 24).

Рис. 24. Тестирование способа оповещения p1sms.ru

Рис. 24. Тестирование способа оповещения p1sms.ru

Состояние отправки SMS вы можете узнать на сайте P1SMS в разделе Отчеты, выбрав из меню строку Отправленные СМС.

Назначение типа оповещения p1sms.ru пользователю

После успешного тестирования назначьте тип оповещения p1sms.ru пользователю Admin, как вы это делали раньше. В нашем случае установлены флажки для отправки SMS при уровне серьезности от высокой (High) до катастрофической (Disaster).

Добавление действия для отправки SMS

Также не забудьте добавить действие для отправки SMS. Для этого в меню Configuration выберите меню Action, и далее строку Trigger Actions.

Щелкните кнопку Create action, а затем добавьте действие SMS Notify, как это показано на рис. 25.

Рис. 25. Добавление действия SMS Notify

Рис. 25. Добавление действия SMS Notify

Добавьте операцию на вкладке Operations (рис. 26).

Рис. 26. Добавление операции для отправки SMS

Рис. 26. Добавление операции для отправки SMS

Для того чтобы отправляемое сообщение соответствовало шаблону без модерации, настройте операцию с помощью ссылки Edit.

У сообщения должна быть тема {TRIGGER.NAME}:, а само сообщение должно выглядеть так:

{ITEM.NAME1} ({HOST.NAME1}:{ITEM.KEY1}): {ITEM.VALUE1}

Кроме того, выберите в поле Send to users пользователя Admin.

Настроенная операция показана на рис. 27.

Рис. 27. Настроенная операция

Рис. 27. Настроенная операция

Тестирование отправки SMS при недоступности сервера

Для тестирования используйте какой-нибудь некритичный сервер, например, виртуальную машину, которую можно безопасно останавливать и запускать заново. Добавьте ее в узлы на сервере Zabbix и подключите шаблон ICMP Ping. Установите в этом шаблоне для метрики Unavailable by ICMP ping уровень серьезности Disaster.

Теперь, если вы завершите работу этой машины, то получите сообщение SMS (рис. 28).

Рис. 28. Пример сообщения SMS о недоступности узла

Рис. 28. Пример сообщения SMS о недоступности узла

SMS выглядят не так красиво, как сообщения в Telegram, однако они придут туда, где нет интернета.

Оповещение от Zabbix по телефону

Сообщение SMS легко пропустить, а вот на вызов по телефону вы скорее всего отреагируете (конечно, если в смартфоне не отключен звук).

Для повышения вероятности реагирования настроим отправку оповещений о катастрофических проблемах уровня Disaster голосовым звонком на телефон с использованием сервиса Звонобот.

Настройка голосовых звонков аналогична только что рассмотренной настройке для SMS, поэтому мы остановимся только на основных моментах.

Прежде всего, мы сделаем так, чтобы звонок поступал не сразу после обнаружения аварии, а через 10 минут. Дело в том, что часто недоступность сервера может быть кратковременной, после чего все восстанавливается само по себе, и звонить будет уже не нужно. Так бывает, например, при возникновении непродолжительных проблем в сети или при временной потере связности дата-центров.

Кроме того, если становятся недоступными сразу несколько серверов, нам достаточно получить только один звонок по телефону. И еще не повредит повторный звонок через полчаса, если в первый раз дозвониться не удалось.

Добавление способа оповещения Zvonobot

Добавьте в Media types новый способ оповещения Zvonobot, аналогично тому, как мы добавляли способ p1sms.ru (рис. 29).

Рис. 29. Добавление способа оповещения Zvonobot

Рис. 29. Добавление способа оповещения Zvonobot

Выберите в списке Type строку Script, а в поле Script name введите имя скрипта zvonobot.pl. Кроме того, добавьте параметры, как это показано на рис. 29.

Скрипт zvonobot.pl можно скачать здесь.

Не забудьте переименовать скрипт перед его размещением в каталоге /usr/lib/zabbix/alertscripts.

Сделайте владельцем скрипта пользователя zabbix и разрешите запуск скрипта:

# chown zabbix:zabbix /usr/lib/zabbix/alertscripts/zvonobot.pl
# chmod +x /usr/lib/zabbix/alertscripts/zvonobot.pl

Проверьте, что владелец и права установлены правильно:

ls -lh /usr/lib/zabbix/alertscripts/zvonobot.pl
-rwxr-xr-x 1 zabbix zabbix 4.8K Oct 17 15:40 /usr/lib/zabbix/alertscripts/zvonobot.pl

Отредактируйте в скрипте три строки:

my $api_key = '';
my $phone_number  = '';
my $outgoingPhone = '';

Ключ $api_key можно получить по адресу: https://lk.zvonobot.ru/panel/profile в личном кабинете после регистрации в сервисе Звонобот.

Для работы скрипта  zvonobot.pl нужно установить на сервер Zabbix memcached, а также необходимые модули Perl:

  • LWP::UserAgent

  • HTTP::Request

  • JSON

  • Data::Dumper

Вам также потребуется два номера телефона. В переменную $phone_number запишите номер телефона, на который будет звонить Zabbix при обнаружении катастрофической проблемы (в формате 7*****).

Второй номер телефона запишите в переменную $outgoingPhone. Телефон с этим номером потребуется вам всего один раз для получения SMS от сервиса Звонобот. Звонки будут поступать именно от этого исходящего номера, поэтому вам их будет легко идентифицировать. Исходящий номер должен быть добавлен как личный и подтвержден в разделе ДРУГОЕ Номера телефонов личного кабинета https://lk.zvonobot.ru/panel/phones.

После добавления способа оповещения Zvonobot протестируйте его с помощью ссылки Test. В поле Send to укажите номер телефона, на который должны приходить звонки от Zabbix (рис. 30).

Рис. 30. Тестирование способа оповещения Zvonobot

Рис. 30. Тестирование способа оповещения Zvonobot

При успешном тестировании вы получите звонок, и робот произнесет синтезированным голосом текст сообщения Message, а также тему Subject.

Назначение способа оповещения Zvonobot пользователю Zabbix

Выберите в меню Administration раздел Users, щелкните имя пользователя Admin, а затем откройте вкладку Media. Добавьте способ оповещения Zvonobot, как это было показано ранее на рис. 4.

В поле Use if severity отметьте флажок Disaster, чтобы звонки поступали только при самых серьезных проблемах.

Добавление типа оповещения в действия

Добавьте действия для способа Zvonobot. Как и раньше, в меню Configuration выберите меню Action, далее строку Trigger Actions, а затем щелкните кнопку Create action.

Мы создали действие DISASTER_ALERT_Phone_CALL, определив для него сразу две операции, имеющие отношение к способу Zvonobot (рис. 31).

Рис. 31. Операции для Zvonobot

Рис. 31. Операции для Zvonobot

Обратите внимание, что в поле Steps мы указали шаг эскалации 2-2, а в поле Step duration (длительность шага эскалации) — значение 20 минут (рис. 32). 

Рис. 32. Настройка операции для Zvonobot

Рис. 32. Настройка операции для Zvonobot

На рис. 31 видно, что сразу после возникновения проблемы категории Disaster сообщение отправляется в Telegram, затем на электронную почту (шаг эскалации 1-1). Еще через 10 минут выполняется звонок через сервис Звонобот (шаг 2-2), который потом повторяется через 30 минут (шаг 3-3).

Когда сработают все шаги эскалации, на основной панели Zabbix Global View можно будет увидеть время и результат завершения каждого шага (рис. 33).

Рис. 33. Время и результат завершения шагов эскалации

Рис. 33. Время и результат завершения шагов эскалации

Применение эскалации описано в документации (для версии 6.0 на русском языке).

Исключение повторных звонков

Чтобы исключить повторные звонки, которые могут поступить при одновременном отказе нескольких контролируемых хостов, в скрипте zvonobot.pl вызывается функция not_recently_called:

if(not_recently_called(20*60))
{
  phone_call_zvonobot($api_url, $api_key, $phone_number, $outgoingPhone, $message);
}

Она создает в memcached ключ “Zabbix_phone_monitor” со значением “Phone was called”, который будет автоматически удален по истечении заданного времени (в нашем случае через 20 минут).

Автор: Александр Фролов.


0

1

На подкроватном сервере настроил zabbix сервер. Настроил уведомления на телеграмм.
Но столкнулся с проблемой что не работают Поддерживаемые макросы.

В способах уведомлений — телеграмм в поле To используется макрос {ALERT.SENDTO} который как я понимаю берет ID комнаты/пользователя из настройки оповещений пользователя. Но этот макрос не работает. ID не подхватывается и при тестировании отправки выводится ошибка «Sending failed: Bad Request: chat not found.»
Если же в способах уведомлений — телеграмм в поле To вбить ID пользователя то сообщение приходит. Но с текстом {ALERT.MESSAGE}. Тоесть как я понимаю не отрабатывает скрипт {ALERT.MESSAGE}.

В Узлы сети — test — Макросы — Макросы узла сети и унаследованные, таких макросов нет. Есть только макросы унаследованные от шаблонов которые я добавлял.
Правда я не уверен должны ли они там быть

Как я понял эти скрипты идут в поставке с заббиксом и их не нужно вручную прописывать. Подскажите где можно их найти и как проверить почему они не работают?

Is your Zabbix not sending email alerts? We can help you.

Zabbix mail notification is a cool feature that helps us stay updated with the errors our Server faces.

At Bobcares, we often fix errors related to Zabbix as a part of our Server Management Services.

Today, let’s have a look at the reason for this error to occur. We’ll also see how our Support Engineers fix this error.

Why doesn’t Zabbix send email alerts?

In Zabbix, the notification can be set to receive from an email account. It helps us to monitor the alerts quickly.

The common reason for the failure is because of incorrect Mail configuration in Zabbix.

Other reasons are the Zabbix administrator group or if the Action configuration is incorrect.

Let’s now discuss how our Support Engineers resolve this error for our customers.

How we fix Zabbix not sending email alerts

Recently one of our customers contacted us saying that he was not able to receive email alerts. Let’s see how our Support Engineers fix this problem.

Zabbix Mail configuration incorrect

We followed the below steps to fix the email alerts problem in Zabbix.

1. First, we click on Administration then we select Media types.

2. Next, we click on Email from the pre-defined Media types.

3. On the Email properties screen, we enter the below details.

SMTP server - E-mail server IP address or Hostname.
SMTP server port - SMTP port of the e-mail server.
SMTP helo - Domain name of your e-mail address.
SMTP email - the E-mail address to send notification
Connection Security - The security protocol to connect to the E-mail server.
Authentication - The username and password of the e-mail account

4. Next, check the Enabled option.

5. Once we add the details we click on the Add button.

After this change, the customer was able to receive the mail successfully.

Email notification not sending for Zabbix administrators group

Recently one of our customers contacted us regarding the email not sending issue. On analyzing the Zabbix we found that the action was not enabled. Let’s discuss how our Support Engineers enable action.

By default, only the user Admin is a member of the Zabbix administrators group. Also, no mail accounts are associated with the account.

1. First, we verify if there are any email accounts associated with the administrator group.

2. On the user profile screen, We verify the Email configuration.

3. Then, in the Media tab, we click on the Disabled word to enable it.

Finally, the customer was able to receive emails after the change.

Action configuration incorrect

If we don’t enable the actions in the Zabbix the mail will fail to receive.

So it is very necessary to define what action should do. And this can be done in the Operations tab.

1. We click on New in operation tab which will open an operation form.

2. Here, we click on Add under the Send to Users block and select the right user.

3. Then we select ‘Email‘ as the value of Send only to.

4. After that, click on Add in the operation detail block.

Finally, the notification was sent successfully.

[Need further assistance with Zabbix errors? – We’ll help you]

Conclusion

In short, incorrect configuration in Zabbix will cause the error. Also, we have discussed how our Support Engineers correct different configurations to resolve the error.

PREVENT YOUR SERVER FROM CRASHING!

Never again lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.

GET STARTED

var google_conversion_label = «owonCMyG5nEQ0aD71QM»;

Profile picture for user Олег

Zabbix

В пятом ZABBIX появилось много встроенных типов уведомлений. Если раньше была возможность отправить письмо или SMS, то теперь есть вебхуки для уведомлений в Discord, Telegram, Slack, Microsoft Teams, Jira, Redmine и прочее, на скриншоте будет виден полный список. Однако самый первый тип уведомлений, который будет настраивать системный администратор — это Email.

Настройка Email уведомлений в ZABBIX 5 немного изменилась, система стала, на мой взгляд, удобнее и логичнее.

Переходим в раздел Administration > Media types.

zabbix

Все лишние типы уведомлений переводим в статус Disabled. Для Email устанавливаем (оставляем) статус Enabled.

Нажимаем на Email. Здесь нужно указать параметры почтового сервера для отправки сообщений.

zabbix

  • Name: Email.
  • Type: Email
  • SMTP server: указываем адрес почтового сервера, через который будем отправлять письма
  • SMTP server port: порт для отправки писем, по умолчанию TCP 25
  • SMTP helo: текст приветствия, который будем отправлять почтовому серверу, обычно он совпадает с доменом или именем сервера
  • SMTP email: адрес отправителя
  • Connection security: настройки безопасности соединения
  • Authentication: тип аутентификации
  • Message format: формат сообщения: текст или HTML.
  • Description: описание
  • Enabled: устанавливаем галку для включения

Указываем настройки своего почтового сервера. Update.

Если проскроллить страничку вправо (этот момент мне не нравится, весь интерфейс заточен на большие мониторы, неудобно), то можно найти ссылку Test, которая позволяет отправить тестовое письмо.

zabbix

Нажимаю Test.

zabbix

  • Send to: указываем адрес получателя
  • Subject: тема письма
  • Message: текст письма

Test.

Если ZABBIX не сможет отправить сообщение, то получим ошибку «Media type test failed«. В этом случае нужно разбираться, все ли порты открыты, правильно ли указаны настройки почтового сервера, разрешено ли почтовому серверу отправлять письма с IP адреса ZABBIX сервера…

zabbix

Если ZABBIX сможет отправить сообщение, то увидим «Media type test successful«.

zabbix

Теперь нужно разрешить ZABBIX серверу отправлять сообщения о проблемах администраторам. Переходим в раздел Configuration > Actions.

zabbix

Здесь есть предустановленное действие Report problems to Zabbix administrators. Оно отправит уведомления через активные Media всем участникам группы Zabbix administrators. Переводим его в статус Enabled. Можно ткнуть в данное действие и настроить его под свои реалии, можно добавить своё действие, можно для каждого типа уведомления настроить разные действия. Можно выполнять действия для других групп пользователей. Меня пока всё устраивает, я есть в группе Zabbix administrators, так что действие должно для меня сработать.

Теперь нужно настроить свой профиль (или профиль другого пользователя), чтобы включить возможность получения писем. Переходим в раздел User Settings, вкладка Media.

zabbix

Ни одного Media типа нет. Нажимаем Add.

zabbix

  • Type: Email
  • Send to: email-адрес, на который слать письма, может быть несколько.
  • When active: время активности, дни недели и время, в которое можно отправлять сообщения
  • Use if severity: какие типы сообщения (по степени важности) отправлять
  • Enabled: ставим галку

Add.

email

Минимальные настройки для получения уведомлений на почту заданы.

  • Ошибка при тестировании базы данных 1с
  • Ошибка при татуаже губ
  • Ошибка при сохранении файла скрипта изменения не сохранены bitrix
  • Ошибка при таможенном оформлении алиэкспресс
  • Ошибка при сохранении файла null