Мониторинг срока действия сертификатов, выпущенных средствами cert-manager
Cert-manager
Cert-manager - это модуль для работы с TLS-сертификатами, он автоматически устанавливается в управляющий кластер, при развертывании платформы, в пространстве имен «cert-manager».
В Платформе Боцман Cert-manager используется и настроен таким образом, что сразу после установки активируется отдача метрик модуля на порту 9402 по пути /metrics.
Заметка
При необходимости, cert-manager может быть установлен в любой подчиненный кластер через раздел активации модулей (для подчиненных кластеров, по-умолчанию будет использоваться пространство имен «cattle-ui-plugin-system»).
Проверка доступности метрик
В число метрик, отдаваемых на порт 9402 входят метрики по всем выпущенным сертификатам.
Список метрик можно получить следующим образом:
1. Подключаемся к порту 9402 сервиса «cert-manager» с локальной машины
Среди списка полученных метрик, должны быть метрики вида certmanager_certificate_*.
Настройка сбора метрик
Предупреждение
Для настройки сбора метрик с модуля cert-manager в кластере необходим установленный аддон victoria-metrics.
Для сбора метрик выполните следующие шаги:
1. Перейдите в меню Monitoring (Мониторинг) -> Monitors (Мониторы) -> VMServiceScrapes и нажмите Create (Создать)

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

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

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

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

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

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

Теперь, имея метрики из cert-manager, можно настроить дашборды в Grafana или любой другой системе, имеющей доступ к Victoria Metrics,а так же, систему алертов, при необходимости.
Визуализация метрик в дашборде Grafana
Предупреждение
Для визуализации метрик в Grafana необходим установленный аддон grafana-operator.
Для создания дашборда в Grafana выполните следующие шаги:
1. Перейдите в Monitoring (Мониторинг) -> Dashboard (Дашборд) -> Grafana для запуска UI Grafana

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

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

4. В окне редактирования задайте параметры необходимой метрики и способ ее визуализации:
В блоке Queries:
В поле Metrics указываем certmanager_certificate_expiration_timestamp_seconds
Модификатор Multiply by scalar необходимо установить на значение 1000 для корректного преобразования типа данных таймстамп в тип данных дата, так как Grafana ожидает значение в миллисекундах, а исходное значение от Cert-manager приходит в секундах.
В блоке Options указываем Format - Table и Type - Instant

В правом вертикальном блоке 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

В блоке Transformations нажмите Add Transformation и укажите:
Выберите тип Organize fields by name и скройте отображение всех полей, кроме Cluster, Name и Value
Для удобства, можно переименовать поля на Кластер, Имя сертификата и Дата истечения соответственно.
Нажмите Save dashboard, укажите имя и директорию для размещения нового дашборда с указанными параметрами.
Просмотр готового дашборда в Grafana
В меню Dashboards перейдите в директорию, в которую был сохранен новый дашборд и откройте его.




