Настроить алертинг в кластере
В платформе “Штурвал” для клиентских кластеров по умолчанию реализован централизованный алертинг с размещением метрик и правил оповещения в кластере управления. При использовании централизованного алертинга доступна настройка правил оповещения из интерфейса кластера.
В случае недоступности кластера управления, выключенного централизованного алертинга или отсутствия необходимости работы централизованного алертинга вы можете настроить локальный алертинг в клиентском кластере. Графический интерфейс настройки правил оповещения, маршрутов и блокировок будет недоступен.
Локальный алертинг в клиентском кластере
- В кластере в боковом меню откройте раздел Сервисы и репозитории и перейдите на страницу Установленные сервисы, найдите компонент управления модуля мониторинга (
shturval-metrics-collector
).
Скриншот
- Откройте карточку модуля и в блоке Спецификация сервиса включите локальную базу данных хранения метрик
vmsingle
и необходимые компоненты, как показано в customvalues далее.
Пример customvalues
alertmanager:
enabled: true
defaultRules:
create: true
vmagent:
additionalRemoteWrites:
- url: <ваше значение параметра>
vmalert:
enabled: true
vmsingle:
enabled: true
Параметр | Описание | Тип данных | Пример |
---|---|---|---|
additionalRemoteWrites.url |
URL-адрес Victoria Metrics Insert, указанный в спецификации до изменений | string | https://vminsert.apps.ip-10-11-12-13.shturval.link/insert/2452490585/prometheus/ |
Параметр additionalRemoteWrites.url
необходимо указывать, чтобы метрики направлялись не только в локальную базу кластера, но и централизовано в кластер управления.
Скриншот
- Сохраните внесенные изменения для модуля.
В результате:
- метрики будут направлены в локальную VM Single базу и (если централизованное хранение доступно), то дополнительно в кластер управления;
- в клиентском кластере добавлены кастомные ресурсы API-группы “operator.victoriametrics.com”: VMAlertmanager, VMAlert, VMSingle и системные правила VMRule.
- возможно настроить конфигурацию локального алертинга.
Обратите внимание!
- В графическом интерфейсе из раздела Оповещения вы можете настроить только централизованный алертинг.
- Конфигурация локального алертинга должна быть настроена в ssc (спецификации)
shturval-metrics-collector
. - При необходимости создания нового правила для локального алертинга, необходимо добавить правило в клиентский кластер с помощью импорта манифеста объекта VMRule.
- Чтобы настроить маршруты, получателей, блокировку оповещений, в блоке Спецификация сервиса компонента управления модуля мониторинга (
shturval-metrics-collector
) задайте требуемую конфигурацию вalertmanager
.
Пример конфигурации в customvalues, где получатель webhook
alertmanager:
enabled: true
config:
receivers:
- name: blackhole # Получатель по умолчанию. Должен быть обязательно указан
- name: <ваше значение параметра>
webhook_configs:
- max_alerts: <ваше значение параметра>
send_resolved: false
url: <ваше значение параметра>
route:
routes:
- matchers:
- <ваше значение параметра>
receiver: <ваше значение параметра>
Параметр | Описание | Тип данных | Пример |
---|---|---|---|
receivers.name |
Имя получателя оповещений | string | example-webhook |
receivers.webhook_configs.max_alerts |
Максимальное количество оповещений, включаемых в одно сообщение webhook. Оповещения, превышающие это значение, обрезаются. По умолчанию 0 (не ограничивается количество, будут включены все оповещения в сообщение) | int | 5 |
receivers.webhook_configs.url |
URL-адрес: эндпоинт для отправки HTTP-запросов на адрес webhook | string | http://example-webhook.svc/webhook |
route.routes.matchers |
Список лейблов получателя, куда будут маршрутизироваться оповещения | string | app = “example-webhook” |
route.routes.receivers |
Значение имени получателя оповещений | string | example-webhook |
Сохраните внесенные изменения.
Troubleshooting
Чтобы проверить настройку работы локального алертинга необходимо проверить состояние локального хранилища экземпляра VM Single и состояния VMAlertManager. Для этого:
- в неймспейсе
victoria-metrics
проверьте статус Statefulsetvmalertmanager-shturval-metrics-collector
. Если статус неактивный, посмотрите логи подов этого Statefulset. - в неймспейсе
victoria-metrics
проверьте статус Deploymentvmalert-shturval-metrics-collector
. Если статус неактивный, посмотрите логи подов этого Deployment. - в неймспейсе
victoria-metrics
проверьте статус Deploymentvmsingle-shturval-metrics-collector
. Если статус неактивный, посмотрите логи подов этого Deployment. - в разделе “Администрирование” бокового меню кластера перейдите на страницу “Кастомные ресурсы”. В API-группе “operator.victoriametrics.com” найдите ресурс VMAlertmanager и проверьте, что он имеет updateStatus: operational.
- в разделе “Администрирование” бокового меню кластера перейдите на страницу “Кастомные ресурсы”. В API-группе “operator.victoriametrics.com” найдите ресурс VMAlert и проверьте, что он имеет updateStatus: operational.
Скриншот
Алертинг заполненности пространства Opensearch
В кластере управления вы можете настроить оповещение (алертинг) о заполненности дискового пространства под хранение логов в Opensearch. Это может быть полезно для своевременного информирования, когда требуется освободить место или увеличить объем пространства Opensearch.
В платформе “Штурвал” по умолчанию реализован централизованный алертинг с размещением метрик и правил оповещения в кластере управления всех клиентских кластеров и кластера управления. Вы можете настроить как централизованный, так и локальный алертинг заполненности пространства Opensearch.
Централизованный алертинг
- В графическом интерфейсе кластера управления в разделе Администрирование перейдите на страницу Кастомные ресурсы. Найдите группу
operator.victoriametrics.com
и перейдите к списку кастомных ресурсов VMRule. Откройте манифест кастомного ресурсаvmrule-user-0
и добавьте правило проверки в блокgroups
.
Правило проверки заполненности пространства Opensearch
spec:
groups:
- name: opensearch-disk-space
rules:
- alert: OpenSearchLowDiskSpace
annotations:
description: |-
На кластере OpenSearch осталось менее 10% свободного места.
Узел: {{ $labels.node }}
Использовано: {{ $value }}%
summary: На кластере OpenSearch осталось мало дискового пространства
expr: >
100 * (1 - (opensearch_fs_total_free_bytes / opensearch_fs_total_total_bytes)) > 90
for: 5m
labels:
cluster: opensearch
severity: warning
Согласно установленному правилу в expr
алертинг сработает, когда дисковое пространство будет заполнено более чем на 90%.
Скриншот
Нажмите Проверить и сохраните внесенные изменения.
- Настройте конфигурацию алертинга, например, маршрут и получателя.
Локальный алертинг
- В графическом интерфейсе кластера управления в боковом меню откройте раздел Сервисы и репозитории и перейдите на страницу Установленные сервисы, найдите компонент управления модуля мониторинга (
shturval-metrics-collector
). Откройте карточку модуля и в блоке Спецификация сервиса включите локальную базу данных хранения метрикvmsingle
и необходимые компоненты, как показано в customvalues далее.
Пример customvalues
defaultRules:
create: true
vmalert:
enabled: true
vmsingle:
enabled: true
- Загрузите кастомный ресурс VMRule в кластер управления с помощью импорта манифеста.
VMRule с правилом проверки заполненности дискового пространств Opensearch
apiVersion: operator.victoriametrics.com/v1beta1
kind: VMRule
metadata:
name: opensearchcluster-disk
namespace: shturval-logging
spec:
groups:
- name: opensearch-disk-space
rules:
- alert: OpenSearchLowDiskSpace
annotations:
description: |-
На кластере OpenSearch осталось менее 10% свободного места.
Узел: {{ $labels.node }}
Использовано: {{ $value }}%
summary: На кластере OpenSearch осталось мало дискового пространства
expr: >
100 * (1 - (opensearch_fs_total_free_bytes / opensearch_fs_total_total_bytes)) > 90
for: 5m
labels:
cluster: opensearch
severity: warning
Согласно установленному правилу в expr
алертинг сработает, когда дисковое пространство будет заполнено более чем на 90%.
Скриншот
Загрузите VMRule.
- Настройте конфигурацию алертинга, например, маршрут и получателя.
Настройка маршрута и получателя для алертинга
Настройка правил оповещения, маршрутов и получателей в графическом интерфейсе кластера управления недоступна. Конфигурирование алертинга необходимо выполнять в customvalues модуля мониторинга (shturval-metrics-collector
) кластера управления.
Когда правило заполненности пространства Opensearch добавлено в кластер управления, в боковом меню откройте раздел Сервисы и репозитории и перейдите на страницу Установленные сервисы, найдите компонент управления модуля мониторинга (shturval-metrics-collector
). Откройте карточку модуля и в блоке Спецификация сервиса укажите необходимую конфигурацию.
Пример конфигурации в customvalues, где получатель webhook
alertmanager:
enabled: true
config:
receivers:
- name: blackhole # Получатель по умолчанию. Должен быть обязательно указан
- name: <ваше значение параметра>
webhook_configs:
- max_alerts: <ваше значение параметра>
send_resolved: false
url: <ваше значение параметра>
route:
routes:
- matchers:
- <ваше значение параметра>
receiver: <ваше значение параметра>
Параметр | Описание | Тип данных | Пример |
---|---|---|---|
receivers.name |
Имя получателя оповещений | string | example-webhook |
receivers.webhook_configs.max_alerts |
Максимальное количество оповещений, включаемых в одно сообщение webhook. Оповещения, превышающие это значение, обрезаются. По умолчанию 0 (не ограничивается количество, будут включены все оповещения в сообщение) | int | 5 |
receivers.webhook_configs.url |
URL-адрес: эндпоинт для отправки HTTP-запросов на адрес webhook | string | http://example-webhook.svc/webhook |
route.routes.matchers |
Список лейблов получателя, куда будут маршрутизироваться оповещения | string | app = “example-webhook” |
receivers.matchers.name |
Значение имени получателя оповещений | string | example-webhook |
Сохраните внесенные изменения.
Проверка локального алертинга
Проверить работу локального алертинга в кластере клиентском или кластере управления можно, например, с помощью webhook, который записывает входящие сообщения в логи контейнера.
- Загрузите в кластер манифесты объектов
Deployment
,Service
,VMRule
с помощью импорта манифестов.
Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: demo-webhook
namespace: monitoring
labels:
app: demo-webhook
spec:
replicas: 1
selector:
matchLabels:
app: demo-webhook
template:
metadata:
creationTimestamp: null
labels:
app: demo-webhook
spec:
terminationGracePeriodSeconds: 30
automountServiceAccountToken: false
containers:
- name: demo-webhook
image: quay.io/mgoerens/demo-webhook-receiver-alertmanager:0.0.1
imagePullPolicy: IfNotPresent
env:
- name: PORT
value: "8080"
livenessProbe:
httpGet:
path: /healthz
port: 8080
readinessProbe:
httpGet:
path: /healthz
port: 8080
resources:
limits:
cpu: 10m
memory: 30Mi
requests:
cpu: 10m
memory: 30Mi
securityContext:
capabilities:
drop:
- ALL
allowPrivilegeEscalation: false
Service
apiVersion: v1
kind: Service
metadata:
name: demo-webhook
namespace: monitoring
labels:
app: demo-webhook
spec:
ports:
- port: 80
targetPort: 8080
protocol: TCP
name: http
selector:
app: demo-webhook
VMRule
apiVersion: operator.victoriametrics.com/v1beta1
kind: VMRule
metadata:
labels:
app: demo-webhook
role: user
name: example-alert
namespace: victoria-metrics
spec:
groups:
- concurrency: 1
interval: 1m
labels:
ruletype: alert
name: example
rules:
- alert: ExampleAlert
expr: vector(1)
type: prometheus
- В кластере в боковом меню откройте раздел Сервисы и репозитории и перейдите на страницу Установленные сервисы, найдите компонент управления модуля мониторинга (
shturval-metrics-collector
). В блоке Спецификации сервиса настройтеdemo-webhook
как получателя и укажите его в маршрутах для отправки алертов.
customvalues
alertmanager:
enabled: true
config:
receivers:
- name: blackhole
- name: demo-webhook
webhook_configs:
- max_alerts: 5
send_resolved: false
url: http://demo-webhook.monitoring.svc/webhook
route:
routes:
- matchers:
- app = "demo-webhook"
receiver: demo-webhook
Сохраните внесенные изменения.
- В неймспейсе
monitoring
кластера перейдите к просмотру пода с именемdemo-webhook
. Откройте окно просмотра логов контейнера. В логах будут сообщения сработавших алертов в кластере.