Мониторинг Proxmox VE в Prometheus через API-токен и доверенный CA
Практический подход к сбору метрик Proxmox без отключения проверки TLS и без использования полноценной административной учётной записи.
Проверено на: Proxmox VE 9.x · Prometheus 3.x · AlmaLinux 9
Контекст
Экспортёру Prometheus нужен доступ к API Proxmox, но ради мониторинга не следует хранить пароль администратора или отключать проверку TLS только для того, чтобы HTTPS-запросы начали работать.
Практичная схема разделяет три задачи:
- отдельная учётная запись Proxmox с правами только на чтение;
- отдельный API-токен для экспортёра;
- явное доверие к корневому CA кластера Proxmox на сервере мониторинга.
Модель доступа
Создайте отдельную учётную запись для мониторинга и выдайте только права, необходимые для чтения инвентаря и метрик. Для read-only экспортёра роль PVEAuditor подходит значительно лучше, чем Administrator.
Для экспортёра используйте отдельный API-токен. Это позволяет независимо отзывать и ротировать токен и не хранить интерактивный пароль пользователя в конфигурации сервиса.
Доверие к TLS
Не используйте verify_ssl: false как постоянное решение.
Экспортируйте корневой сертификат CA Proxmox, передайте его на сервер мониторинга по доверенному административному каналу и установите как файл, доступный только необходимому сервису.
Для Python-based экспортёра можно указать CA bundle через переменную окружения:
REQUESTS_CA_BUNDLE=/path/to/proxmox-ca.pem
После этого HTTPS-соединение к API должно проходить с нормальной проверкой сертификата.
Схема Prometheus
Полезно логически разделять метрики кластера и метрики отдельных узлов.
Обычно это означает:
- отдельный job для Proxmox API exporter;
- отдельный
node_exporterна каждом гипервизоре; - независимые targets в Prometheus.
Так проще отличить разные типы отказов:
- host metrics отсутствуют, но API кластера доступен;
- API metrics пропали, но сами узлы доступны;
- недоступен один конкретный гипервизор;
- сломался сбор метрик на уровне всего кластера.
Проверка
Не ограничивайтесь ответом HTTP 200.
Проверьте:
- что exporter service работает под ожидаемой учётной записью;
- что используется именно доверенный CA bundle, а ошибки сертификатов не подавляются;
- что endpoint экспортёра отвечает напрямую;
- что
promtool check configпроходит до reload Prometheus; - что все ожидаемые Proxmox и node-exporter targets находятся в состоянии
UP; - что список узлов и VM в метриках соответствует реальному инвентарю кластера.
Заметки по безопасности
API-токен остаётся секретом, даже если его права ограничены чтением.
Храните его вне repository, ограничьте права на файл конфигурации и ротируйте при любом подозрении на утечку.
Read-only токен в сочетании с нормальной проверкой TLS даёт существенно лучшую границу риска, чем административная учётная запись вместе с отключённой проверкой сертификатов.