Мониторинг сервера в Telegram

Telegram — один из самых популярных сегодня мессенджеров. И если вы его активный пользователь, то сегодня покажу как, можно получать статистику, выполнять Shell-запросы и настраивать оповещения.

Я на всех своих серверах использую Debian, поэтому буду описывать процедуру установки на этой ОС.

Установка бота

Обновим список пакетов в системе:

$ apt-get update

Установим Python3:

$ apt-get install python3

Ставим систему управления python-пакетами:

$ wget https://bootstrap.pypa.io/get-pip.py
$ python3 get-pip.py

Ставим либы, которые нужны боту:

$ pip install telepot
$ apt-get install python3-psutil

Отлично, теперь ставим Git и клонируем репозиторий с ботом:

$ apt-get install git
$ git https://github.com/vladios13/ServerStatsBot.git 
$ cd ServerStatsBot
$ pip3 install -r requirements.txt 

Настраиваем бота:

Перейдём в директорию бота:

$ cd ServerStatsBot

Теперь нам нужно создать бота и получить токен у BotFather в Telegram. Этот токен нужно скопировать в файл tokens.py.

Выполняем, переименовав файл:

$ cp tokens.py_example tokens.py

Редактируем tokens.py:

$ nano tokens.py

В качестве значения параметра telegrambot указываем токен, а параметр adminchatid где, указываем ID группы или пользователя.

После внесения всех правок файл должен выглядеть так:

# Токен бота

telegrambot = '9999999:6666aaaaaa666666a6aaa'

# Введите chat_id канала/группы/пользователя. Можно использовать несколько значений, подробнее в readme.md

adminchatid = [99999999] 

Сохраняем все изменения и запускаем бота:

$ python3 servstatsbot.py

Бонус!

Сделаем так, что бы бот автоматически запускался при загрузке системы.

Создаем юнит-файл для настройки автозапуска:

$ nano /etc/systemd/system/tgstatsbot.service

Скопируем следующие строки:

[Unit]

Description=Telegram Status Bot
After=multi-user.target

[Service]

Type=idle
ExecStart=/usr/bin/python3 /root/ServerStatsBot/servstatsbot.py
Restart=always
 
[Install]

WantedBy=multi-user.target

Сохраняем и активируем сервис:

$ systemctl daemon-reload
$ systemctl enable tgstatsbot.service

Запускаем бота в режиме демона:

$ systemctl start tgstatsbot.service

Теперь бот в случае какого-либо сбоя будет перезапускаться автоматически.

Автор

vladios13

IT-шник, интернетчик.