Sending failed error cannot get url timeout was reached

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

Содержание

  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 минут самая подходящая интенсивность для меня.

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

Источник

Log inSkip to main contentSkip to sidebar

Uploaded image for project: 'ZABBIX BUGS AND ISSUES'

  1. ZABBIX BUGS AND ISSUES
  2. ZBX-18939

Log In

Export

    XMLWordPrintable

Details


    • Type:


      Incident report

    • Status:

      Closed


    • Priority:


      Trivial

    • Resolution:

      Commercial support required


    • Affects Version/s:


      None

    • Fix Version/s:



      None


    • Component/s:


      None


    • Labels:

      None

    Description

      Steps to reproduce:

      1. Changes in configuration…
      2. Navigate to screen title…
      3. Click on screen element…

      Result:
      See screenshot…
      See log file…
      See memory dump…
      Expected:
      See screenshot….
      See attached patch file…

      Attachments

        Attachments

          • Sort By Name
          • Sort By Date
          • Ascending
          • Descending
          • Thumbnails
          • List
          • Download All
        1. Capture.PNG

          Capture.PNG
          41 kB
          2021 Jan 29 08:31

        Activity

          People

            Assignee:

            zabbix.support
            Zabbix Support Team

            Reporter:

            sysadmin_xomic
            Bhaskar Soni

            Votes:
            0

            Vote for this issue

            Watchers:

            3

            Start watching this issue

            Dates

              Created:

              2021 Jan 29 08:17
              Updated:

              2021 Feb 01 09:07
              Resolved:

              2021 Feb 01 09:07

              Отправка уведомлений из 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 через Telegram? Нет ничего проще!

              Есть для этого готовый бот и Telegram API

              Бот присылает все, что было в специальном HTTP GET запросе вида:

              TOKEN — токен выданный ботом при его добавлении в список контактов Telegram

              MESSAGE — собственно сообщение, которые хотите передать.

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

              Добавление бота

              После нажатия на START бот пришлет нам уникальный ключ «Token«

              Ну вот и все. На этом наше общение с ботом окончено. Теперь только он нам будет писать то, что нам необходимо.

              Настройка Zabbix Telegram

              Создание скрипта

              Данный скрипт сохраняем с произвольным именем, например. telegram.sh в директорию Zabbix’а, где хранятся скрипты уведомлений (в Freebsd по умолчанию это директория:
              /usr/local/zabbix32/zabbix/alertscripts/ — (Для версии 3.2)

              Делаем наш скрипт исполняемым:

              Выдаем zabbix права на этот скрипт:

              Настройка способа оповещения через telegram

              Имя — Произвольное

              Тип — Скрипт

              Имя скрипта — так, как вы назвали скрипт при его создании

              Параметры срипта:

              (Это как раз и есть наши $1, $2 и $3)

              И ставим галочку «Активировано«

              И нажимаем Добавить (у меня обновить, так как он уже создан у меня)

              Добавление способа оповещения пользователю

              В появившемся окне выбираем тип — под каким именем мы создали действие, вставляем наш токен, который выдал нам бот и нажимаем «Добавить«

              После этого у пользователя в Оповещениях появится новый способ оповещения. Нажимаем «Обновить«.

              Теперь нам осталось только создать действий, по которому нам будет приходить какое-либо сообщение.

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

              Действие:

              Имя — Пишем любое понятное для нас имя

              Условие — Настраиваем условие, при котором будет происходит наше действие (ниже я приведу пример 1 из своих действий)

              Операции:

              Выбираем что будет присылаться нам во время срабатывание нашего условия

              В операциях нажимаем Новый и добавляем наш способ оповещения:

              Должно получиться что то типа вот этого.

              На вкдадке Операции восстановления Выбираем в операциях «оповещение о восстановлении», чтобы знать, что проблема ушла.

              И нажимаем «Добавить«. В принцип на этом этапе мы уже все настроили!

              Заключение

              Вот что мы в принципе видим в окне самого Telegram:

              Собственно ничего сложного нет. Это настроить гораздо быстрее чем все это прочитать или тем более все это написать. Если возникнут трудности — пишите в комментарии. Постараюсь помочь.

              ]# wget -O /dev/null http://crierbot.appspot.com/LhbTlCHK. 4gqnwN8kGfE9aJz/send?message=TEST —2019-07-19 14:44:37— http://crierbot.appspot.com/LhbTlCHK. 4gqnwN8kGfE9aJz/send?message=TEST Resolving crierbot.appspot.com (crierbot.appspot.com). 64.233.162.153, 2a00:1450:4010:c05::99 Connecting to crierbot.appspot.com (crierbot.appspot.com)|64.233.162.153|:80. connected. HTTP request sent, awaiting response. 200 OK Length: 0 [text/html] Saving to: ‘/dev/null’ [ ] 0 —.-K/s in 0s 2019-07-19 14:44:38 (0.00 B/s) — ‘/dev/null’ saved [0/0]

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

              Источник

              Понравилась статья? Поделить с друзьями:
            • Sending failed error cannot convert request contents to utf8
            • See the 5185 error code documentation for details axserverconnect adsconnect
            • Sending error report over smapi is disabled negative priority skipping перевод
            • See sap note 1797736 for error analysis
            • Sedo gateway api soap sedogateway сервера https sedo fss ru произошла ошибка