Pular para o conteúdo
Skillpedia
Deploy e nuvem (DevOps)48 mil · #2906

elk-stack

Faz seu agente gerenciar o ELK Stack para coletar e analisar dados. Ele organiza informações de logs para facilitar a busca e o entendimento.

O que ela faz

Esta ferramenta ajuda a organizar e analisar informações importantes (chamadas de 'logs') de vários programas e sistemas. Ela permite que você procure, veja e entenda o que está acontecendo.

Quando usar

  • ✓Quando você tem muitos programas e quer ver todos os avisos e erros em um só lugar.
  • ✓Quando você precisa encontrar rapidamente uma mensagem específica em meio a muitas informações.
  • ✓Quando você quer criar gráficos para entender o desempenho dos seus sistemas.

Exemplo do que pedir para a IA

“Configure o ELK Stack para coletar logs do meu servidor web.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/elk-stack/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/elk-stack/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Ela usa três componentes principais: Elasticsearch para guardar e buscar os logs, Logstash para coletar e organizar os logs, e Kibana para visualizar tudo em painéis fáceis de entender.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill elk-stack

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/elk-stack/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Pilha ELK

Centralize e analise logs com Elasticsearch, Logstash e Kibana.

Quando Usar Esta Habilidade

Use esta habilidade quando:

  • Centralizar logs de várias fontes
  • Construir plataformas de busca e análise de logs
  • Criar dashboards e alertas baseados em logs
  • Implementar busca de texto completo para logs
  • Processar e transformar dados de logs

Pré-requisitos

  • Infraestrutura Docker ou de servidor
  • Espaço em disco suficiente para armazenamento de logs
  • Acesso à rede a partir das fontes de log

Implantação com Docker

# docker-compose.yml
version: '3.8'

services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.11.0
    environment:
      - discovery.type=single-node
      - xpack.security.enabled=false
      - "ES_JAVA_OPTS=-Xms1g -Xmx1g"
    ports:
      - "9200:9200"
    volumes:
      - elasticsearch-data:/usr/share/elasticsearch/data

  logstash:
    image: docker.elastic.co/logstash/logstash:8.11.0
    volumes:
      - ./logstash/pipeline:/usr/share/logstash/pipeline
      - ./logstash/config:/usr/share/logstash/config
    ports:
      - "5044:5044"
      - "5000:5000"
    depends_on:
      - elasticsearch

  kibana:
    image: docker.elastic.co/kibana/kibana:8.11.0
    ports:
      - "5601:5601"
    environment:
      - ELASTICSEARCH_HOSTS=http://elasticsearch:9200
    depends_on:
      - elasticsearch

  filebeat:
    image: docker.elastic.co/beats/filebeat:8.11.0
    user: root
    volumes:
      - ./filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro
      - /var/lib/docker/containers:/var/lib/docker/containers:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
    depends_on:
      - logstash

volumes:
  elasticsearch-data:

Configuração do Elasticsearch

Modelos de Índice

PUT _index_template/logs-template
{
  "index_patterns": ["logs-*"],
  "template": {
    "settings": {
      "number_of_shards": 1,
      "number_of_replicas": 1,
      "index.lifecycle.name": "logs-policy"
    },
    "mappings": {
      "properties": {
        "@timestamp": { "type": "date" },
        "message": { "type": "text" },
        "level": { "type": "keyword" },
        "service": { "type": "keyword" },
        "host": { "type": "keyword" },
        "trace_id": { "type": "keyword" }
      }
    }
  }
}

Gerenciamento do Ciclo de Vida do Índice

PUT _ilm/policy/logs-policy
{
  "policy": {
    "phases": {
      "hot": {
        "min_age": "0ms",
        "actions": {
          "rollover": {
            "max_size": "50GB",
            "max_age": "1d"
          }
        }
      },
      "warm": {
        "min_age": "7d",
        "actions": {
          "shrink": { "number_of_shards": 1 },
          "forcemerge": { "max_num_segments": 1 }
        }
      },
      "cold": {
        "min_age": "30d",
        "actions": {
          "freeze": {}
        }
      },
      "delete": {
        "min_age": "90d",
        "actions": {
          "delete": {}
        }
      }
    }
  }
}

Pipeline do Logstash

Pipeline Básico

# logstash/pipeline/main.conf
input {
  beats {
    port => 5044
  }
  
  tcp {
    port => 5000
    codec => json_lines
  }
}

filter {
  # Parse JSON logs
  if [message] =~ /^\{/ {
    json {
      source => "message"
    }
  }
  
  # Parse timestamp
  date {
    match => ["timestamp", "ISO8601", "yyyy-MM-dd HH:mm:ss"]
    target => "@timestamp"
  }
  
  # Add environment tag
  mutate {
    add_field => { "environment" => "production" }
  }
  
  # Grok pattern for nginx logs
  if [type] == "nginx" {
    grok {
      match => {
        "message" => '%{IPORHOST:client_ip} - %{USER:user} \[%{HTTPDATE:timestamp}\] "%{WORD:method} %{URIPATHPARAM:request} HTTP/%{NUMBER:http_version}" %{NUMBER:status} %{NUMBER:bytes}'
      }
    }
  }
}

output {
  elasticsearch {
    hosts => ["elasticsearch:9200"]
    index => "logs-%{+YYYY.MM.dd}"
  }
}

Filtragem Avançada

filter {
  # Analisa logs de aplicativos
  grok {
    match => {
      "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:level} \[%{DATA:service}\] %{GREEDYDATA:log_message}"
    }
  }
  
  # Extrai o ID de rastreamento da mensagem
  if [log_message] =~ /trace_id=/ {
    grok {
      match => { "log_message" => "trace_id=%{UUID:trace_id}" }
    }
  }
  
  # Consulta GeoIP
  if [client_ip] {
    geoip {
      source => "client_ip"
      target => "geoip"
    }
  }
  
  # Descarta logs de depuração em produção
  if [level] == "DEBUG" and [environment] == "production" {
    drop {}
  }
  
  # Enriquece com consulta
  translate {

…
Perguntas frequentes

O que são 'logs'?

Logs são como um diário de bordo para programas e sistemas. Eles registram o que aconteceu, quando aconteceu e se houve algum problema.

Preciso saber programar para usar isso?

Não é preciso ser um programador experiente. A ferramenta simplifica a configuração, mas entender o básico de como os sistemas funcionam ajuda.

O que é o Docker?

Docker é uma tecnologia que ajuda a rodar programas em ambientes isolados, como caixas. Isso facilita a instalação e o uso de ferramentas complexas como o ELK Stack.

Detalhes

Descrição original do autor

Deploy and manage the ELK Stack (Elasticsearch, Logstash, Kibana) for log aggregation and analysis.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#2906
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas