Как я собирал метрики с роутера в Prometheus

16 августа 2026 · мониторинг

Началось всё с простого вопроса: почему по вечерам тормозит интернет — это провайдер или кто-то дома качает обновления? Ответа у роутера не было: в его веб-интерфейсе есть только текущая скорость, без истории.

Что умеет роутер

На роутере стоит OpenWrt, а для него есть пакет prometheus-node-exporter-lua. Он лёгкий, написан на Lua и отдаёт стандартные метрики node_exporter: трафик по интерфейсам, загрузку процессора, память, количество соединений в conntrack.

opkg update
opkg install prometheus-node-exporter-lua \
  prometheus-node-exporter-lua-netstat \
  prometheus-node-exporter-lua-wifi_stations

По умолчанию экспортёр слушает только localhost, так что в /etc/config/prometheus-node-exporter-lua надо поменять listen_interface на lan.

Prometheus и Grafana

На домашнем сервере Prometheus уже был, добавил одну задачу:

- job_name: router
  scrape_interval: 15s
  static_configs:
    - targets: ['192.168.1.1:9100']

Для графика скорости хватает одного запроса:

rate(node_network_receive_bytes_total{device="wan"}[1m]) * 8

Что выяснилось

Через неделю графиков всё стало понятно: по вечерам канал загружен процентов на тридцать, а задержки растут на стороне провайдера. Зато обнаружилась другая интересная вещь — телевизор раз в сутки скачивает около двух гигабайт непонятно чего. Обновления, видимо. Отключил автообновление, но осадочек остался.

Из приятного: метрика wifi_station_signal_dbm показала, что ноутбук в дальней комнате почти всегда сидит на −78 dBm. Переставил точку доступа на полметра — стало −61.

← ко всем записям