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

Доступ к метрикам Prometheus

Панель Remnawave отдаёт метрики в формате Prometheus на отдельном порту 3001. Скрипт при установке сам генерирует логин и пароль для них и прибивает порт к localhost: снаружи сервера адрес не виден, и это защищает метрики от посторонних.

Данные для входа

Секция ### PROMETHEUS ### в /opt/remnawave/.env, генерируются при установке.

Адрес метрик

http://127.0.0.1:3001/metrics с базовой HTTP-аутентификацией.

Доступ

Только localhost: порт в docker-compose.yml привязан к 127.0.0.1.

Логин и пароль скрипт генерирует случайными и записывает в .env панели:

.env
### PROMETHEUS ###
### Metrics are available at http://127.0.0.1:METRICS_PORT/metrics
METRICS_USER=gjlToiPH
METRICS_PASS=VsCNutHF

Файл лежит в /opt/remnawave/.env, значения подтягиваются контейнером панели автоматически.

Переменная Назначение Значение у скрипта
APP_PORT Порт панели 3000 (только внутри Docker)
METRICS_PORT Порт метрик 3001, привязан к 127.0.0.1
METRICS_USER Логин для метрик случайный
METRICS_PASS Пароль для метрик случайный
APP_SECRET Ключ подписи сессий и API-токенов случайный

На самом сервере метрики можно получить одной командой (ответ в текстовом формате Prometheus):

root@server: ~
curl -u gjlToiPH:VsCNutHF http://127.0.0.1:3001/metrics | head

С своего компьютера эндпоинт можно посмотреть через SSH-туннель, не открывая порт наружу:

root@server: ~
ssh -L 3001:127.0.0.1:3001 root@your_server_ip

После этого http://127.0.0.1:3001/metrics доступен и в локальном браузере.

Забирать метрики нужно с самого сервера, прямо с 127.0.0.1. Конфиг для vmagent (его использует руководство по мониторингу):

vmagent/conf.d/remnawave.yml
- job_name: remnawave
scrape_interval: 15s
static_configs:
- targets: ['127.0.0.1:3001']
labels:
instance: "ваше_название_инстанса"
basic_auth:
username: "gjlToiPH"
password: "VsCNutHF"

Для классического Prometheus секция выглядит так же:

prometheus.yml
scrape_configs:
- job_name: 'remnawave'
scheme: http
metrics_path: /metrics
scrape_interval: 15s
static_configs:
- targets: ['127.0.0.1:3001']
basic_auth:
username: gjlToiPH
password: VsCNutHF

Скрипт публикует порт метрик только на localhost:

docker-compose.yml
ports:
- '127.0.0.1:3001:3001'

Поэтому прямое обращение извне невозможно, и это не обходится настройкой cookie, как у страницы входа в панель: у метрик своя защита (привязка порта + basic auth). Забрать метрики снаружи можно двумя способами: агент на самом сервере (vmagent/Prometheus с remote_write) или SSH-туннель, как выше.