Телеграм бот странички о себе

angle

Собственный info-бот в Телеграм

Лирическое предисловие которое можно не читать:
Мониторинга много не бывает. Даже если все работает нормально — почему бы в этом не убедится лишний раз.
Готовых решений в интернетах кучи, но захотелось мне чего то своего. При том с заделом на универсальность. Что бы использовать то что я напишу для конкретной задачи — на другие — похожие и не похожие
Это моя первая попытка сваять что то своими руками с помощью бота в телеграме, так что прошу сильно ногами не пинать. Я не программист и скорее всего то что я делаю вызывает гомерический хохот у людей, так сказать, в Теме. Но, я пишу, в первую очередь для себя, ну и если мой опыт кому то поможет — то почему нет?

Постановка задачи:
Отправить в телеграм сообщение что на вашем сервере/сайте/ноде что то случилось. Я буду изначально тренироваться на ноде Massa, которая установлена на сервере с Ubuntu, но задача может быть масштабируемая.

Пишем Телеграм Бота для Автопостинга новостей с Хабра | Телеграм бот + Парсер

Принцип работы:
Система состоит из двух компонентов. Некоторого датчика расположенного на самом сервере и телеграм-бота куда этот датчик будет отправлять сообщение об изменении контролируемого объекта.

Настройка первого компонента — создание собственного info-бота в телеграме

Создаем нового бота в Telegram

Собственный info-бот в Телеграм

В ответ вы получите список команд по управлению ботов.

Собственный info-бот в Телеграм

Выберите или напечатайте и отправьте команду /newbot

Придумайте имя своему боту — это то как он будет отображаться визуально. В данном примере я придумал my_nodes_info_bot

Собственный info-бот в Телеграм

Собственный info-бот в Телеграм

Следующим шагом вас попросят придумать никнейм боту. Что бы его можно было найти в Телеграме,
Обязательное условие — ваша придумка должна обязательно заканчиваться тремя конкретными буквами, а именно «bot»
И естественно что имя должно быть уникально.
Если все прошло нормально — бот выдаст вам линк на вашего бота и токен для его управления.
И то и другое нам понадобится ниже по гайду.

Еще по теме:  Как кинуть в бан в Телеграмме в чате

Собственный info-бот в Телеграм

Итого у нас получилось два необходимых параметра:
token бота: 6116867621:AAEE7WXKR_YAxwsf3k3pydQFdYeob7PqJQk
id чата: 6004109057
Проверяем отправку сообщения через любой браузер, подставляя наши параметры в запрос:
https://api.telegram.org/bot/sendMessage?chat_id=text=Hello%20World

Собственный info-бот в Телеграм
И в нашего бота прилетает сообщение «Hello World»
Собственный info-бот в Телеграм

На этом самая легкая часть нашего гайда закончена.
Теперь переходим к сложному.

Второе лирическое отступление
Какую именно информацию вы хотите доставить в свой Телеграм-канал ограничивается только полетом вашей не здоровой фантазии и опытом написания скриптов.
Тут даже сложно ограничится какими то рамками примеров. Ну, банальные параметры типа загрузки CPU, места на диске, информация о памяти мы рассматривать не будем.
Готовых примеров в Сети море, и если вам будет интересно с легкостью разберетесь сами.
Мы же будем писать код для тех кому лень напрягать мозги, для кого копи-паст и так в напряг.

Скрипты для мониторинга
Тут нужно понимать что сам скрипт тоже состоит из двух частей. Первая часть — это та часть которая добывает нам нужную информацию. И вторая часть это та которая эту информацию отправит нам в Телеграм-чат. Первая часть всегда разная, вторая остается неизменной.

Мониторинг «живости» ноды Маssа
Поскольку ru-сегмент Сети пытается обмануть судьбу везде и во всем, выбирая что подешевле, то естественно качество страдает. Но мы не ищем легких путей, поэтому будем заниматься садомазохизмом и наблюдать за агонией нашей ноды вместе.
Теперь без нравоучений — Данный скрипт предназначен для отслеживания состояния ноды. И если нода переходит из рабочего состояния в не рабочее или на оборот — вам в Телеграм придет соответствующее уведомление.
(Если говорить на сленге — то сообщение будет приходить если нода «забутстрапилась» или если она, нода, «слетела»)
(На некоторых хостингах, в частности на PQ, была отмечена такая негативная особенность — если в скрипте есть русские буквы — при добавлении его он, скрипт полностью ломается. Так что если это ваш случай, нужно заменить сообщения на русском, на сообщения на английском)

Еще по теме:  Создание рабочей странички в ТГ

(Блок ниже нужно скопировать предварительно в «Блокнот», не в Word, это важно, и вставить ваши ТОКЕН БОТА и ЧАТ ID, затем вставить сразу весь код, в командной строке, не построчно.)

sudo tee /root/nodesup.sh > /dev/null ‘) if [ -z «$node» ] [ «$key» -eq «1» ]; then /usr/bin/curl —socks5-basic -X POST «https://api.telegram.org/bot$TG_BOT_ID/sendMessage» -d «chat_id=$TG_CHAT_ID» -d «text=Ваша нода упала.» echo «0» > $HOME/key elif [ -n «$node» ] [ «$key» -eq «0» ]; then /usr/bin/curl —socks5-basic -X POST «https://api.telegram.org/bot$TG_BOT_ID/sendMessage» -d «chat_id=$TG_CHAT_ID» -d «text=Ваша нода поднялась.» echo «1» > $HOME/key fi EOF

Создаем файл где будет хранится предыдущее состояние ноды (0 — лежала, 1 — работала )

printf «0» > /root/key

Добавляем задание демону cron на выполнение файла nodesup.sh каждую минуту
Будем использовать локальный демон. Задание будет находиться в файле nodesup и располагаться в папке /etc/cron.d/

Файл crontab

(Блок ниже нужно скопировать и вставить сразу весь, в командной строке, не построчно.)

printf «SHELL=/bin/bash */1 * * * * root /bin/bash /root/nodesup.sh > /dev/null 2> > /etc/cron.d/nodesup

С логами решил пока не заморачиватся. Все равно в них ни кто не смотрит. Если кому то будет нужно — добавим.

Устанавливаем curl
curl — это утилита командной строки для отправки и получения данных по различным протоколам, таким как HTTP, HTTPS, FTP, SMTP и другим. Она позволяет взаимодействовать с серверами и выполнять различные операции, такие как загрузка файлов, отправка запросов, скачивание содержимого веб-страниц и многое другое. Есть вероятность что он уже установлен в системе и данное действие будет избыточным, но выполнив команду ниже вы точно ничего не сломаете

apt install curl

Как удалить скрипт:

Если вы решили что данный скрипт вам не подходит его легко можно удалить
Удаляем сам скрипт:

Еще по теме:  Как писать сообщения от имени группы в Телеграмме

/usr/bin/rm $HOME/nodesup.sh

Удаляем файл запуска скрипта по времени

/usr/bin/rm /etc/cron.d/nodesup

Самое главное — что же вы должны в итоге увидеть?

Можно обвесить сообщения «рюшечками», например ip или сервера, если у вас нод больше чем одна.
Время сколько она проработала или на оборот была в отключке. Но это уже оставляю на самостоятельную работу.

В данном конкретном гайде отслеживается конкретный порт Massa по которому мы и определяем жива нода или нет. Скажу что практически у каждой ноды есть такой порт. И достаточно поменять номер порта в скрипте и вы сможете отслеживать практически любую ноду

Если у вас есть вопросы по тексту статьи или вы просто хотите «напихать» автору — добро пожаловать в мой телеграм-канал

Источник: galayda.com

Рейтинг
( Пока оценок нет )
Загрузка ...