Система мониторинга состояния VLESS VPN-соединений с уведомлениями в Telegram и интеграцией с Prometheus/Grafana.
- 🔍 Мониторинг состояния VLESS VPN серверов
- 📊 Измерение времени отклика, скорости и доступности сайтов
- 📡 TCP-пинг для оценки стабильности соединения
- 📈 Интеграция с Prometheus для визуализации метрик
- 🤖 Уведомления в Telegram об изменении статуса серверов
- 📋 Ежедневные сводные отчеты
- 🐳 Работает в Docker для простоты установки и обслуживания
Скопируйте и выполните следующую команду для автоматической установки:
curl -s -L https://github.com/gopnikgame/vless_monitoring/raw/main/install.sh | sudo bash
- Linux сервер (Ubuntu/Debian рекомендуется)
- Docker и Docker Compose
- Интернет-соединение для загрузки контейнеров и проверки VPN
- VLESS-подписка в формате base64 или файл с подпиской
- Клонируйте репозиторий:
git clone https://github.com/gopnikgame/vless_monitoring.git cd vless_monitoring
- Запустите скрипт установки:
chmod +x launcher.sh sudo ./launcher.sh
-
Отредактируйте
config.json
для настройки параметров мониторинга:- Добавьте Telegram Bot Token и Chat ID для уведомлений
- Укажите VLESS-подписку (в base64 или путь к файлу)
- Настройте интервалы проверки и список тестируемых сайтов
- Включите/отключите Prometheus метрики
-
Запустите мониторинг через меню управления:
./scripts/manage_bot.sh
Основной конфигурационный файл config.json
содержит следующие параметры:
Параметр | Описание |
---|---|
subscription_base64 |
VLESS подписка в base64 формате |
subscription_file |
Путь к файлу с подпиской |
use_subscription_file |
Использовать файл вместо строки base64 |
status_file |
Путь к файлу для хранения статусов |
v2ray_bin |
Путь к исполняемому файлу Xray/V2Ray |
telegram_bot_token |
Токен Telegram бота для уведомлений |
telegram_admin_chat_id |
ID чата для отправки уведомлений |
check_interval |
Интервал между проверками (секунды) |
connection_timeout |
Таймаут соединения (секунды) |
retries |
Количество попыток при сбое |
test_sites |
Массив сайтов для проверки |
prometheus.enabled |
Включить Prometheus метрики |
prometheus.port |
Порт для Prometheus метрик |
performance_test |
Настройки тестирования производительности |
Для визуализации метрик мониторинга:
- Включите Prometheus метрики через меню управления (
опция 8
) или напрямую вconfig.json
- Настройте Prometheus для сбора метрик с вашего сервера (порт 9111 по умолчанию)
- Импортируйте готовую панель Grafana из файла
grafana/vless_monitoring_dashboard.json
- Используйте скрипт для автоматической настройки Grafana и проверки статуса метрик.
Доступные метрики:
vpn_server_up
- Статус доступности VPN сервераvpn_success_rate
- Процент успешно загруженных сайтовvpn_connection_time_ms
- Время установки соединенияvpn_site_up
- Доступность конкретных сайтовvpn_site_response_time_ms
- Время отклика сайтовvpn_tcp_ping_ms
- TCP пинг до сайтовvpn_download_speed_mbps
- Скорость загрузкиvpn_prometheus_status
- Статус Prometheus метрик
Бот отправляет следующие уведомления:
- Изменение статуса VPN серверов (с OK на ERROR и обратно)
- Ежедневные отчеты со статистикой в 9:00 утра
- Уведомление о запуске мониторинга
Запустите ./scripts/manage_bot.sh
для доступа к меню управления:
- ⬆️ Обновить из репозитория
- 📝 Создать или редактировать файл конфигурации
- 🚀 Собрать и запустить контейнер мониторинга
- ⏹️ Остановить и удалить контейнер мониторинга
- 📊 Показать все логи
- ❌ Показать логи ошибок
- 🔄 Перезапустить мониторинг
- 📈 Включить Prometheus метрики
- 🔍 Проверить статус Prometheus метрик
- 🧹 Очистить Docker и временные файлы
Логи мониторинга доступны в:
/opt/vless_monitoring/logs/monitor.log
- Основной лог/opt/vless_monitoring/logs/error.log
- Лог ошибок
Просмотр логов из Docker:
docker logs vless-monitor
Обновление до последней версии:
cd /opt/vless_monitoring ./scripts/manage_bot.sh
Затем выберите опцию 1 в меню для обновления из репозитория.
Предложения и улучшения приветствуются! Вы можете:
- Форкнуть репозиторий
- Создать ветку для вашей функции (
git checkout -b feature/amazing-feature
) - Зафиксировать изменения (
git commit -m 'Add amazing feature'
) - Отправить ветку (
git push origin feature/amazing-feature
) - Открыть Pull Request
Распространяется под лицензией MIT. Смотрите файл LICENSE для получения дополнительной информации.
Telegram: @main_line