Home » Zabbix » Мониторинг числа подписчиков канала telegram в Zabbix

Мониторинг числа подписчиков канала telegram в Zabbix

Хочу поделиться небольшой заметкой на тему мониторинга за объектами популярного мессенджера. Я расскажу, как мониторить число подписчиков в каналах и группах telegram с помощью Zabbix. Благодаря гибкости как заббикса, так и телеграма, сделать это очень просто.

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужно пройти .

Мониторинг числа подписчиков канала telegram в Zabbix

Введение

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

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

  1. Установка CentOS 8.
  2. Настройка CentOS 8.
  3. Установка и настройка zabbix сервера.

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

  1. Установка Debian 10.
  2. Базовая настройка Debian.
  3. Установка и настройка zabbix на debian.

Переходим непосредственно к настройке мониторинга за подписчиками.

Как получить информацию о подписчиках в telegram

У Telegram отличное api, с помощью которого можно взаимодействовать с мессенджером. Конкретно о числе подписчиков можно узнать с помощью метода getChatMembersCount. В качестве параметра ему нужно передать id чата или имя публичного канала. Покажу на примере своего чата https://t.me/srv_admins и канала https://t.me/srv_admin.

Протестируем запрос на количество подписчиков с помощью curl из консоли сервера мониторинга zabbix.

# curl -s https://api.telegram.org/bot654532507:AAHBacH_3OpjGtPeWwNmTrk12J6Hc/getChatMembersCount?chat_id=@srv_admin
{"ok":true,"result":4325}

Получили ответ в формате json. Он отлично подходит для zabbix, так как последний умеет из коробки парсить json. У вас есть 2 варианта дальнейшей настройки мониторинга:

  1. Сделать скрипт на сервере, который будет слать запросы в api telegram и передавать полученное значение в zabbix с помощью агента. Плюс решения в том, что нагрузка на сервер мониторинга минимальная. Неудобство в том, что нужно куда-то добавлять скрипт.
  2. Слать запросы к api напрямую с zabbix сервера с помощью HTTP Агента. И сразу там же парсить полученный ответ. Плюс этого подхода в том, что все настройки хранятся в шаблоне и легко сохраняются или переносятся через экспорт шаблона. Минус в том, что все вычисления и запросы выполняются самим заббиксом.

Я обычно иду по второму пути, потому что так удобнее.

Мониторинг подписчиков telegram в Zabbix

Переходим в web интерфейс zabbix-server, создаем новый шаблон и добавляем туда новый item.

Создание item для мониторинга за подписчиками

В качестве url указано следующее значение:

https://api.telegram.org/bot{$TOKEN_BOT}/getChatMembersCount?chat_id={$CHANNEL_NAME}

Ниже указан Тип информации: Числовой (целое положительное). В предобработке делаем фильтр по JSONPath, чтобы получить числовое значение из json.

Предобработка ответа от telegram api

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

Макросы шаблона

Из основного все. По аналогии делается мониторинг за пользователями группы (чата). Вот пример моего шаблона - zabbix-telegram.xml. Не забудьте указать свои макросы для названий канала, группы и токена бота.

В шаблоне несколько айтемов:

  • TG Group - число подписчиков группы, обновляется раз в 10 минут;
  • TG Chat - число подписчиков чата, обновляется раз в 10 минут;
  • Изменение подписчиков - зависимый элемент данных, фиксирует относительное изменение числа подписчиков группы после каждой проверки;
  • Изменения за сутки - сумма значений предыдущего айтема изменение подписчиков за последние 24 часа;
  • Подписчики по дням - запускается раз в сутки в 23:59, чтобы зафиксировать количество подписчиков в этот день.

Все айтемы шаблона мониторинга подписчиков telegram в zabbix

На этом у меня по мониторингу подписчиков телеграм в zabbix все.

Заключение

Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

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

и т.д. Больше примеров смотрите в разделе Zabbix.

Онлайн курс по Linux

Если у вас есть желание освоить операционную систему Linux, не имея подходящего опыта, рекомендую познакомиться с онлайн-курсом Administrator Linux. Basic в OTUS. Курс для новичков, адаптирован для тех, кто только начинает изучение Linux. Обучение длится 4 месяца. Что даст вам этот курс:
  • Вы получите навыки администрирования Linux (структура Linux, основные команды, работа с файлами и ПО).
  • Вы рассмотрите следующий стек технологий: Zabbix, Prometheus, TCP/IP, nginx, Apache, MySQL, Bash, Docker, Git, nosql, grfana, ELK.
  • Умение настраивать веб-сервера, базы данных (mysql и nosql) и работа с сетью.
  • Мониторинг и логирование на базе Zabbix, Prometheus, Grafana и ELK.
  • Научитесь командной работе с помощью Git и Docker.
Смотрите подробнее программу по .

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Zerox
Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству.

One comment

  1. Аватар
    Виталий

    Статья супер.

Добавить комментарий

Ваш адрес email не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.