Для 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 вашего чата.
Прячем пароли и выкладываем python telegram bot на github
Для этого следуйте инструкциям, приведенным в этом руководстве: 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]
Как создать Telegram-бота с помощью Python
Автоматизированные чат-боты весьма полезны для стимулирования взаимодействия. Мы можем создавать таких ботов для Slack, Discord и других платформ. В этой статье я расскажу вам, как создать Telegram-бота, который расскажет вам ваш гороскоп. Итак, давайте приступим!
Как получить токен бота
1. Чтобы создать нового Telegram-бота, вам нужно поговорить с BotFather. Нет, это не человек: это тоже бот, и он является боссом всех ботов Telegram.
2. Начните разговор с BotFather, нажав на кнопку “Start”.
3. Введите /newbot и следуйте подсказкам, чтобы настроить нового бота. BotFather выдаст вам токен, который вы будете использовать для аутентификации вашего бота и предоставления ему доступа к API Telegram.
Примечание: Токен нужно хранить в надежном месте. Любой человек, имеющий доступ к вашему токену, может легко манипулировать вашим ботом.
Как настроить среду для программирования
Давайте настроим среду для кодинга. Хотя для создания Telegram-ботов существует много библиотек, мы будем использовать pyTelegramBotAPI. Это простая, но расширяемая реализация Python для Telegram Bot API с синхронными и асинхронными возможностями.
Установите библиотеку pyTelegramBotAPI с помощью pip:
pip install pyTelegramBotAPI
Затем откройте ваш любимый редактор кода и создайте файл .env для хранения вашего токена, как показано ниже:
export BOT_TOKEN=your-bot-token-here
После этого выполните команду source .env , чтобы считать переменные окружения из файла .env.
Как создать первого Telegram-бота
Все реализации API хранятся в одном классе под названием TeleBot . Он предлагает множество способов прослушивания входящих сообщений, а также функции send_message() , send_document() и другие для отправки сообщений.
Создайте новый файл bot.py и вставьте в него следующий код:
import os import telebot BOT_TOKEN = os.environ.get(‘BOT_TOKEN’) bot = telebot.TeleBot(BOT_TOKEN)
В приведенном выше коде мы используем библиотеку os , чтобы прочитать переменные окружения, хранящиеся в нашей системе.