MikroTik не умеет отдавать метрики в формате Prometheus напрямую. Для этого используется mktxp — отдельный сервис, который:
- Подключается к MikroTik API (порт 8728)
- Запрашивает данные (интерфейсы, DHCP leases, ресурсы и т.д.)
- Преобразует их в формат Prometheus
- Отдаёт по HTTP на порту
49090
Конфигурация роутера (IP, логин, пароль) хранится в SealedSecret infrastructure/prometheus-stack/mikrotik-secret.yaml — файл mktxp.conf зашифрован и безопасно хранится в git. В кластере Sealed Secrets контроллер расшифровывает его в обычный Secret, который монтируется в под через initContainer (копируется в emptyDir, чтобы mktxp мог обновлять файл при старте).
Prometheus обращается к mktxp по DNS-имени сервиса внутри кластера:
- job_name: mikrotik
static_configs:
- targets:
- mikrotik-exporter:49090 # Service DNS-имя внутри кластераKubernetes резолвит mikrotik-exporter в ClusterIP сервиса, описанного в infrastructure/prometheus-stack/mikrotik-exporter.yaml.