Как настроить алертинг по логам
VMRule и VMAlert для VictoriaLogs.
В платформе «Штурвал» для клиентских кластеров и кластера управления логи хранятся в VictoriaLogs. При необходимости можно настроить оповещение (алертинг) по логам кластера — через кастомные ресурсы VMRule и VMAlert. Ниже — пошаговая инструкция с примерами.
Предварительные условия
- Логи кластера доступны на вкладке Логи дашборда кластера: в кластере включён модуль локального сбора логов (shturval-log-collector, Vector), в кластере управления работает shturval-metrics-collector.
- В кластере управления настроен Alertmanager для доставки уведомлений (Email, Telegram, Webhook и др.).
Шаг 1: Создание VMRule
VMRule задаёт правило: при каком условии в логах срабатывает алерт.
apiVersion: operator.victoriametrics.com/v1beta1
kind: VMRule
metadata:
labels:
cluster: clustername
role: user
vmalert-type: vlogs
name: vlogs-rule
namespace: clustername
spec:
groups:
- headers:
- ProjectID: 4
interval: 5m
name: vlogsgroup
type: vlogs
rules:
- alert: vlogsrule
annotations:
description: 'SSC {{ index $labels "objectRef.name" }} was updated by {{ index $labels "user.username" }} in the last {{$for}}'
expr: objectRef.resource:"shturvalserviceconfigs" verb:~"patch|update" | stats by(objectRef.name, objectRef.resource, user.username) count() as updateSSC | filter updateSSC:>1
labels:
source: vlogs
| Параметр | Описание |
|---|---|
| metadata.labels.cluster | Имя кластера, где требуется алертинг по логам |
| metadata.name | Имя правила |
| metadata.namespace | Неймспейс кластера (имя кластера) |
| groups.name | Имя группы правил |
| groups.headers | ProjectID в VictoriaLogs. Можно указать только один проект |
| groups.type | vlogs |
| rules.alert | Имя алерта (оповещения) |
| rules.expr | Выражение для оповещения по логам (поле expr в правиле) |
Согласно установленному правилу в expr оповещения будут приходить при изменении сервисов (SSC) в кластере.
Шаг 2: Создание VMAlert
VMAlert оценивает правила и отправляет алерты в Alertmanager.
apiVersion: operator.victoriametrics.com/v1beta1
kind: VMAlert
metadata:
labels:
cluster: clustername
name: vlogs
namespace: clustername
spec:
datasource:
url: http://vlogs-logs.clustername:9428
evaluationInterval: 30s
externalLabels:
cluster: clustername
extraArgs:
rule.defaultRuleType: vlogs
notifiers:
- url: http://vmalertmanager-shturval-metrics-collector.victoria-metrics:9093
remoteRead:
url: http://shturval-monitoring-vmselect.victoria-metrics:8481/select/monitoring_id:3/prometheus
remoteWrite:
url: http://shturval-monitoring-vminsert.victoria-metrics:8480/insert/monitoring_id:3/prometheus
resources:
limits:
cpu: 200m
memory: 256Mi
requests:
cpu: 100m
memory: 128Mi
ruleSelector:
matchLabels:
vmalert-type: vlogs
cluster: clustername
ruleNamespaceSelector: {}
selectAllByDefault: false
| Параметр | Описание |
|---|---|
| metadata.namespace | Неймспейс кластера, в котором настраивается алертинг по логам |
| metadata.labels.cluster | Имя кластера, в котором настраивается алертинг по логам |
| spec.datasource.url | URL источника логов кластера: http://vlogs-logs.<имя_кластера>:9428 |
| externalLabels.cluster | Имя кластера, в котором настраивается алертинг по логам |
| spec.remoteRead.url | VictoriaMetrics Select; вместо monitoring_id укажите значение аннотации кластера с таким ключом |
| spec.remoteWrite.url | VictoriaMetrics Insert; аналогично monitoring_id |
| spec.resources | Ресурсы requests и limits (например: limits cpu 200m, memory 256Mi; requests cpu 100m, memory 128Mi) |
Шаг 3: Загрузка в платформу
В кластере управления с помощью импорта манифестов, загрузите VMRule и VMAlert.
Скриншот интерфейса платформы

Проверка алертинга
Проверить алертинг по логам можно с помощью уведомления на devmail. Настройте devmail: создайте получателя типа email в разделе Оповещения → Получатели. Подробнее — пример настройки отправки уведомления на devmail.