Содержание[Скрыть]
Введение
Telegram — один из самых популярных сегодня мессенджеров. Одной из самых интересных его особенностей является возможность создания специализированных сервисов на базе ботов.
В этой статье мы расскажем, как установить и настроить бота ServerStatsBot, с помощью которого вы сможете в любой момент получить актуальную информацию о работе серверов в Vscale: увидеть статистику потребления памяти, дискового пространства, получить информацию о загрузке процессора и т.п.
Требования
- Debian 8 64bit;
- пользователь с привилегиями root.
Установка бота
Обновим список пакетов в системе:
$ apt-get update
После этого установим Python3
$ apt-get install python3
Также нам потребуется система управления python-пакетами:
$ wget https://bootstrap.pypa.io/get-pip.py $ python3 get-pip.py
Для работы с ботом нужны библиотеки Telepot, Psutil и matplotlib. Установим их:
$ pip install telepot $ apt-get install python3-psutil $ apt-get install python3-matplotlib
Вот и всё, все необходимые зависимости установлены. Установим Git и клонируем репозиторий с ботом:
$ apt-get install git $ git clone https://github.com/geekbeard/ServerStatsBot.git
Настройка бота
Перейдём в директорию с исходным кодом бота:
$ cd ServerStatsBot
Через Telegram обратимся к BotFather (так называется специальный бот, предназначенный для управления всеми остальными ботами) и получить у него токен. Этот токен нужно скопировать в файл tokens.py.
Выполним команду:
$ cp tokens.py_example tokens.py
Откроем файл token.py в текстовом редакторе:
$ nano tokens.py
В качестве значения параметра telegrambot указываем токен, а параметр adminchatid пока что не меняем (о нём ещё пойдёт речь ниже).
После внесения всех правок файл должен выглядеть так:
# A token you get from the Telegram's botfather telegrambot = 'токен, полученный от Bot Father' # A chat_id of your client adminchatid = [99999999]
Сохраняем все изменения и запускаем бота:
$ python3 servstatsbot.py
Теперь нам нужно получить adminchatid. Для этого отправим боту через Telegram любую команду (полный список команд опубликован здесь). После этого на консоль будет выведено значения параметра adminchatid:
root@XXXXXX:~/ServerStatsBot# python3 servstatsbot.py Your chat_id:1234567
Бот может отправлять сообщения только обезличенно, по идентификатору чата. Поэтому нам потребуется вставить полученное значение в файл tokens.py (заменить цифры 99999999).
Остановим бота (Ctrl-C) и отредактируем этот файл:
$ nano tokens.py
После внесения всех изменений файл должен выглядеть так:
# A token you get from the Telegram's botfather telegrambot = 'токен, олученный от Bot Father' # A chat_id of your client adminchatid = [ВАШ_CHAT_ID]
После этого бота можно запускать снова:
$ python3 servstatsbot.py
Теперь бот может отправлять сообщения непосредственно в чат администратору.
Управление ботом: основные команды
Бот может выполнять следующие команды:
- /stats — выводит на консоль основную статистику сервера (аптайм, данные об использовании памяти и дискового пространства, статистику загрузки CPU);
- /shell — предоставляет доступ к командной оболочке сервера и даёт возможность выполнять команды прямо через чат в Telegram;
- /memgraph — отправляет в чат график потребления памяти;
- /setmem — устанавливает лимит потребления памяти, по превышении которого будут рассылаться уведомления;
- /setpoll — задаёт частоту опроса сервера в секундах.
Автозапуск бота
Сделаем так, чтобы при запуске сервера автоматически запускался и наш бот.
Для этого обратимся к systemd и создадим для бота юнит-файл (так называются файлы, в которых прописаны настройки автозапуска):
$ nano /etc/systemd/system/statsbot.service
Скопируем в него следующие строки:
[Unit] Description=ServerStatsTelegramBot 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 statsbot.service
После этого можно запускать бота в режиме демона:
$ systemctl start statsbot.service
Теперь бот будет работать даже после того, как мы выйдем из SSH-сессии. В случае какого-либо сбоя он будет перезапускаться автоматически.
Заключение
В этой статье мы научились устанавливать и настраивать бота ServerStatsBot. Теперь вы сможете в любой момент получать информацию о состоянии вашего сервера и даже выполнять простейшие задачи по удалённому администрированию с помощью смартфона или планшета.
Ваш комментарий будет первым