DEV Community

Aloisio Bilck
Aloisio Bilck

Posted on

CENTRALIZAÇÃO DE LOGS DO KUBERNETES COM GRAYLOG + FLUENTD

Neste tutorial será mostrado como centralizar os logs do Kubernetes com Graylog + Fluentd.

Existem outras maneiras talvez mais elegantes, mas optamos em enviar os logs (stdout/stderr) dos pods para o Graylog utilizando o fluentd-kubernetes-daemonset.
O fluentd(daemonset) irá utilizar as configurações passadas pelo configmap.

Repositório com os arquivos no github

Documentação oficial

Versões utilizadas

  • Graylog >= 3.1
  • fluentd >= 1.10

Use sua configuração

Disponibilizamos dois manifestos de configmap.

  • fluent-configmap.yaml: Responsável pelo arquivo de configuração do fluent.conf
  • fluent-kubernetes-configmap.yaml: Responsável pelo arquivo de configuração do kubernetes.conf

Exemplo de como criar um configmap usando como base um arquivo.

kubectl create configmap fluent-kubernetes-configmap --from-file=kubernetes.conf --namespace=kube-system

kubectl create configmap fluent-configmap --from-file=fluent.conf --namespace=kube-system
Enter fullscreen mode Exit fullscreen mode

Uso

  1. Execute os manifestos do configmap.
kubectl create -f fluent-kubernetes-configmap.yaml -f fluent-configmap.yaml
Enter fullscreen mode Exit fullscreen mode
  1. Execute o manifesto do rbac.
kubectl create -f rbac.yaml
Enter fullscreen mode Exit fullscreen mode
  1. Execute o manifesto do daemonset
kubectl create -f fluent-daemonset.yaml
Enter fullscreen mode Exit fullscreen mode

Graylog

  1. Configure um input gelf. (Protocolo (TCP/UDP) e porta de sua escolha)
  2. No Input gelf criado anteriormente, vá em Manager Extractors Alt Text
  3. Adicione um extractor Alt Text
  4. Load a mensagem e crie um json. Alt Text
  5. Caso não queira realizar os passos anteriores (1-4) manualmente, disponibilizamos um content-pack na pasta ./files/ para criação do input+extractors. Repositório no github. Necessário apenas importar o content pack e instalar!
  6. Exemplo de mensagem Alt Text

Top comments (0)