Telegram failed error cannot get url timeout was reached

Ответили на вопрос 2 человека. Оцените лучшие ответы! И подпишитесь на вопрос, чтобы узнавать о появлении новых ответов.

Как пофиксить ошибку в заббикс при отправке тестового уведомления?

Пытался сделать отправление уведомлений через бота в телеграмме, не выдает след.ошибку:
Sending failed: Error: cannot get URL: Timeout was reached..

Журнал оповещения:
00:00:00.000 [Отладка] [Telegram Webhook] URL: https://api.telegram.org/bot/sendMessage
00:00:00.000 [Отладка] [Telegram Webhook] params {«chat_id»:»7xxxx099″,»text»:»КУnТЕСТОВОЕ»,»disable_web_page_preview»:true,»disable_notification»:false}
00:00:10.001 [Отладка] [Telegram Webhook] notification failed: Error: cannot get URL: Timeout was reached.


  • Вопрос задан

    17 июн. 2022

  • 404 просмотра

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

Пригласить эксперта

Очевидно, что сервер с Zabbix-ом не имеет доступа в Интернет, TCP-пакеты на 443 порт не проходят. Пробуйте на сервере консольную команду telnet api.telegram.org 443, если нет соединения — ищите где блокируется трафик. Если соединение есть — значит уже на самом сервере кто-то блокирует… А может у api.telegram.org неправильный IP?


  • Показать ещё
    Загружается…

10 февр. 2023, в 04:49

50000 руб./за проект

10 февр. 2023, в 02:20

3000 руб./за проект

10 февр. 2023, в 01:33

1500 руб./за проект

Минуточку внимания

Содержание

  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]

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

              Источник

              Since i had adjusted this (not too much, as Telegram only allows 50MB files anyway) im getting a lot of connection errors:

              Logger: telegram.vendor.ptb_urllib3.urllib3.connectionpool
              Source: /usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py:690
              First occurred: March 25, 2020, 7:59:02 AM (598 occurrences)
              Last logged: 6:18:41 AM
              
              Retrying (Retry(total=1, connect=None, read=None, redirect=None)) after connection broken by 'NewConnectionError('<telegram.vendor.ptb_urllib3.urllib3.connection.VerifiedHTTPSConnection object at 0x7f0a0567a190>: Failed to establish a new connection: [Errno -3] Try again')': /bot521998571:AAGWQAU-mxxWyixkolbUIMaApJVAXI1r4mA/getUpdates
              Retrying (Retry(total=2, connect=None, read=None, redirect=None)) after connection broken by 'NewConnectionError('<telegram.vendor.ptb_urllib3.urllib3.connection.VerifiedHTTPSConnection object at 0x7f0a04837c50>: Failed to establish a new connection: [Errno -3] Try again')': /bot521998571:AAGWQAU-mxxWyixkolbUIMaApJVAXI1r4mA/getUpdates
              Retrying (Retry(total=2, connect=None, read=None, redirect=None)) after connection broken by 'NewConnectionError('<telegram.vendor.ptb_urllib3.urllib3.connection.VerifiedHTTPSConnection object at 0x7f09fce74750>: Failed to establish a new connection: [Errno -3] Try again')': /bot521998571:AAGWQAU-mxxWyixkolbUIMaApJVAXI1r4mA/getUpdates
              Retrying (Retry(total=1, connect=None, read=None, redirect=None)) after connection broken by 'NewConnectionError('<telegram.vendor.ptb_urllib3.urllib3.connection.VerifiedHTTPSConnection object at 0x7f0a047688d0>: Failed to establish a new connection: [Errno -3] Try again')': /bot521998571:AAGWQAU-mxxWyixkolbUIMaApJVAXI1r4mA/getUpdates
              Retrying (Retry(total=0, connect=None, read=None, redirect=None)) after connection broken by 'NewConnectionError('<telegram.vendor.ptb_urllib3.urllib3.connection.VerifiedHTTPSConnection object at 0x7f0a046c3b10>: Failed to establish a new connection: [Errno -3] Try again')': /bot521998571:AAGWQAU-mxxWyixkolbUIMaApJVAXI1r4mA/getUpdates
              

              /public/img/default_profile_50.png

              Статья была полезной?

              Если при отправке сообщения через Telegram оно не было доставлено пользователю, то такое сообщение получает статус «Ошибка».

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

              Сообщения со статусом «Ошибка» можно просмотреть из статистики каждой отправленной рассылки.

              Детали ошибки (её описание) можно увидеть в колонке «Статус»:

              Также информацию по полученной ошибке можно будет увидеть при переходе в конкретное письмо:

              Открытое таким образом сообщение содержит в себе текст в том виде, в котором оно было отправлено пользователю.

              Наиболее распространённые ошибки и их значения:

              • user is deactivated — пользователь удалил свой номер телефона на стороне телеграм или его номер телефона находится в процессе деактивации.
              • phone number invalid — пользователь неверно указал свой номер телефона на стороне телеграм.
              • bad request chat not found — пользователь не написал ничего в ваш телеграм бот. Пользователю нужно написать сообщение в бот, прежде чем бот сможет написать сообщение пользователю.
              • [400]Bad Request: wrong HTTP URL — возникает при неверном указании ссылки в рассылке telegram. Чаще всего это связано с опечаткой в ссылке.
              • [400]Bad Request: can’t parse entities: Unexpected end tag at byte offset — может возникать в случае, если в теле письма были не закрыты какие-либо HTML-теги.
              • [400]Bad Request: MEDIA_CAPTION_TOO_LONG — Эта ошибка связана с ограничением в количестве символов в подписи к медиафайлам (1024 символа, включая пробелы).
              • [400]Bad Request: message is too long — говорит о том, что количество используемых символов в тексте письма превысило 4096 символов. Данное значение установлено самим Телеграмом.
              • [400]Bad Request: wrong file identifier/HTTP URL specified — ссылается на неверный идентификатор файла. Обратите внимание, что при использовании «image url» изображение должно быть в формате «.jpeg».
              • [400]Bad Request: failed to get HTTP URL content или Bad Request: wrong file identifier/HTTP URL specified — могут возникать в случае, если превышен максимальный размер вложения (5 мб для картинок и 20 мб для других типов файлов).
              • [400]Bad Request: unsupported URL protocol — возникает из-за неправильного указания ссылки в синтаксисе кнопки. Например, при наличии лишнего пробела.
              • bot was blocked by the user — пользователь удалил чат с ботом на стороне телеграм, таким образом отписавшись от получения сообщений.
              • bad request chat not found — пользователь не написал ничего в ваш телеграм бот. Пользователю нужно написать сообщение в бот, прежде чем бот сможет написать сообщение пользователю.

              После получения указанных выше ошибок происходит автоматическая отписка пользователя от вашего телеграм-бота. Статус его подписки изменяется с «Подключен» на «Отключен».

              Понравилась статья? Поделить с друзьями:
            • Telegram ext dispatcher error no error handlers are registered logging exception
            • Telegram error telegramerror
            • Telegram error python
            • Telegram error badrequest inline keyboard expected
            • Telegram error badrequest chat not found