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
Uso
- Execute os manifestos do configmap.
kubectl create -f fluent-kubernetes-configmap.yaml -f fluent-configmap.yaml
- Execute o manifesto do rbac.
kubectl create -f rbac.yaml
- Execute o manifesto do daemonset
kubectl create -f fluent-daemonset.yaml
Graylog
- Configure um input gelf. (Protocolo (TCP/UDP) e porta de sua escolha)
- No Input gelf criado anteriormente, vá em Manager Extractors
- Adicione um extractor
- Load a mensagem e crie um json.
- 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! - Exemplo de mensagem
Top comments (0)