Help me een aangepast waarschuwingbeheer systeem implementeren voor mijn Prometheus setup.
description
Door een aangepast waarschuwingbeheer systeem te implementeren, kan ik waarschuwing vermoeidheid verminderen, zorgen dat kritieke problemen prioriteit krijgen, en de reactietijden op incidenten verbeteren.
prompt
try_prompt
Ik wil een aangepast waarschuwingbeheer systeem opzetten binnen mijn Prometheus bewakingsomgeving dat waarschuwingen intelligent kan prioriteren op basis van hun ernst en impact op mijn diensten. Geef een gedetailleerd plan dat het instellen van waarschuwin ... more
generate_helper
...
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier is een gedetailleerd plan voor het opzetten van een aangepast, intelligent waarschuwingbeheersysteem binnen je Prometheus-omgeving, inclusief prioritering, categorisering en integratie met notificatiesystemen:
1. Voorbereiding en Architectuur
a. Doelstellingen Definieer duidelijke doelstellingen voor je waarschuwingbeheersysteem: bijvoorbeeld, minimaliseer false positives, prioriteer kritieke incidenten, en bied bruikbare context.
b. Componenten Identificeer de benodigde componenten:
- Prometheus voor monitoring en alerting rules.
- Alertmanager voor het afhandelen en routeren van waarschuwingen.
- Een classificatiesysteem voor ernst en impact.
- Notificatiesystemen (bijvoorbeeld Slack, e-mail, PagerDuty).
- Eventueel een centrale dashboard of incident management tool.
2. Instellen van Waarschuwingsregels
a. Basisregels voor CPU-gebruik:
```yaml
groups:
- name: CPU Alerts
rules:
- alert: HighCPUUsage
expr: 100 - (avg by(instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
for: 5m
labels:
severity: warning
impact: medium
annotations:
summary: "Hoge CPU gebruik op {{ $labels.instance }}"
description: "CPU gebruik is hoger dan 80% gedurende meer dan 5 minuten."
```
b. Uitbreiding met meer regels voor verschillende diensten en metrics.
3. Categoriseren van Waarschuwingen (Kritiek, Waarschuwing, Info)
a. Labels toevoegen:
- severity: Kritiek, Waarschuwing, Info
- impact: hoog, medium, laag (optioneel)
b. Voorbeeld:
```yaml
labels:
severity: critical
impact: high
```
c. In alertregels zorg je dat deze labels consistent worden toegekend op basis van de ernst.
4. Intelligent Prioriteringsmechanisme
a. Gebruik labels en regels om waarschuwingen te prioriteren:
- Kritieke waarschuwingen (severity: critical) krijgen voorrang.
- Definieer in Alertmanager routing rules dat kritieke waarschuwingen direct naar de juiste kanalen gaan.
b. Configuratievoorbeeld Alertmanager:
```yaml
route:
receiver: 'critical-alerts'
group_by: ['alertname']
routes:
- match:
severity: 'critical'
receiver: 'pagerduty'
- match:
severity: 'warning'
receiver: 'slack'
- match:
severity: 'info'
receiver: 'email'
```
5. Integratie met Notificatiesystemen
a. Instellen van receivers:
```yaml
receivers:
- name: 'pagerduty'
pagerduty_configs:
service_key: YOUR_SERVICE_KEY
- name: 'slack'
slack_configs:
api_url: https://hooks.slack.com/services/your/webhook
channel: '#alerts'
- name: 'email'
email_configs:
to: 'admin@domein.com'
from: 'alertmanager@domein.com'
```
b. Voeg filters en templates toe om waarschuwingen begrijpelijk te maken.
6. Verbetering door Context en Automatisering
a. Voeg labels toe die impact en prioriteit specificeren, bijvoorbeeld:
```yaml
annotations:
runbook: 'https://your.runbook.link'
impact: 'High impact op service XYZ'
```
b. Overweeg het gebruik van automatische escalaties voor kritieke waarschuwingen.
c. Gebruik externe systemen (bijv. Grafana, incident management tools) om waarschuwingen te visualiseren en te traceren.
7. Monitoring en Feedback
a. Houd statistieken bij over waarschuwing-incidenten en hun afhandeling.
b. Pas regels en prioritering aan op basis van feedback en incidentanalyses.
8. Documentatie en Training
a. Documenteer het waarschuwingensysteem en procedures.
b. Train je team in interpretatie en afhandeling van waarschuwingen op basis van prioriteit.
Door deze stappen te volgen, creëer je een flexibel en intelligent waarschuwingbeheer systeem dat prioriteiten stelt op basis van ernst en impact, en dat efficiënt integreert met je bestaande notificatie-infrastructuur.
provider: deepseek
model: deepseek-chat
Hier is een gedetailleerd plan voor het opzetten van een aangepast waarschuwingbeheer systeem in Prometheus:
## 1. Waarschuwingsregels Definitie
### Bestaande CPU-regels uitbreiden:
```yaml
groups:
- name: cpu_alerts
rules:
# KRITIEK - Onmiddellijke actie vereist
- alert: CPUUsageCritical
expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 90
for: 2m
labels:
severity: kritiek
category: performance
impact: hoog
annotations:
summary: "Kritieke CPU belasting op {{ $labels.instance }}"
description: "CPU gebruik is {{ $value }}% gedurende meer dan 2 minuten"
runbook: "https://wiki.bedrijf.nl/runbooks/cpu-critical"
# WAARSCHUWING - Binnen uren actie vereist
- alert: CPUUsageWarning
expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
for: 5m
labels:
severity: waarschuwing
category: performance
impact: medium
annotations:
summary: "Hoge CPU belasting op {{ $labels.instance }}"
description: "CPU gebruik is {{ $value }}% gedurende meer dan 5 minuten"
# INFO - Ter informatie
- alert: CPUUsageInfo
expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 70
for: 10m
labels:
severity: info
category: performance
impact: laag
annotations:
summary: "Verhoogd CPU gebruik op {{ $labels.instance }}"
description: "CPU gebruik is {{ $value }}% gedurende meer dan 10 minuten"
```
## 2. Uitgebreide Waarschuwingscategorieën
### Aanvullende regelgroepen toevoegen:
```yaml
- name: memory_alerts
rules:
- alert: MemoryUsageCritical
expr: (1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100 > 95
for: 2m
labels:
severity: kritiek
category: resources
impact: hoog
- name: service_alerts
rules:
- alert: ServiceDownCritical
expr: up == 0
for: 1m
labels:
severity: kritiek
category: availability
impact: hoog
- name: disk_alerts
rules:
- alert: DiskSpaceCritical
expr: (1 - (node_filesystem_avail_bytes / node_filesystem_size_bytes)) * 100 > 90
for: 2m
labels:
severity: kritiek
category: storage
impact: hoog
```
## 3. Alertmanager Configuratie
### alertmanager.yml:
```yaml
global:
smtp_smarthost: 'smtp.bedrijf.nl:587'
smtp_from: 'alertmanager@bedrijf.nl'
smtp_auth_username: 'alertmanager'
smtp_auth_password: 'wachtwoord'
route:
group_by: ['alertname', 'cluster']
group_wait: 10s
group_interval: 10s
repeat_interval: 1h
receiver: 'default-receiver'
# Route op basis van severity
routes:
- match:
severity: kritiek
receiver: 'critical-team'
group_wait: 5s
repeat_interval: 5m
continue: false
- match:
severity: waarschuwing
receiver: 'warning-team'
group_wait: 30s
repeat_interval: 15m
continue: false
- match:
severity: info
receiver: 'info-team'
group_wait: 1m
repeat_interval: 1h
continue: false
receivers:
- name: 'default-receiver'
email_configs:
- to: 'alerts@bedrijf.nl'
headers:
subject: '[DEFAULT] {{ .GroupLabels.alertname }}'
- name: 'critical-team'
email_configs:
- to: 'oncall-team@bedrijf.nl'
headers:
subject: '[KRITIEK] {{ .GroupLabels.alertname }} - Onmiddellijke actie vereist!'
pagerduty_configs:
- service_key: 'uw-pagerduty-key'
description: 'Kritieke alert: {{ .GroupLabels.alertname }}'
- name: 'warning-team'
email_configs:
- to: 'dev-team@bedrijf.nl'
headers:
subject: '[WAARSCHUWING] {{ .GroupLabels.alertname }}'
slack_configs:
- api_url: 'https://hooks.slack.com/services/...'
channel: '#waarschuwingen'
title: 'Waarschuwing Alert'
text: '{{ range .Alerts }}{{ .Annotations.description }}{{ end }}'
- name: 'info-team'
email_configs:
- to: 'monitoring@bedrijf.nl'
headers:
subject: '[INFO] {{ .GroupLabels.alertname }}'
slack_configs:
- api_url: 'https://hooks.slack.com/services/...'
channel: '#info-alerts'
title: 'Informatie Alert'
```
## 4. Impact Classificatie Matrix
```yaml
# Aanvullende labels voor impact assessment
impact_labels:
hoog:
- service_down
- data_loss
- security_breach
- performance_degradation_90p
medium:
- performance_degradation_80p
- resource_warning
- capacity_planning
laag:
- informational
- maintenance
- capacity_info
```
## 5. Implementatiestappen
1. **Backup huidige configuratie**
```bash
cp prometheus.yml prometheus.yml.backup
cp alertmanager.yml alertmanager.yml.backup
```
2. **Nieuwe regels toevoegen**
- Plaats alert regels in `/etc/prometheus/rules/`
- Verwijs naar regels in `prometheus.yml`:
```yaml
rule_files:
- "rules/*.yml"
```
3. **Alertmanager configureren**
- Pas `alertmanager.yml` aan volgens bovenstaande template
- Test configuratie: `amtool check-config alertmanager.yml`
4. **Validatie stappen**
```bash
# Prometheus config check
promtool check rules /etc/prometheus/rules/*.yml
# Alertmanager config check
amtool check-config alertmanager.yml
# Herstart services
systemctl restart prometheus alertmanager
```
5. **Monitoring en optimalisatie**
- Gebruik `ALERTS` metric om alert volume te monitoren
- Pas drempels aan op basis van historische data
- Review false positives regelmatig
## 6. Best Practices
- **Escalatie beleid**: Kritieke alerts escaleren na 15 minuten zonder response
- **Onderdrukking**: Gebruik `inhibit_rules` in Alertmanager om gerelateerde alerts te onderdrukken
- **Documentatie**: Onderhoud runbooks voor elke alert type
- **Review**: Maandelijks alert effectiviteit reviewen
Dit systeem zorgt voor geprioriteerde waarschuwingen met duidelijke escalatiepaden op basis van impact en urgentie.

