x509-certificate-exporter#
x509-certificate-exporter - Prometheus-экспортер метрик, предназначенный для мониторинга сроков действия TLS-сертификатов. Он сканирует файлы, каталоги, Kubeconfig и секреты с сертификатами, извлекает данные об их жизненном цикле и предоставляет метрики для оповещения и визуализации.
Основные задачи и возможности
Мониторинг различных источников сертификатов. Поддерживает:
PEM-файлы по указанным путям;
Каталоги с автоматическим сканированием;
Kubeconfig-файлы (встроенные или ссылающиеся на файлы);
TLS-секреты Kubernetes (
kubernetes.io/tls).
Экспорт метрик в Prometheus. Предоставляет метрики:
x509_cert_not_after- дата окончания срока действия;x509_cert_expired- статус окончания срока действия;x509_read_errors- ошибки чтения файлов или API;Опционально:
x509_cert_expires_in_seconds,x509_cert_valid_since_seconds.
Гибкая фильтрация и настройка. Позволяет:
Включать/исключать пространства имен и секреты по меткам;
Управлять кешированием;
Обрезать пути в метках.
Преднастроенные правила оповещений и готовая панель Grafana для визуализации.
Примечание
x509-certificate-exporter устанавливается по умолчанию в процессе установки всего кластера DropApp.
Настройка#
По умолчанию инструмент x509-certificate-exporter сконфигурирован на запуск в трех режимах:
Deploymentс именемx509-certificate-exporterследит за секретами в кластере с типомkubernetes.io/tls;Daemonsetс именемx509-certificate-exporter-cpследит за сертификатами в файловой системе control-plane узлов;Daemonsetс именемx509-certificate-exporter-workerследит за сертификатами в файловой системе обычных рабочих узлов (не выделенных).
При наличии выделенных рабочих узлов с определенным nodePool, например ingress, infra, storage и т.п., и есть необходимость следить за сертификатами и на них, добавьте для работы с ними в конфигурацию x509-certificate-exporter:
apiVersion: config.dropapp.ru/v1alpha1
kind: Tool
metadata:
name: x509-certificate-exporter
spec:
values:
hostPathsExporter:
daemonSets:
infra: # пример для рабочих узлов с меткой node-role.kubernetes.io/infra: ""
nodeSelector:
node-role.kubernetes.io/infra: ""
watchFiles:
- /var/lib/kubelet/pki/kubelet-client-current.pem
- /etc/kubernetes/pki/ca.crt
Конфигурация values#
Параметры x509-certificate-exporter можно переопределить через редактирование нужных значений в spec.values. Общее описание конфигурации values для инструментов приведено в разделе «Конфигурации инструментов дополнительных компонентов».
nameOverride – переопределение имени чарта#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переопределение базового имени ресурсов чарта для генерации имен |
|
fullnameOverride – полное переопределение имени чарта#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Полное переопределение имени для всех создаваемых ресурсов чарта |
|
namespaceOverride – переопределение пространства имен#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переопределение пространства имен вместо значения по умолчанию |
|
extraDeploy – дополнительные объекты для развертывания#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список дополнительных объектов для развертывания с поддержкой шаблонизатора Helm |
|
extraDeployVerbatim – дополнительные объекты для развертывания без обработки#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список дополнительных объектов для развертывания без обработки шаблонизатором Helm |
|
imagePullSecrets – Secret для загрузки образов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список |
|
image – параметры контейнерного образа#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Реестр контейнерного образа, формируемый на основе глобальных переменных |
|
|
Репозиторий контейнерного образа |
|
|
Тег образа контейнера |
|
|
Суффикс для выбора варианта образа: |
|
|
Политика загрузки образа. |
|
migration – настройки миграционных Helm-хуков#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Репозиторий контейнерного образа |
|
|
Тег образа контейнера |
|
|
Дайджест (SHA-хеш) образа контейнера. При указании непустого значения образ загружается по дайджесту, независимо от тега |
|
|
Аннотации, добавляемые ко всем создаваемым ресурсам |
|
|
Дополнительные метки для pod миграционных Helm-хуков |
|
|
Запросы и ограничения ресурсов для pod |
|
|
Параметры контекста безопасности pod для миграционных Helm-хуков |
|
|
Параметры контекста безопасности контейнера для миграционных Helm-хуков |
|
exposePerCertificateErrorMetrics – включение метрик ошибок на уровень каждого сертификата#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включение дополнительных метрик для отчета об ошибках каждого сертификата. Помогает определить источник ошибок чтения без анализа логов экспортера, за счет дополнительного хранения в Prometheus |
|
exposeRelativeMetrics – включение метрик с относительными временными интервалами#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включение дополнительных метрик с относительными длительностями вместо абсолютных временных меток. Не рекомендуется для Prometheus |
|
metricLabelsFilterList – фильтрация меток метрик#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Ограничение меток метрик указанным списком. Снижение кардинальности может привести к коллизиям метрик и игнорированию сертификатов экспортером. Это также ухудшит работу дашборда Grafana. Список должен включать как минимум |
|
grafana – настройка дашборда Grafana как ConfigMap#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создание дашборда Grafana в виде |
|
|
Имя метки |
|
|
Значение метки |
|
|
Аннотации, добавляемые ко всем создаваемым ресурсам. |
|
|
Дополнительные метки для |
|
secretsExporter – настройки Deployment для мониторинга TLS-Secrets#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включение экспортера TLS Secrets |
|
|
Аннотации, добавляемые ко всем создаваемым ресурсам |
|
|
Включение отладочного вывода сообщений |
|
|
Количество реплик pod |
|
|
Политика перезапуска pod |
|
|
Стратегия обновления ресурса |
|
|
Количество предыдущих версий ресурса, сохраняемых для отката |
|
|
Запросы и ограничения ресурсов для pod |
|
|
Проверка готовности контейнера |
|
|
Проверка жизнеспособности контейнера |
|
|
Селектор узлов для планирования pod |
|
|
|
|
|
Настройки правила привязки ( |
|
|
Имя |
|
|
Метки, добавляемые ко всем создаваемым pod |
|
|
Аннотации, добавляемые ко всем создаваемым pod |
|
|
Параметры контекста безопасности pod |
|
|
Параметры контекста безопасности контейнера |
|
|
Дополнительные тома ( |
|
|
Список дополнительных точек монтирования томов ( |
|
|
Список типов |
|
|
Список ключей в |
|
|
Ограничение списка пространств имен для сканирования сертификатов |
|
|
Исключение пространств имен из сканирования (применяется после |
|
|
Наблюдение только за пространствами имен с указанными метками. Элементы могут быть ключами вида |
|
|
Исключение пространств имен с указанными метками. Элементы могут быть ключами вида |
|
|
Наблюдение только за TLS |
|
|
Исключение TLS |
|
|
Экспорт выбранных меток из |
|
|
Дополнительные аргументы командной строки экспортера. Например: |
|
|
Включение кеширования объектов для предотвращения тайм-аутов скрейпинга |
|
|
Максимальное время хранения объекта в кеше без обновления |
|
|
Включение ограничения частоты запросов к API-серверу |
|
|
Максимальная частота запросов к API-серверу |
|
|
Максимальный размер кратковременного всплеска запросов (burst) к API-серверу. |
|
|
Дополнительные переменные окружения для контейнеров. |
|
hostPathsExporter – настройки DaemonSet для сканирования сертификатов на файловой системе хоста#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Аннотации, добавляемые ко всем создаваемым ресурсам |
|
|
Включение отладочного вывода для всех |
|
|
Пропуск символических ссылок при сканировании файлов и каталогов. Не применяется к |
|
|
Политика перезапуска для pod экспортеров |
|
|
Стратегия обновления ресурса |
|
|
Количество предыдущих версий ресурса, сохраняемых для отката |
|
|
Запросы и ограничения ресурсов для pod |
|
|
Проверка готовности контейнера |
|
|
Проверка работоспособности контейнера |
|
|
Селектор узлов для планирования pod |
|
|
|
|
|
Настройки правила привязки ( |
|
|
Имя |
|
|
Метки, добавляемые ко всем создаваемым pod |
|
|
Аннотации, добавляемые ко всем создаваемым pod |
|
|
Параметры контекста безопасности pod |
|
|
Параметры контекста безопасности контейнера |
|
|
Дополнительные тома ( |
|
|
Список дополнительных точек монтирования томов ( |
|
|
Режим проверки путей на хосте перед их монтированием. Может потребоваться для RKE, если pod не запускаются |
|
|
Список каталогов хоста для сканирования PEM-файлов сертификатов |
|
|
Список каталогов хоста для сканирования файлов с определенным расширением |
|
|
Список путей к файлам хоста с PEM-сертификатами для мониторинга |
|
|
Список путей к |
|
|
Дополнительные переменные окружения для контейнеров. |
|
|
Список спецификаций для генерации ресурсов |
|
podListenPort – TCP-порт для прослушивания pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
TCP-порт для прослушивания pod |
|
hostNetwork – использование сети хоста#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включение режима |
|
webConfiguration – конфигурация HTTP-сервера для TLS и аутентификации#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Конфигурация HTTP-сервера для включения TLS и аутентификации (пароль, mTLS) |
|
webConfigurationExistingSecret – загрузка конфигурации HTTP-сервера из существующего Secret#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Загрузка конфигурации HTTP-сервера из существующего |
|
service – настройки Service#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Установка |
|
|
Создание Headless-Service |
|
|
TCP-порт для экспорта |
|
|
Аннотации, добавляемые ко всем создаваемым ресурсам |
|
|
Метки, добавляемые ко всем создаваемым ресурсам |
|
prometheusServiceMonitor – параметры ServiceMonitor#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создание |
|
|
Интервал сбора метрик |
|
|
Тайм-аут сбора метрик |
|
|
Метки, добавляемые ко всем создаваемым ресурсам |
|
|
Аннотации, добавляемые ко всем создаваемым ресурсам |
|
|
Правила фильтрации и преобразования меток, применяемые к собранным метрикам в |
|
|
Правила фильтрации и преобразования меток, применяемые к целям сбора до начала сбора метрик в |
|
|
Схема подключения для |
|
|
Пользовательская TLS-конфигурация для |
|
prometheusPodMonitor – параметры PodMonitor#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создание |
|
|
Интервал сбора метрик |
|
|
Тайм-аут сбора метрик |
|
|
Метки, добавляемые ко всем создаваемым ресурсам |
|
|
Дополнительные свойства эндпоинта, такие как |
|
|
Дополнительные свойства эндпоинта, такие как |
|
|
Схема подключения для |
|
|
Пользовательская TLS-конфигурация для |
|
prometheusRules – параметры интеграции с Prometheus и сбора метрик#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Установка объекта |
|
|
Создание правила оповещения |
|
|
Уровень критичности оповещений, срабатывающих при возникновении ошибок чтения файлов сертификатов экспортером |
|
|
Создание правила оповещения |
|
|
Уровень критичности оповещений |
|
|
Уровень критичности оповещений |
|
|
Уровень критичности оповещений |
|
|
Количество дней до истечения для предупреждающего оповещения |
|
|
Количество дней до истечения для критического оповещения |
|
|
Метки, добавляемые ко всем создаваемым ресурсам |
|
|
Метки, добавляемые ко всем создаваемым ресурсам |
|
|
Аннотации, добавляемые ко всем создаваемым ресурсам |
|
|
Дополнительный префикс для правил |
|
|
Пропуск всех встроенных оповещений при использовании |
|
|
Дополнительные группы оповещений для пользовательской конфигурации. |
|
extraLabels – общие метки для всех создаваемых ресурсов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Метки, добавляемые ко всем создаваемым ресурсам |
|
podExtraLabels – метки, добавляемые ко всем создаваемым pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Метки, добавляемые ко всем создаваемым pod |
|
podAnnotations – аннотации, добавляемые ко всем создаваемым pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Аннотации, добавляемые ко всем создаваемым pod. |
|
priorityClassName – имя класса приоритета pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Класс приоритета pod по умолчанию (может быть переопределен в |
|
extraVolumes – дополнительные Volume для всех pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Дополнительные тома ( |
|
extraVolumeMounts – дополнительные точки монтирования томов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список дополнительных точек монтирования томов ( |
|
psp – настройки Pod Security Policy#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создание объектов политики безопасности pod |
|
rbac – настройки RBAC (управление доступом на основе ролей)#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создание объектов RBAC (включая |
|
|
Имя |
|
|
Аннотации для |
|
|
Аннотации для |
|
|
Аннотации для |
|
|
Имя |
|
|
Аннотации для |
|
|
Аннотации для |
|
|
Аннотации для |
|
rbacProxy – настройки kube-rbac-proxy#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Использование |
|
|
Путь к репозиторию контейнерного образа kube-rbac-proxy |
|
|
Тег образа контейнера |
|
|
Политика загрузки образа. |
|
|
Порт прослушивания экспортера внутри pod kube-rbac-proxy |
|
|
Запросы и ограничения ресурсов для pod |
|
|
Параметры контекста безопасности контейнера kube-rbac-proxy |
|
kubeVersion – переопределение версии Kubernetes#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переопределение определения версии Kubernetes |
|