Для web-мастеров самым важным остается стабильность в работе серверов, однако как оперативно реагировать и устранять возникшие проблемы в их работе? С этой задачей лучше всего справится Telegram бот, написанный на Python, для мониторинга состояния Ubuntu сервера который будет автоматически отправлять Вам уведомления о недоступности тех или иных компонентов для оперативного реагирования и устранения возникших проблем.
Для автоматизации оповещений о недоступности веб-серверов Nginx, Apache, MySQL и других на Ubuntu сервере с помощью Telegram-бота на Python необходимо выполнить следующие шаги:
Установка необходимых пакетов
Перед тем как начать установку, необходимо убедиться, что сервер имеет Python 3, pip и git.
Чтобы установить их, выполните следующие команды в терминале:
sudo apt update sudo apt install python3 python3-pip git
Создание нового Telegram-бота
Прежде чем мы начнем написание кода бота, необходимо создать Telegram-бота, получить его API-ключ и узнать ID вашего чата.
TelegramBot + Python: пересылаем сообщения в Ваш чат
Для этого следуйте инструкциям, приведенным в этом руководстве: https://core.telegram.org/bots#6-botfather.
Клонирование репозитория для отправки уведомлений
Создайте новый каталог для проекта и склонируйте репозиторий, содержащий код для отправки уведомлений, с помощью следующих команд:
mkdir notify-telegram-bot cd notify-telegram-bot git clone https://github.com/python-telegram-bot/python-telegram-bot.git
Установка зависимостей
Перейдите в каталог python-telegram-bot, который вы только что склонировали, и установите зависимости с помощью команды:
cd python-telegram-bot pip3 install -r requirements.txt
Написание кода бота
Перейдем к написанию самого кода Telegram бота на Python, который будет выполнять мониторинг состояния Ubuntu сервера. Для этого откройте файл examples/echobot2.py с помощью любого текстового редактора и замените содержимое файла следующим кодом:
import telegram import subprocess bot = telegram.Bot(token=’YOUR_API_KEY’) chat_id = ‘YOUR_CHAT_ID’ def is_server_up(service_name): process = subprocess.run([‘systemctl’, ‘status’, service_name], stdout=subprocess.PIPE) output = process.stdout.decode(‘utf-8’) return ‘Active: active (running)’ in output def check_services(): services = for service in services: if not is_server_up(service): message = services[service] + ‘ is not running!’ bot.send_message(chat_id=chat_id, text=message) if __name__ == ‘__main__’: check_services()
Замените YOUR_API_KEY на API-ключ вашего бота и YOUR_CHAT_ID на ID вашего чата.
Проверка бота
Сохраните файл и запустите его с помощью команды:
python3 echobot2.py
Если все настроено правильно, бот должен отправить сообщение в ваш Telegram-чат, указывая, что сервер недоступен.
Автоматизация проверки доступности сервера
Теперь, когда бот работает, необходимо настроить автоматическую проверку состояния сервера. Для этого создайте файл check_services.py с помощью любого текстового редактора и добавьте следующий код:
import time import os while True: os.system(‘python3 /path/to/echobot2.py’) time.sleep(300)
Замените /path/to/echobot2.py на полный путь к файлу echobot2.py , который вы только что создали.
Этот код будет проверять состояние сервера каждые 5 минут.
Запуск проверки в фоновом режиме
Чтобы запустить проверку в фоновом режиме, выполните следующую команду:
nohup python3 /path/to/check_services.py https://virtirio.com/blog/telegram-%D0%B1%D0%BE%D1%82/» target=»_blank»]virtirio.com[/mask_link]
КАК ОТПРАВИТЬ СТИКЕР В ТЕЛЕГРАММЕ БОТ PYTHON
Для отправки стикеров в Telegram ботах на Python необходимо использовать библиотеку python-telegram-bot. Сначала необходимо установить эту библиотеку при помощи pip:
pip install python-telegram-bot
Далее, необходимо создать экземпляр класса Updater и привязать его к токену Telegram бота. Затем можно быстро реализовать отправку стикеров, используя метод send_sticker. Вот простой пример кода, который отправляет стикер:
from telegram import Botbot = Bot(token=’TOKEN’)bot.send_sticker(chat_id=’CHAT_ID’, sticker=’https://example.com/sticker.jpg’)
Вместо ‘TOKEN’ вставьте токен Telegram бота, а вместо ‘CHAT_ID’ вставьте ID чата (например, ID вашего личного чата с ботом). Вместо ‘https://example.com/sticker.jpg’ нужно указать URL стикера, который вы хотите отправить.
Создание Telegram бота с нуля Урок 4 Кнопки, Стикеры, Смайлики
ТЕЛЕГРАММ БОТ НА PYTHON ЗА 8 МИНУТ — Отправка файлов, обработка нажатия на кнопки клавиатуры
ОТПРАВКА СТИКЕРОВ И ИХ ID # Урок 5 — AIOGRAM (для чайников) — ПРОГРАММИРОВАНИЕ ПО ПЛЕЙЛИСТАМ
РАБОТА СО СТИКЕРАМИ — ПРАКТИКА # Урок 6 — AIOGRAM (для чайников) — ПРОГРАММИРОВАНИЕ ПО ПЛЕЙЛИСТАМ
Пишем TELEGRAM бота на Python
Отправка фото Telegram Bot на python
Get sticker id bot
КАК Я РАСКРУТИЛ ТЕЛЕГРАМ КАНАЛ с 0 до 50 000 за 24 часа
Создание телеграм-ботов на python (telebot) #7 / Отправка файлов в телеграм боте
BLGPG-D03DC62620CB-23-10-02-20
Новые материалы:
- Книга python микросервисы
- Ide для python
- Python arcade уроки
- Python xor шифрование
- Pycharm подсветка синтаксиса python
- Python как убрать знаки после запятой
- Python как использовать numba
- Перевод в радианы из градусов python
- Python скачать anaconda
- Периодическая десятичная дробь python
Источник: pygame.ru
Telegram bot python как отправить сообщение в канал
Частенько прожжёные сисадмины, у которых на предприятии всё давным-давно налажено и автоматизировано по полной программе задаются вопросом, чем можно заняться в свободное время, чтобы поднять бабла на фрилансе? Вариантов заработка для шарящего компуктерщика сегодня не мало. Можно удалённо админить сервера Майнкрафт в датацентре, создавать сайты и посадочные страницы для тёлочек из инсты, заниматься продвижением гавно-групп из контакта или вообще кидать людей на лавэ в онлайн-играх.
Но согласитесь, все эти мракобесные виды заработка весьма далеки от созидательной деятельности, к которой привык любой мало-мальски интеллектуальный ITшник с IQ выше сотки.
Нам, как обычно, хочется чего-то великого, общественно значимого и при этом не сильно напряжного. Да ещё чтоб платили за это достойно и непременно в долларовом эквиваленте.
Именно поэтому, сегодня, я расскажу вам о том, как быстро и без лишних головняков в виде знания программирования можно создать рабочего Telegram-бота на Python.
Такого бота запросто можно продать на фрилансе и получить за это 50, а в случае особо жирного заказа от какого-нибудь интернет-магазина и все 150 долларов, как с куста.
В общем, если вам интересна тематика программирования на Питоне, вы любите быстрый и лёгкий заработок, а также не чураетесь саморазвития в таком направлении, как разработка ботов для Телеги, тогда устраивайтесь по удобней, наливайте себе 300 грамм новичка. И будем начинать.
Регистрация на Sprintbox
Для того, чтобы создать бота я буду использовать высокоскоростную виртуальную машину на внешнем сервере от Sprintbox. Если в вкратце, то спринтбокс – это мощные VDS-сервера. Так называемые боксы.
Их можно настроить, как вам угодно. Установить готовый популярный дистрибутив выбрав его инсталляшку из вариантов в панели управления сервиса.
Либо же накатить собственную операционную систему вручную. Можно установить сервер в игре майнкрафт, задеплоить любые типы ботов. Дискорд, VK и, разумеется, Telegram. Куда ж без него.
Именно ради него родимого мы с вами сегодня и собрались. Прежде всего давайте пройдём регистрацию на портале. Вводим на главной странице электронную почту, желаемый пассворд для входа и кликаем на заветную кнопку.
Перед нами та самая панель управления, в которой нам сходу предлагают поставить дистрибутив.
В меню слева можно подключиться к партнёрской программе, активировать фаервол, врубить защиту от внешних DDoS-атак, прикупить доменное имя и конечно же сделать бэкап наших боксов.
Мне пока что бэкапить нечего, поэтому давайте создадим бокс и установим в него образ Ubuntu.
Выбираем из списка тариф. Обращаю ваше внимание, что несмотря на то, что оплата указывается за месяц, запустить бокс вы сможете даже если на вашем счету будет всего 100 рублей.
После того, как закините сотку на счёт, можно запустить созданный бокс посредством VNC веб-клиента не выходя из панели.
Настройка виртуального стенда
Первым делом, зайдём под рутом используя те данные, которые пришли нам на почту и поменяем пароль от данного пользователя на своей собственный. Акцентирую внимание новичков на том, что в Linux-системах пароль не отображается на экране, но при этом вводится. Так что не пугайтесь, что вместо набираемого пароля в командной строке вы видите пустоту.
После того, как пассворд рута успешно поменян, самое время проверить, не появились ли актуальные обновы для нашей убунты. Вводим apt-get update с ключом yes и дожидаемся завершения операции.
Затем делаем apt-upgrade с тем же параметром.
Как вы знаете, работать под суперпользователем root очень небезопасно. А у нас тут вроде как канал, топящий за безопасность везде и во всём. Поэтому давайте создадим отдельного пользователя в нашей системе. Вводим adduser bot. И задаём для него безопасный пароль.
После ввода пароля система предлагает заполнить информацию о новом пользователе. Все поля, кроме пароля, не обязательны. Жмякаем Enter для подстановки значений по умолчанию.
Подготовка окружения
Далее, давайте установим менеджер пакетов pip. В дальнейшем он пригодится для загрузки библиотек для питона. Вводим apt install python3-pip.
И дождавшись завершения операции завершаем сеанс пользователя root командой logout
Логинимся под созданным ранее пользователем Bot. И приступаем к созданию виртуального окружения. Это нужно для того, чтобы устанавливать дополнительные модули для разных проектов и избегать появляющихся конфликтов.
Вводим команду pip3 install virtualenv —user. Ключ —user установит модуль локально для нашего пользователя bot.
Далее нужно добавить виртуальное окружение в системные пути пользователя.
Создаём новое окружение введя соответствующую команду. Ключ —system-site-packages задействует внутри окружения модули, ранее установленные в системе, а python – представляет собой произвольное имя нового виртуального окружения.
Давайте его активируем.
А затем установим модули, которые нам потребуются для запуска бота. В первую очередь это конечно же pyTelegramBotAPI.
Регистрация бота
После того, как «папа» вежливо спросит, как будет называться ваш бот и какое имя необходимо указать пользователю, вам будет выдан уникальный токен для API.
Создание бота в Telegram на Python
Окружение подготовлено, бот зарегистрирован, а значит можно начинать кодить, попутно теребонькая маленького питончика. Лёгким движением создаём директорию для хранения файлов проекта.
Внутри неё создаём конфигурационный файл, в котором будут храниться данные нашего поистине масштабнейшего проекта.
Добавляем в файл токен и сохраняем внесённые изменения.
Гуд. Далее в том же каталоге создаём файл самого бота.
И применяя навыки мамкиного программера тихим сапом начинаем набивать гавно-код. Сначала активируем виртуальное окружение, которым будет пользоваться бот.
Затем даём команду на импорт нужных библиотек и настроек из config.py.
Даём ему возможность отвечать на стандартную команду /start.
А эта часть кода позволит боту повторять тексты всех отправленных ему сообщений. Так называемый попугай.
Добавим строчку отвечающую за постоянную обработку информации, приходящей с серверов Telegram.
И можно в принципе сохранять изменения. Окей. Запускаем файл с ботом.
И пробуем обратиться к нему в телеге командой /start. Бот отвечает нам бодрейшим приветствием.
Теперь давайте затестим режим попугая. Введём произвольный текст. Вуаля. Всё работает, как часы.
В данном примере, мы запустили бота прямым вызовом интерпретатора Python в консоли. Поэтому очевидно, что работать он будет, только пока активна сессия SSH.
Однако, можно запустить его в tmux или screen и автоматизировать мониторинг работы с помощью системных демонов Linux. Более подробно про эту движуху вы можете почитать в базе знаний спринтбокса.
Ведь именно на основе здешней инструкции «Создание telegram-ботов на Python» и был подготовлен весь сегодняшний материал. Однако, я сознательно утаил пару последних строчек, чтобы вы имели возможность самостоятельно поработать с интересными мануалами.
Если же вдруг вы не справитесь, то всегда можно обратиться в техническую поддержку сервиса. Сотрудники незамедлительно вам ответят и постараются решить все проблемы в максимально короткие сроки.
Само-собой это не самый совершенный бот из всех существующих. Да и я не профессиональный программер, занимающийся исключительно ботами в телеграмме.
Я всего лишь блогер, который своей деятельностью пытается донести до подписчиков сложные вещи максимально простым языком. И меня очень радует, что в последнее время на рынке отечественных разработок появляются подобные сервисы.
Ну вот скажите, могли бы вы подумать, ещё каких-то 2-3 года назад, что за пару сотен рублей можно поднять действительно мощный внешний сервак с возможностью безопасного подключения и управлением через телегу?
Да-да, вы сейчас не ослышались. Боксами также можно легко управлять посредством удобно-настроенного одноимённого бота Спринтхост. Мега удобная тема. Особенно для тех, кто админя кучу проектов вынужден вечно мотаться в командировки.
Посмотреть статус, ребутнуть и даже отрубить тачку в случае критичного инцидента, можно буквально в несколько кликов с мобилы. А если вы ещё заюзаете мой промокод, то непременно получите 50% кэшбек при первом пополнении счёта.
Так что, ребятки, не тупим. Сворачиваем этот унылый видос и идём создавать рабочий бот для общения, заработка или продаж на базе VDS от Спринтбокса прямо сейчас.
Главное про бэкапы и снапшоты не забывайте. А то будете потом, как я, по 300 раз одну и ту же портянку из кода вбивать. Ладненько. До новых встреч, мои кайфные друже. Всем пока.
Источник: kurets.ru