Телеграм-бот для мониторинга состояния сервера. По команде или нажатию кнопки собирает метрики хоста через psutil и присылает читаемый отчёт.
- Сводка (
/status) — CPU, RAM, swap, средняя нагрузка (load average), аптайм, ОС. - Диски (
/disks) — использование по каждому смонтированному разделу. - Сеть (
/net) — объём переданных данных, пакеты, число активных соединений. - Процессы (
/top) — топ процессов по потреблению CPU и памяти.
Все действия также доступны через инлайн-кнопки под сообщением.

cd /opt
git clone <ваш-репозиторий> server-status-bot # или скопируйте файлы
cd server-status-bot
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt- Создайте бота у @BotFather и получите токен.
- Узнайте свой Telegram user id (например, у @userinfobot).
- Скопируйте пример конфига и заполните его:
cp .env.example .env
nano .envBOT_TOKEN=123456789:AAE...
ALLOWED_USER_IDS=123456789 # через запятую, если несколько
⚠️ Безопасность: еслиALLOWED_USER_IDSоставить пустым, бот будет отвечать любому пользователю Telegram и раскрывать данные вашего сервера. На боевом сервере всегда указывайте разрешённых пользователей.
Вручную (для проверки):
source .venv/bin/activate
python bot.pyКак systemd-сервис (рекомендуется для сервера):
# отредактируйте User и пути в unit-файле под свой сервер
sudo cp server-status-bot.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now server-status-bot
sudo systemctl status server-status-bot # проверить состояние
journalctl -u server-status-bot -f # смотреть логи- Некоторые метрики (число сетевых соединений, часть процессов) требуют прав. Если запускать не от root, отдельные поля могут показывать «н/д» — это нормально и не ломает бота.
- Бот работает в режиме long polling, входящий порт открывать не нужно.
- Сбор метрик вынесен в отдельные потоки (
asyncio.to_thread), чтобы psutil не блокировал event loop.
Если понадобится, бота легко расширить: мониторинг конкретных systemd-сервисов и портов, проверка HTTP-эндпоинтов, статус Docker-контейнеров, а также автоматические алерты (например, при CPU > 90% присылать сообщение самому).