kb.erickguedes.com
Kibana: Visualização e Monitoramento

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

  1. Machine Learning > Anomaly Detection > Single Metric Viewer

    • Gráfico com bandas de anomalia (vermelho = crítico, amarelo = warning)
    • Timeline interativa
    • Detalhes por detector
  2. 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.