Как настроить локальный алертинг в кластере
В платформе “Штурвал” для клиентских кластеров и кластера управления по умолчанию реализован централизованный алертинг с размещением метрик и правил оповещения в кластере управления. При использовании централизованного алертинга доступна настройка правил оповещения из интерфейса кластера.
В случае недоступности кластера управления, выключенного централизованного алертинга или отсутствия необходимости работы централизованного алертинга вы можете настроить локальный алертинг в кластере.
В клиентском кластере
Шаг 1. Подготовить ShturvalServicePatch
Подготовьте ShturvalServicePatch для применения к спецификации (ssc) Компонента управления модуля мониторинга (shturval-metrics-collector), где включите локальную базу данных хранения метрик vmsingle и необходимые компоненты, как приведено в примере, используя ваши значения параметров.
Пример ShturvalServicePatch
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
name: <имя ресурса>
spec:
shturvalServiceConfigName: shturval-metrics-collector
customvalues:
alertmanager:
enabled: true
defaultRules:
create: true
vmagent:
additionalRemoteWrites:
- url: <ваше значение параметра>
vmalert:
enabled: true
vmsingle:
enabled: true
| Параметр | Описание | Тип данных | Пример |
|---|---|---|---|
metadata.name |
Имя создаваемого ShturvalServicePatch | string | metrics-collector-vmsingle |
additionalRemoteWrites.url |
URL-адрес VictoriaMetrics Insert, указанный в спецификации до изменений | string | https://vminsert.clustername.ip-10-11-12-13.shturval.link/insert/2452490585/prometheus/ |
Параметр additionalRemoteWrites.url необходимо указывать, чтобы метрики направлялись не только в локальную базу кластера, но и централизовано в кластер управления.
Шаг 2. Загрузить ShturvalServicePatch в кластер
В кластере загрузите с помощью импорта манифестов подготовленный ShturvalServicePatch.
Скриншот интерфейса платформы

После загрузки ShturvalServicePatch потребуется время для применения изменений.
В результате:
- метрики будут направлены в локальную VM Single базу и если централизованное хранение доступно, то дополнительно в кластер управления;
- в клиентском кластере добавлены кастомные ресурсы API-группы “operator.victoriametrics.com”: VMAlertmanager, VMAlert, VMSingle и системные правила VMRule;
- возможно настроить конфигурацию локального алертинга. Конфигурация локального алертинга должна быть настроена в ssc (спецификации)
shturval-metrics-collector
Шаг 3. Пример как настроить маршруты и получателей
Когда настроен локальный алертинг, конфигурирование правил оповещения, маршрутов и получателей в графическом интерфейсе кластера управления недоступна. Конфигурирование алертинга необходимо выполнять через ShturvalServicePatch для модуля мониторинга (shturval-metrics-collector) кластера управления.
Подготовьте ShturvalServicePatch для применения к спецификации (ssc) Компонента управления модуля мониторинга (shturval-metrics-collector), где задайте требуемую конфигурацию в alertmanager.
Пример конфигурации в ShturvalServicePatch, где получатель webhook
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
name: <имя ресурса>
spec:
shturvalServiceConfigName: shturval-metrics-collector
customvalues:
alertmanager:
enabled: true
config:
receivers:
- name: blackhole # Получатель по умолчанию. Должен быть обязательно указан
- name: <ваше значение параметра>
webhook_configs:
- max_alerts: <ваше значение параметра>
send_resolved: false
url: <ваше значение параметра>
route:
routes:
- matchers:
- <ваше значение параметра>
receiver: <ваше значение параметра>
| Параметр | Описание | Тип данных | Пример |
|---|---|---|---|
metadata.name |
Имя создаваемого ShturvalServicePatch | string | metrics-collector-config |
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 |
В кластере загрузите с помощью импорта манифестов подготовленный ShturvalServicePatch.
Скриншот интерфейса платформы

Шаг 4. Проверить настройку
Выполните проверку настройки локального алертинга.
Чтобы проверить настройку работы локального алертинга, необходимо проверить состояния локального хранилища экземпляра 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.
Скриншот интерфейса платформы



В кластере управления
Конфигурирование локального алертинга в кластере управления возможно с помощью кастомного ресурса VMRule и применения изменений к спецификации (ssc) компонента управления модуля мониторинга (VM Agent) (shturval-metrics-collector).
Шаг 1. Подготовить ShturvalServicePatch
Подготовьте ShturvalServicePatch для применения к спецификации (ssc) Компонента управления модуля мониторинга (shturval-metrics-collector), где включите локальную базу данных хранения метрик vmsingle и необходимые компоненты, как приведено в примере.
Пример ShturvalServicePatch
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
name: metrics-collector-vmsingle
spec:
shturvalServiceConfigName: shturval-metrics-collector
customvalues:
defaultRules:
create: true
vmalert:
enabled: true
vmsingle:
enabled: true
Шаг 2. Загрузить ShturvalServicePatch в кластер управления
В кластер управления загрузите с помощью импорта манифестов подготовленный ShturvalServicePatch.
Скриншот интерфейса платформы

Шаг 3. Загрузить VMRule
Загрузите кастомный ресурс VMRule в кластер управления с помощью импорта манифеста.
Пример VMRule
apiVersion: operator.victoriametrics.com/v1beta1
kind: VMRule
metadata:
labels:
cluster: clustername
monitoringid: "0"
role: user
name: <ваше значение параметра>
namespace: victoria-metrics
spec:
groups:
- name: <ваше значение параметра>
rules:
- alert: <ваше значение параметра>
annotations:
message: <ваше значение параметра>
expr: <ваше значение параметра>
for: <ваше значение параметра>
labels:
<ваше значение>
| Параметр | Описание | Тип данных | Пример |
|---|---|---|---|
metadata.name |
Имя правила | string | shturval-backup |
groups.name |
Имя группы правил | string | shturval-backup |
rules.alert |
Имя алерта (оповещения) | string | VeleroBackupPartialFailures |
rules.annotations.message |
Текст сообщения в оповещении пользователю | string | Velero backup {{ $labels.schedule }} has {{ $value | humanizePercentage }} partialy failed backups |
rules.expr |
Правило, ри выполнении которого будет отправлено оповещение | string | velero_backup_partial_failure_total{schedule!=""} / velero_backup_attempt_total{schedule!=""} > 0.25 |
rules.for |
Период времени ожидания перед отправкой оповещения | string | 15m |
rules.labels |
Лейблы правила | string | severity: warning |
Шаг 4. Настроить маршрут и получателя
Настройте конфигурацию алертинга, например, маршрут и получателя.
Настройка правил оповещения, маршрутов и получателей в графическом интерфейсе кластера управления при локальном алертинге недоступна. Конфигурирование алертинга необходимо выполнять в customvalues модуля мониторинга (shturval-metrics-collector) кластера управления.
Когда правило добавлено в кластер управления (для локального алертинга или централизованного), вы можете настроить конфигурацию алертинга:
- Подготовьте ShturvalServicePatch для применения к спецификации (ssc) Компонента управления модуля мониторинга (
shturval-metrics-collector), где задайте требуемую конфигурацию вalertmanager.
Пример конфигурации в ShturvalServicePatch, где получатель webhook
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
name: <имя ресурса>
spec:
shturvalServiceConfigName: shturval-metrics-collector
customvalues:
alertmanager:
enabled: true
config:
receivers:
- name: blackhole # Получатель по умолчанию. Должен быть обязательно указан
- name: <ваше значение параметра>
webhook_configs:
- max_alerts: <ваше значение параметра>
send_resolved: false
url: <ваше значение параметра>
route:
routes:
- matchers:
- <ваше значение параметра>
receiver: <ваше значение параметра>
| Параметр | Описание | Тип данных | Пример |
|---|---|---|---|
metadata.name |
Имя создаваемого ShturvalServicePatch | string | metrics-collector-config |
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 |
- В кластер управления загрузите с помощью импорта манифестов подготовленный ShturvalServicePatch.
Скриншот интерфейса платформы

Для применения изменений может потребоваться время.
Пример проверки работы локального алертинга
Проверить работу локального алертинга в кластере клиентском или кластере управления можно, например, с помощью webhook, который записывает входящие сообщения в логи контейнера.
Шаг 1. Загрузить demo-webhook
Загрузите в кластер манифесты объектов Deployment, Service с помощью импорта манифестов.
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
Шаг 2. Подготовить ShturvalServicePatch
Подготовьте ShturvalServicePatch для применения к спецификации (ssc) Компонента управления модуля мониторинга (shturval-metrics-collector), где задайте требуемую конфигурацию в alertmanager.
ShturvalServicePatch
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
name: metrics-collector-alertmanager
spec:
shturvalServiceConfigName: shturval-metrics-collector
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
Шаг 3. Загрузить ShturvalServicePatch в кластер
В кластере загрузите с помощью импорта манифестов подготовленный ShturvalServicePatch.
Скриншот интерфейса платформы

Шаг 4. Загрузить VMRule
Загрузите в кластер манифест объекта VMRule с помощью импорта манифестов.
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:
app: demo-webhook
ruletype: alert
name: example
rules:
- alert: ExampleAlert
expr: vector(1)
type: prometheus
VMRule кластера управления
apiVersion: operator.victoriametrics.com/v1beta1
kind: VMRule
metadata:
labels:
cluster: clustername
monitoringid: "0"
app: demo-webhook
role: user
name: example-alert
namespace: victoria-metrics
spec:
groups:
- concurrency: 1
interval: 1m
labels:
app: demo-webhook
ruletype: alert
name: example
rules:
- alert: ExampleAlert
expr: vector(1)
type: prometheus
Шаг 5. Проверить логи webhook
- В неймспейсе
monitoringкластера перейдите к просмотру пода с именемdemo-webhook. Откройте окно просмотра логов контейнера. В логах будут сообщения сработавших алертах в кластере.
Скриншот интерфейса платформы

