Проверка работы локального алертинга

Проверка работы локального алертинга в кластере клиентском или кластере управления может быть проведена, например, с помощью webhook, который записывает входящие сообщения в логи контейнера:

  1. Загрузить в кластер манифесты объектов 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
  1. Подготовить 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
  1. В кластере загрузить с помощью импорта манифестов подготовленный ShturvalServicePatch.
  2. Загрузить в кластер манифест объекта 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
  1. В неймспейсе monitoring кластера перейти к просмотру пода с именем demo-webhook; открыть окно просмотра логов контейнера (рисунок 17). В логах будут сообщения сработавших алертах в кластере (рисунок 18).

Рисунок 17 ‒ Просмотр пода с именем demo-webhook

Рисунок 18 ‒ Просмотр логов контейнера