Alerting e Machine Learning
Aula 3 de 5
Alerting — Regras e Ações
O Kibana Alerting permite criar regras que disparam ações quando condições são detectadas.
Tipos de Regras
`json // Regra de Threshold — métrica ultrapassa limite POST kbn:/api/alerting/rule { "params": { "threshold": 100, "timeWindowSize": 5, "timeWindowUnit": "m", "aggType": "average", "termSize": 5 }, "consumer": "alerts", "schedule": { "interval": "1m" }, "notifyWhen": "onActionGroupChange", "rule_type_id": "threshold", "name": "CPU acima de 80%" }
// Regra de Query — resultado da query match condition POST kbn:/api/alerting/rule { "params": { "index": ["logs-*"], "timeField": "@timestamp", "timeWindowSize": 5, "timeWindowUnit": "m", "threshold": [5], "thresholdComparator": ">", "esQuery": "{"query":{"match":{"status":500}}}" }, "rule_type_id": "es_query", "name": "Erros 500 frequentes" }
// Regra de Anomalia ML (requer Machine Learning) POST kbn:/api/alerting/rule { "rule_type_id": "anomaly_detection", "name": "Anomalia em latencia", "params": { "jobIds": ["latencia_job"], "severity": "critical" } } `
Ações (Connectors)
`json // Conector Slack POST kbn:/api/actions/connector { "name": "Slack Alerts", "connector_type_id": ".slack", "secrets": { "webhookUrl": "https://hooks.slack.com/services/xxx" } }
// Conector Email POST kbn:/api/actions/connector { "name": "Email Admin", "connector_type_id": ".email", "config": { "from": "[email protected]", "host": "smtp.empresa.com", "port": 587, "secure": false }, "secrets": { "user": "kibana", "password": "senha" } }
// Conector Webhook POST kbn:/api/actions/connector { "name": "Webhook PagerDuty", "connector_type_id": ".webhook", "config": { "url": "https://events.pagerduty.com/v2/enqueue", "headers": { "Content-Type": "application/json" } }, "secrets": { "token": "pd-key" } }
// Conector Serverless (AWS EventBridge) POST kbn:/api/actions/connector { "name": "AWS EventBridge", "connector_type_id": ".serverless", "config": { "eventBusARN": "arn:aws:events:us-east-1:123:event-bus/default" } } `
Cases — Gerenciamento de Incidentes
json POST kbn:/api/cases { "title": "Alta taxa de erro no servidor produção", "tags": ["p1", "produção"], "description": "Erros 500 dispararam acima do threshold", "connector": { "id": "service-now-connector", "name": "ServiceNow", "type": ".servicenow", "fields": { "urgency": "2", "impact": "1", "severity": "2", "category": "Software" } }, "settings": { "syncAlerts": true } }
Machine Learning
Anomaly Detection
O ML do Kibana detecta automaticamente anomalias em séries temporais.
`json // Criar job de detecção de anomalia — single metric POST kbn:/api/ml/jobs { "jobId": "latencia_api", "description": "Detectar anomalias em latencia de API", "analysisConfig": { "bucketSpan": "15m", "detectors": [{ "function": "high_mean", "fieldName": "duracao_ms", "detectorDescription": "Latencia alta" }] }, "dataDescription": { "timeField": "@timestamp", "timeFormat": "epoch_ms" } }
// Population job — comparar entidades POST kbn:/api/ml/jobs { "jobId": "erros_por_host", "description": "Comparar taxa de erro entre hosts", "analysisConfig": { "bucketSpan": "30m", "detectors": [{ "function": "high_count", "byFieldName": "host.keyword", "detectorDescription": "Erros por host" }] }, "datafeedConfig": { "index": "logs-*", "query": { "match": { "status": "500" } } } }
// Multi-metric job — múltiplas dimensões POST kbn:/api/ml/jobs { "jobId": "metricas_sistema", "analysisConfig": { "bucketSpan": "10m", "detectors": [ { "function": "high_mean", "fieldName": "cpu_usage", "partitionFieldName": "host" }, { "function": "high_mean", "fieldName": "memory_usage", "partitionFieldName": "host" } ] } } `
Forecast — Previsão de Séries
`json POST kbn:/api/ml/jobs/forecast/latencia_api { "duration": "7d" }
// Ver resultados GET kbn:/api/ml/jobs/forecast/latencia_api/_results `
Visualizando Anomalias
-
Machine Learning > Anomaly Detection > Single Metric Viewer
- Gráfico com bandas de anomalia (vermelho = crítico, amarelo = warning)
- Timeline interativa
- Detalhes por detector
-
Anomaly Swimlanes
- Visão agregada de múltiplos jobs
- Cores indicam severidade por bucket de tempo
Lab: Monitoramento com Alertas e ML
`ash
1. Crie uma regra de threshold para CPU > 80%
2. Configure conector Slack para notificação
3. Crie um job ML de single metric para latencia
4. Injete dados com anomalia
5. Verifique a detecção no Single Metric Viewer
6. Crie um forecast de 7 dias
7. Abra um Case vinculado ao alerta
curl -X POST "http://localhost:5601/api/alerting/rule"
-H "Content-Type: application/json"
-d '{"params": {"threshold": 80}, "rule_type_id": "threshold", "name": "CPU Alerta"}'
`
Alerting + Machine Learning transformam o Kibana de visualizador em sistema proativo de monitoramento com detecção inteligente de anomalias.