img

PRTG уведомления в Telegram

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

Своего рода стандартом в ИТ является PRTG (Paessler Router Traffic Grapher), которая может отправлять уведомления о событиях через e-mail, SMS, Push-уведомлений. Сегодня сложно представить кого-то, кто не пользуется хоть одним мессенджером. Среди них особо выделяется Telegram, который пользуется популярностью благодаря своей безопасности и функционалу. Здесь можно создать своего бота, который будет выполнять все ваши команды исходя из поставленной задачи. В одном из материалов мы рассказывали уже о том, как использовать Telegram для управления "Умным домом".

Здесь же расскажем о том, как интегрировать Telegram в PRTG и получать уведомления не на почту, на Telegram. Принцип работы такой: система мониторинга, в нашем случае PRTG, отправляет сообщения боту, а тот в свою очередь выводит их группу.

Что нам нужно

  • Telegram аккаунт
  • Группа, куда будем добавлять нашего бота
  • Доступ с PRTG сервера на https://api.telegram.org/

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

Для начала нам нужно создать бота, в чем на поможет "The Botfather". Начинаем новый чат с ним в Telegram:

создать бота, в чем на поможет The Botfather

Командой /newbot под руководством Botfather начинаем создание бота. Задаем ему имя, которое будет отображаться и имя пользователя:

Команда /newbot

После этих несложных манипуляций получаем API токен нашего бота, который используем в будущем. По умолчанию, бот может быть добавлен в любую группу и может получать сообщения от кого угодно. Ограничить это можно в настройках приватности, которые доступны командами /setprivacy и /setjoingroups.

Далее добавляем бота в группу, где находятся администраторы и другой заинтересованный персонал.

добавляем бота в группу добавляем бота в группу

Через группу посылаем боту сообщение /start, чтобы активировать его. Затем уже настраиваем политики приватности, о которых говорилось выше. С созданием бота закончили, теперь нужно настроить получение уведомлений


Настройка уведомлений

Помните, в конце создания бота нам выдали API ключ. Перейдите по следующей ссылке, предварительно подставив вместо <apikey> API ключ вашего бота:

https://api.telegram.org/bot<apikey>/getMe

Вы должны получить что-то подобное:

{ "ok": true, "result": {  "id": 1234567890,  "first_name": "PRTGNotiBot",  "username": "PRTGNotificationBot" }}

Если вышли какие-то ошибки, убедитесь, что API ключ введён правильно. Далее открываем ту же ссылку, только вместо getMe подставляем getUpdates. Мы получим список чатов, в которые добавлен наш бот.

{ "ok": true, "result": [{  "update_id": 521075218,  "message": {   "message_id": 3,   "from": {    "id": 11512298,    "first_name": "xxxxxxxxx",    "last_name": "xxxxxxxxx",    "username": "xxxxxxxxx"   },   "chat": {    "id":-12345690,    "title": "[Paessler] IT",    "type": "group",    "all_members_are_administrators": true   },   "date": 1493834122,   "text": "/start",   "entities": [{    "type": "bot_command",    "offset": 0,    "length": 6   }]  } }]}

Из этого вывода нам нужен идентификатор чата, включая знак "-". Теперь мы готовы создать шаблон уведомления в PRTG. Переходим в Setup > Account Settings > Notifications.

создать шаблон уведомления в PRTG

Добавляем новый шаблон уведомления:

Добавляем новый шаблон уведомления

Выбираем вводим название шаблона, выбираем тип сенсора (рекомендуем pingsensor)

выбираем тип сенсора рекомендуем pingsensor

В качестве шаблона выбираем HTTP. Вводим ссылку https://api.telegram.org/bot<your-api-key>/sendMessage, подставив API токен вашего бота.

 качестве шаблона выбираем HTTP

В строку Postdata вводим следующие строки:

chat_id=-<your-chat-id>&text=There's a *%status* sensor in your PRTG![%sensor](%linksensor)*Last Message* %lastmessage*Down since* %since*Device* %device*Group* %group&parse_mode=Markdown
  • chat-id идентификатор чата, который получили выше.
  • text текст сообщения, который будет отправлять бот. Текст можно изменять по вашему усмотрению.
  • %status переменная PRTG. Звездочки вокруг него это стиль редактирования Telegram API. Как именно обрабатывать стиль указано в конце текста параметром parse_mode=Markdown.

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

chat_id=-123456890&text=%device% is *%status*!&parse_mode=Markdown

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

Затем можно отправить тестовое сообщение, в результате чего должны получить что-то подобное:

отправить тестовое сообщение

Если все прошло успешно, нужно привязать шаблон к конкретному сенсору. Чтобы система не бомбила ваш Telegram из-за незначительных событий, лучше привязать шаблон к сенсору PING. Для этого переходим на вкладку Devices, среди сенсоров нужного устройства наводим курсор мыши на сенсор PING и кликаем на иконку звоночка.

кликаем на иконку звоночка

Открывается страница добавления уведомлений. Выбираем Add State Trigger заполняем поля согласно политике организации. Можно сделать как на скриншоте:

Add State Trigger

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

Вот и всё. Думаю материал окажется полезным для вас.

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
Системное администрирование
Скидка 10%
Администратор Linux
Стань Linux администратором и сделай весомый шаг в сторону карьеры в DevOps. Самые важные знания от сертифицированного и практикующего тренера с 20 летним стажем
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
Fail2ban — это программное обеспечение, которое защищает ваш сервер от атак. ПО отслеживает журналы сервера и выявляет любую под
img
Виртуализация серверов — популярная тема в мире ИТ, особенно на уровне предприятий. Она позволяет разным операционным системам з
img
  Введение Системные вызовы выступают в роли посредников между приложениями и ядром. Они создают уровень абстракции, который защ
img
  Введение SWAP (SWAP-память или SWAP-пространство) – это раздел жесткого диска или SSD компьютера, где операционная система (ОС
img
  Введение Абсолютные и относительные пути определяют расположение файла или каталога в файловой системе. Это набор инструкций д
img
  Введение Файлы конфигурации Linux определяют поведение и функциональное наполнение операционной системы. Файлы конфигурации –
ЗИМНИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59