- Logs centralizados
- Métricas de serviços e servidores
- APM
- Segurança (SIEM)
- Análise de negócios
- IoT
- Monitoramento de redes sociais
- Buscas inteligentes dentro do site
- Coletar dados de grandes máquinas
- Elasticsearch
- Data store
- Full text search
- Naturalmente distribuído
- Beats
- Agents de função específica - lightweight shipper
- Filebeat = envia arquivos
- Metricbeat = métricas
- Heartbeat = checar saúde, uptime
- Packetbeat = dados de rede
- Consultas DNS
- Flow de rede
- Tráfego HTTP
- Logs de banco, queries executadas, etc
- Auditbeat = logs de auditoria (auditd do linux)
- Functionbeat = Lambda, envia informações de SQS, CloudWatch, etc
- Winlogbeat = Eventos de windows (segurança, sysmon)
- Libbeat = Biblioteca para criação dos beats
- Não precisa do beat pra fazer alguma coisa
- Logstash
- Logística de dados - ETL (Extract, Trasnform and Load)
- 3 sessões
- Input
- Ler arquivos
- Escutar porta http
- Escutar porta tcp
- Chamar uma API
- Ler de um streaming
- Ler de uma fila (Redis, Rabbit)
- Syslog
- Beats
- JDBC
- Filter (enriquecimento dos dados)
- Mutate
- JDBC
- CSV
- HTTP
- Output
- HTTP
- ElasticSearch
- Zabbix
- CSV
- Datadog
- File
- Exec
- ...
- Kibana
- Dashboards
- Gráficos
- Métricas (count, avg, sum, max)
- Maps (geolocation, polígonos)
- Telas
- Canvas - Telas customizadas
- Gerenciar stack
- Dashboards
Elementos adicionais
- Grafana - No lugar do Kibana
- No lugar do Logstash pode usar o Fluentd
- Alertas fazem parte da licensa paga
- Elastalert
- Siren
- Write your own
- DSL = linguagem de busca do ES
- Fazer busca e pegar o resultado
- Python, Golang, PHP, shell, etc... precisa apenas enviar/ler um json via HTTP
- Disparar um alerta
- Elastic Stack: Host vs Docker vs K8S
- Cuidados com volumes, mais trabalhosos pra fazer funcionar
- Tradicional
- Servidor c/ Beat instalado
- Enviam dados diretamente p/ o ElasticSearch
- Cluster ElasticSearch
- Se a comunicação cair, o beat vai armazenar local e pode encher o disco
- Servidor c/ Beat instalado
- Mais legal
- Beat fala c/ Logstash, que envia pro ES
- Network ou Firewall pode mandar via syslog pro Logstash também
- Outra estrutura
- Beats manda pra Redis/Kafka
- Logstash pega do Redis/Kafka e manda pro ES
- Network / Firewall ainda manda direto pro logstash
- Load balancing
- Logstash ficar atrás de um LB, com múltiplas instâncias
- Depende do caso
- Direto via binário é útil quando não tem acesso à internet no servidor
- config/elasticsearch.yml
- arquivo de configuração do elasticsearch
- nome do cluster, nome do nó
- Padrão de diretórios - instalando via packg man
/etc
configuração geral. ex: /etc/logstash /etc/elasticsearch, etc/usr/share
binários e dependências. ex./usr/share/elasticsearch
- No Logstash a vantagem de usar é que dá pra fazer um drop de logs
- exemplo: Log desnecessário, dropado direto no logstash pra não poluir o ES
- Campos que são IDs, no Kibana não fazem sentido quando mostra no dashboard
- Translate pra pegar um valor mais "legível" pra esse Id