Перейти к содержимому

Xray Checker

Модуль Xray Checker ставит внешний мониторинг нод: чекер живёт на отдельном сервере, забирает настоящую подписку из панели и проверяет каждый прокси так, как это делал бы обычный пользователь. Упавшая нода, сбой дата-центра или задыхающаяся сеть видны снаружи сразу, а статус-страница и Telegram-бот сообщают о них подписчикам.

Чекер

Ходит через каждый прокси подписки по расписанию и решает, жив ли хост.

Интервалот 30 секунд, по умолчанию 300МетодыIP, HTTP-статус, скачиваниеМетрикиPrometheus на 127.0.0.1:2112

Статус-страница

Публичная страница состояния by Mrvibecodic: аптайм хостов, инциденты, техработы.

Доменнапример status.example.comБез доменаlocalhost или SSH-туннельДанныеистория и secret.key в томе Docker

Telegram-бот

Живёт в статус-странице: алерты о сбоях, инциденты, техработы и управление подписками.

Команды/start, затем /menuАлертыв чаты по ID из настроекНастройкапри установке или из меню
kutovoys
сам чекер: проверяет прокси из подписки по расписанию и пишет метрики
Mrvibecodic
статус-страница и Telegram-бот: алерты, инциденты, техработы, управление
панельпользователь · xray-checkerподпискаXray Checkerотдельный сервер · Dockerчекер127.0.0.1:2112статус-страница:8080Telegram-боталертыпроверка проксинода · de-fra-01каждый хост подпискинода · nl-ams-02проверка идёт извнеTelegramалерты · /menuчекер проверяет ноды извне, как обычный пользователь

Подписку чекер получает одним из двух способов:

  • Служебный пользователь (рекомендуется). Модуль создаёт в панели пользователя xray-checker, подключает его ко внутренним группам и берёт его подписку: новые ноды попадают в мониторинг сами, без перестройки.
  • URL вручную. Подойдёт любая ссылка подписки https://...; при изменении набора нод адрес придётся обновлять самому.

Каждый цикл чекер проходит прокси из подписки выбранным методом и пишет результат в метрики; статус-страница показывает историю, бот рассылает алерты.

  • Свободные порты 2112, 8080 и 8081.
  • Docker: если его нет, модуль сам предложит установить серверные компоненты.
  • Домен для публичной статус-страницы, например status.example.com. Без домена страница доступна только с сервера или по SSH-туннелю.

Выполните на сервере мониторинга:

root@server: ~
remnawave_reverse
  1. В главном меню выберите пункт 5:

    root@server: ~
    REMNAWAVE REVERSE-PROXY by eGames
    Wiki: https://wiki.egam.es/
    
    4.Расширения ноды (шаблоны, плагины, ядро)
    
    5.Xray Checker: мониторинг подписки
    
    0.Выход
    
    Выберите действие (0-13):
  2. Откроется меню модуля. Пока ничего не установлено, в нём один пункт:

    root@server: ~
    Xray Checker
     Подробности в wiki: https://wiki.egam.es/ru/configuration/xray-checker
    
     Xray Checker: не установлен
    
    1.Установить
    
    0.Выход
    
    Выберите действие (0-1): 
  3. Установка начинается с красного напоминания про отдельный сервер, затем спрашивает состав:

    root@server: ~
    Установка Xray Checker
    Мониторинг должен устанавливаться на отдельном сервере.
    Чекер проверяет ноды извне, как обычный пользователь, поэтому он сможет обнаружить и сбой самой ноды, и проблемы с дата-центром или сетью
    
    Состав установки
    
    1.Чекер + статус-страница (рекомендуется)
    2.Только чекер
    0.Выход
    
    Выберите действие (0-2): 
  4. Выберите, какая страница будет публичной:

    root@server: ~
    Какая страница будет публичной
    
    1.Статус-страница by Mrvibecodic (рекомендуется)
        Telegram-бот: алерты, инциденты, техработы, управление подписками
    2.Веб-интерфейс чекера by kutovoys
        Плитки прокси и метрики Prometheus за basic-auth (логин и пароль сгенерирую)
    0.Выход
    
    Выберите действие (0-2): 
  5. Источник подписки. Если на этом сервере стоит панель со страницей подписки, доступно авто-подключение:

    root@server: ~
    Источник подписки
    
    1.Служебный пользователь «xray-checker» в панели (рекомендуется: подписка сама подхватывает новые ноды)
    2.Указать URL подписки вручную
    0.Выход
    
    Выберите действие (0-2): 1
    [ * ] Создаю служебного пользователя «xray-checker» в панели...
    [ ✓ ] Пользователь «xray-checker» создан в панели.
    [ * ] Подключаю пользователя ко внутренним группам панели...

    При ручном варианте модуль попросит URL подписки (https://...): и проверит адрес.

  6. Настройка Telegram-бота: токен от @BotFather, ID администраторов и чатов для алертов. Каждый шаг можно пропустить Enter-ом, бот не обязателен:

    root@server: ~
    Токен Telegram-бота для управления страницей (Enter - без бота, только страница): 7481203945:AAH3k2QvLpR9tXmZwYb5C1dE
    ID администраторов бота через запятую (например, 123456789): 123456789
    ID чатов для алертов через запятую (можно пропустить - Enter): 
    Проверяю токен бота...
    Отправляю тестовое сообщение первому админу...
    Бот отвечает.
  7. Интервал проверки и метод:

    root@server: ~
    Интервал проверки в секундах (по умолчанию 300): 
    
    Метод проверки
    
    1.IP: лёгкий запрос через каждый прокси (рекомендуется)
    2.HTTP-статус: проверка кода ответа
    3.Скачивание тестового файла (~1 МБ на каждый прокси за цикл!)
    0.Выход
    
    Выберите действие (0-3): 1
  8. Домен публичной страницы, затем установка проходит сама:

    root@server: ~
    Домен статус-страницы by Mrvibecodic (например, status.example.com, Enter - только localhost): status.example.com
    [ * ] Пишу конфигурацию в /opt/xray-checker...
    [ * ] Скачиваю образы (Docker Hub / ghcr.io)...
    [ * ] Запускаю Xray Checker...
    [ * ] Жду ответа от контейнеров...
    [ ✓ ] Чекер отвечает на 127.0.0.1:2112.
    
    === Xray Checker готов ===
    
    Статус-страница:
    https://status.example.com
    
    Подписка пользователя «xray-checker» подключена автоматически. Другие можно добавить ботом (/menu → Подписки), они заменят автоматическую. Подписка для бота:
    https://sub.example.com/d41d8cd98f00b204e9800998ecf8427e
    
    Напишите боту /start и /menu: управление страницей, алерты, инциденты, техработы.

Если тестовое сообщение боту не доставлено, это нормально для первого раза: Telegram запрещает ботам писать первыми. Напишите боту /start (затем /menu), после этого он сможет отвечать и присылать алерты.

После установки меню показывает состояние, публичный адрес и авторов:

root@server: ~
Xray Checker
 Подробности в wiki: https://wiki.egam.es/ru/configuration/xray-checker

 Xray Checker: работает
 Публичная страница: https://status.example.com
 Xray Checker by kutovoys (github.com/kutovoys/xray-checker) · статус-страница by Mrvibecodic (github.com/Mrvibecodic/xray-checker-statuspage)

1.Статус и последние логи
2.Перезапустить
3.Обновить образы

4.Настроить Telegram-бота
5.Удалить

0.Выход

Выберите действие (0-5): 

Пункт Опубликовать публичную страницу (домен) появляется, только пока страница живёт на localhost: после публикации он исчезает, а адрес переезжает в заголовок меню.

root@server: ~
=== Статус Xray Checker ===

 Xray Checker: работает
 (127.0.0.1:2112)
 Состав: Чекер + статус-страница (рекомендуется)
 Статус-страница: работает
 (127.0.0.1:8080)
 Публичная страница: https://status.example.com

Последние строки xray-checker:
  …

Пункт Настроить Telegram-бота повторяет шаги из установки: новый токен, администраторы, чаты алертов. Если оставить токен пустым, модуль спросит, не убрать ли бота совсем: страница останется, управлять ей можно будет только через меню.

Обновить образы подтягивает свежие версии чекера и страницы и перезапускает их; Перезапустить пересоздаёт контейнеры с сохранением данных страницы. Удаление стирает контейнеры и том статус-страницы вместе с историей и secret.key, а служебный пользователь xray-checker остаётся в панели:

root@server: ~
[ * ] Обновляю образы...
[ ✓ ] Образы обновлены, Xray Checker перезапущен.
root@server: ~
Удалить Xray Checker? Контейнеры и том статус-страницы (история, secret.key) будут стёрты, а пользователь «xray-checker» останется в панели (y/n): y
[ * ] Удаляю...
[ ✓ ] Xray Checker удалён.
  • IP (по умолчанию): лёгкий запрос через прокси, проверяется смена адреса выхода. Самый дешёвый способ, но только для чекера на отдельном сервере: рядом с нодой он вечно пометит её упавшей, и модуль сразу предупредит об этом.
  • HTTP-статус: через прокси запрашивается страница и проверяется код ответа. Работает при любой раскладке серверов.
  • Скачивание: качает тестовый файл около 1 МБ через каждый прокси каждый цикл. Самая честная проверка канала, но следите за трафиком.

При установке на сервере с нодой модуль отмечает «IP» предупреждением и рекомендует «HTTP-статус».