Перейти к содержанию

Telegram боты

ShivaVPN использует четыре бота:

Бот Назначение Статус
User Bot Клиентский (~279K пользователей) Активен (screen sessions, Docker готовится)
Audit Bot v2 DevOps диагностика Активен (Docker, 10.99.87.5)
Alert Bot Алерты инфраструктуры Активен (Grafana Alerting)
Speedtest Bot Мониторинг скорости VPN Активен (88.210.53.146)

User Bot

Репозиторий: telegram-user-bot/ | GitLab: project #58

Функции: управление подпиской, скачивание конфигов, тикеты поддержки (forum threads), промокоды, реферальная программа, оплата (YooKassa, Heleket, Revolut, Telegram Stars, NowPayments).

Stack: Python 3.12, aiogram 3.22, 3K LOC, 17 роутеров.

Production (текущий, screen sessions)

Сервер: 212.70.189.68:2255 (karmann2), пользователь kadmin

# SSH
ssh -J root@212.70.189.60:2255 -p 2255 -i ~/.ssh/id_ed25519_shivavpn root@212.70.189.68

# Статус
su - kadmin -c 'screen -ls'
ps aux | grep bot.py

# Перезапуск RU бота
kill $(pgrep -f 'shivavpn/src/shivavpn/bot.py')
su - kadmin -c 'cd /home/kadmin/telegram_bots/shivavpn/src/shivavpn && \
  screen -S shiva_bot -X stuff "python3 bot.py\n"'

# Логи
su - kadmin -c 'screen -S shiva_bot -X hardcopy /tmp/bot.txt' && tail -50 /tmp/bot.txt

Инстансы: RU (shiva_bot) и EN (en_shivavpn) в отдельных screen-сессиях.

Docker (тестовый, в подготовке)

# CI/CD: push → auto build → manual deploy-test
cd telegram-user-bot && ./deploy-test.sh
# Target: 212.70.189.68:/opt/shivavpn-userbot-test/

После успешного тестирования — раскомментировать deploy_prod в .gitlab-ci.yml.


Audit Bot v2

Репозиторий: telegram-audit-bot/ | GitLab: project #56

Сервер: 10.99.87.5 (Docker, /opt/shivavpn-bot/)

Доступ: whitelist — 3 Telegram ID.

Функции:

  • /audit <account_id> — полный аудит: MySQL + VPN конфиги + VUSA + devices + cached configs
  • Детальные кнопки: Devices, VUSA Status, Configs, Backend Logs, VLESS Keys
  • Resync — принудительный sync аккаунта на всех серверах
  • Автодетект рассинхрона XRAY/VUSA/Configs
  • Статус серверов по странам
  • Дневные метрики: выручка, регистрации, активные пользователи
# Деплой
cd telegram-audit-bot
nano .env   # Bot token, user IDs, ADMIN_PASSWORD
./deploy.sh # Деплой на 10.99.87.5 через jump host

Alert Bot (Grafana Alerting)

Управляется через Grafana UI, не отдельный процесс.

URL: https://monitor.karmann.tech/alerting/notifications

Contact Points

Имя Chat ID Назначение
tg -1003053411512 Общий канал (infra алерты, repeat 4h)
tg-vpn 28795547 (zardes DM) VPN алерты (repeat 1h)
tg-kumo -5021213637 Uptime Shiva группа (все алерты, repeat 1h)

Routing

Все алерты → tg-kumo (continue=true)
category=vpn → tg-vpn
default → tg

Алерт правила

Категория Алерты
VPN Config Service Worker Unhealthy, Servers DOWN, Config Service Down, Sync Too Slow
Backend Backend Down, Account Pool Low
Infra RAM, CPU, DISK, Inodes
Sync Sync Stale, Online Sync Age

Speedtest Bot

Сервер: 88.210.53.146 | Chat ID: -5091990619

Запускает speed tests каждый час по 23 странам. Результаты в vpn_health.json.

ssh root@88.210.53.146 \
  'cat /root/проверки/xray_speedtest-auto-check/vpn_health.json'

Deprecated

alertmanager-bot — отключён с Feb 2023, заменён Grafana Alerting. Конфиг остался на km-proxy01 (212.70.189.60), но не запущен.