Алертинг по логам кластера

В платформе “Штурвал” для кластеров (клиентских, управления) реализовано хранение логов в VLogs. Логи кластера доступны на вкладке Логи дашборда кластера.

При необходимости вы можете настроить оповещение (алертинг) по логам кластера (клиентского, управления). Для этого:

В кластере управления с помощью импорта манифестов для кластера, где требуется алертинг по логам, загрузите кастомные ресурсы VMRule и VMAlert, используя свои значения параметров.

Пример VMRule
apiVersion: operator.victoriametrics.com/v1beta1
kind: VMRule
metadata:
  labels:
    cluster: <ваше значение параметра>
    role: user
    vmalert-type: vlogs
  name: <ваше значение параметра>
  namespace: <ваше значение параметра>
spec:
  groups:
    - headers:
        - <ваше значение параметра>
      interval: 5m
      name: <ваше значение параметра>
      type: vlogs
      rules:
        - alert: <ваше значение параметра>
          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 

Согласно установленному правилу в expr оповещения будут приходить при изменении в сервисах кластера.

ПараметрОписаниеТип данныхПример
metadata.clusterИмя кластера, где требуется алертинг по логамstringclustername
metadata.nameИмя правилаstringvlogs
groups.nameИмя группы правилstringvlogsgroup
groups.headersПроект (ProjectID) в VLogs. Обратите внимание! Возможно указать только один проектarrayProjectID: 4
rules.alertИмя алерта (оповещения)stringvlogsrule
Пример VMAlert
apiVersion: operator.victoriametrics.com/v1beta1
kind: VMAlert
metadata:
  annotations:
  labels:
    cluster: <ваше значение параметра> 
  name: vlogs
  namespace: <ваше значение параметра> 
spec:
  datasource:
    url: <ваше значение параметра>
  evaluationInterval: 30s
  externalLabels:
    cluster: <ваше значение параметра>
  extraArgs:
    rule.defaultRuleType: vlogs
  image: {}
  notifiers:
    - url: http://vmalertmanager-shturval-metrics-collector.victoria-metrics:9093
  remoteRead:
    url: <ваше значение параметра>
  remoteWrite:
    url: <ваше значение параметра>
  resources:
    limits:
      cpu: <ваше значение параметра>
      memory: <ваше значение параметра>
    requests:
      cpu: <ваше значение параметра>
      memory: <ваше значение параметра>
  ruleSelector:
    matchLabels:
      vmalert-type: vlogs
      cluster: <ваше значение параметра>clustername
  ruleNamespaceSelector: {}
  selectAllByDefault: false 
ПараметрОписаниеТип данныхПример
metadata.namespaceИмя неймспейса кластера, в котором настраивается алертинг по логамstringclustername
metadata.labels.clusterИмя кластера, в котором настраивается алертинг по логамstringclustername
spec.datasource.urlURL-адрес источника логов кластераstringhttp://vlogs-logs.clustername:9428
externalLabels.clusterИмя кластера, в котором настраивается алертинг по логамstringclustername
spec.remoteRead.urlURL-адрес Victoria Metric Select. Вместо monitoring_id укажите значение аннотации кластера с таким ключомstringhttp://shturval-monitoring-vmselect.victoria-metrics:8481/select/monitoring_id:3/prometheus
spec.remoteWrite.urlURL-адрес Victoria Metrics Insert. Вместо monitoring_id укажите значение аннотации кластера с таким ключомstringhttp://shturval-monitoring-vminsert.victoria-metrics:8480/insert/monitoring_id:3/prometheus
spec.resourcesРесурсы requests и limitsstring[]objectlimits:
  cpu: 200m
    memory: 256Mi
  requests:
    cpu: 100m
      memory: 128Mi
Скриншот

logs-alert

Нажмите Проверить и Сохранить.

Проверить алертинг по логам можно с помощью уведомления на devmail. Инструкция по настройке devmail находится в разделе Email на странице Обработка правил оповещения.