Перейти к содержанию

Мониторинг срока действия сертификатов, выпущенных средствами cert-manager

Cert-manager

Cert-manager - это модуль для работы с TLS-сертификатами, он автоматически устанавливается в управляющий кластер, при развертывании платформы, в пространстве имен «cert-manager».

В Платформе Боцман Cert-manager используется и настроен таким образом, что сразу после установки активируется отдача метрик модуля на порту 9402 по пути /metrics.

cert_manager
cert_manager

Заметка

При необходимости, cert-manager может быть установлен в любой подчиненный кластер через раздел активации модулей (для подчиненных кластеров, по-умолчанию будет использоваться пространство имен «cattle-ui-plugin-system»).

Проверка доступности метрик

В число метрик, отдаваемых на порт 9402 входят метрики по всем выпущенным сертификатам.
Список метрик можно получить следующим образом:

1. Подключаемся к порту 9402 сервиса «cert-manager» с локальной машины

kubectl port-forward -n cert-manager deployment/cert-manager 9402  
2. Обращаемся к порту с другого окна терминала локальной машины

curl --insecure -v http://localhost:9402/metrics

Среди списка полученных метрик, должны быть метрики вида certmanager_certificate_*.

Настройка сбора метрик

Предупреждение

Для настройки сбора метрик с модуля cert-manager в кластере необходим установленный аддон victoria-metrics.

Для сбора метрик выполните следующие шаги:

1. Перейдите в меню Monitoring (Мониторинг) -> Monitors (Мониторы) -> VMServiceScrapes и нажмите Create (Создать)
vm_service_create
vm_service_create

2. Заполните YAML и нажмите Save (Сохранить)
vm_service_yaml
vm_service_yaml

YAML:

apiVersion: operator.victoriametrics.com/v1beta1
kind: VMServiceScrape
metadata:
  name: cert-manager-scrape
  namespace: cert-manager ## для подчиненного кластера указать  cattle-ui-plugin-system
spec:
  endpoints:
  - port: tcp-prometheus-servicemonitor
    interval: 10s
    path: /metrics
  selector:
    matchLabels:
      app: cert-manager
  namespaceSelector:
    matchNames:
      - cert-manager ## для подчиненного кластера указать  cattle-ui-plugin-system

3. Перейдите в Monitoring (Мониторинг) -> Dashboard (Дашборд) -> VMUI для запуска UI Victoria Metrics
vm_ui
vm_ui

4. В окне UI Victoria Metrics перейдите в раздел Explore -> Explore Prometheus metrics
explore_prometheus_metrics
explore_prometheus_metrics

5. В разделе метрик укажите cert-manager в качестве параметра Job и в выпадающем списке Metrics выберите certmanager_certificate_expiration_timestamp_seconds
timestamp_metric
timestamp_metric

Заметка

Метрика certmanager_certificate_expiration_timestamp_seconds отдает значение таймстампа, при наступлении которого действие сертификата будет считаться истекшим.

6. Для более точного запроса перейдите в раздел Query и укажите certmanager_certificate_expiration_timestamp_seconds в качестве метрики в поле query
vm_query
vm_query

Кроме графиков, VM UI отобразит список метрик по всем выпущенным сертификатам с дополнительными информационными полями
query_discription
query_discription

Теперь, имея метрики из cert-manager, можно настроить дашборды в Grafana или любой другой системе, имеющей доступ к Victoria Metrics,а так же, систему алертов, при необходимости.

Визуализация метрик в дашборде Grafana

Предупреждение

Для визуализации метрик в Grafana необходим установленный аддон grafana-operator.

Для создания дашборда в Grafana выполните следующие шаги:

1. Перейдите в Monitoring (Мониторинг) -> Dashboard (Дашборд) -> Grafana для запуска UI Grafana
grafana
grafana

2. В UI Grafana перейдите в раздел Home -> Dashboardsи нажмите New -> New dashboard
new_dashboard
new_dashboard

3. В окне создания нового дашборда нажмите Add visualization и выберите источником метрик VictoriaMetrics
metrics_choise
metrics_choise

4. В окне редактирования задайте параметры необходимой метрики и способ ее визуализации:

В блоке Queries:

В поле Metrics указываем certmanager_certificate_expiration_timestamp_seconds

Модификатор Multiply by scalar необходимо установить на значение 1000 для корректного преобразования типа данных таймстамп в тип данных дата, так как Grafana ожидает значение в миллисекундах, а исходное значение от Cert-manager приходит в секундах.

В блоке Options указываем Format - Table и Type - Instant
metric_format
metric_format

В правом вертикальном блоке Visualizatiion:

В выпадающем списке Visualization выберите Table;

В блоке Cell options активируйте Wrap text;

В самом низу блока нажмите Add field override и выберите опцию Field with name, в ней укажите опцию Value, затем нажмите Add override property и выберите Standart options>Unit;

В появившемся выпадающем списке параметров Unit выберите тип Date & Time/Datetime Local table_format
table_format

В блоке Transformations нажмите Add Transformation и укажите:

Выберите тип Organize fields by name и скройте отображение всех полей, кроме Cluster, Name и Value

Для удобства, можно переименовать поля на Кластер, Имя сертификата и Дата истечения соответственно.

transformation
transformation

Нажмите Save dashboard, укажите имя и директорию для размещения нового дашборда с указанными параметрами.

Просмотр готового дашборда в Grafana

В меню Dashboards перейдите в директорию, в которую был сохранен новый дашборд и откройте его.
dashboard
dashboard