Centralizando logs com Promtail + Loki + Grafana
Neste artigo iremos aprender como centralizar nossos logs do Apache no Loki e a realizar buscas de forma muito rápida utilizando a linguagem LogQL.
Parte 5: Começando a brincadeira
Agora iremos iniciar os serviços na seguinte sequência:
1. Loki:
cd $HOME/Downloads/stack/loki; nohup ./loki-linux-amd64 -config.file loki-local-config.yaml > /dev/null &
2. Grafana:
cd /home/leoberbert/Downloads/stack/grafana-8.0.5/bin; nohup ./grafana-server > /dev/null &
Antes de inciarmos o Promtail para realizar o envio dos logs do "access.log" para o Loki, iremos realizar a configuração do datasource do Grafana. Logo iremos acessar a interface do Grafana através do endereço abaixo:
http://localhost:3000
Na primeira tela será solicitado o login inicial que é:
e logo em seguida você deverá configurar uma nova senha. Neste momento iremos criar nosso datasource, para isso acesse o link:
http://localhost:3000/datasources E sem seguida basta seguir as imagens abaixo selecionando o tipo do datasource Loki: Agora com nosso datasource configurado, já podemos iniciar o envio de logs para o Loki para que possamos posteriormente visualizar as informações no Grafana.
cd /home/leoberbert/Downloads/stack/promtail; ./promtail-linux-amd64 -config.file=config.yaml
level=info ts=2021-07-08T23:13:38.179416886Z caller=server.go:229 http=[::]:9080 grpc=[::]:42377 msg="server listening on addresses"
level=info ts=2021-07-08T23:13:38.180433328Z caller=main.go:112 msg="Starting Promtail" version="(version=2.2.1, branch=HEAD, revision=babea82e)"
level=info ts=2021-07-08T23:13:43.179667865Z caller=filetargetmanager.go:254 msg="Adding target" key="{env=\"production\", host=\"zeus\", job=\"apache\"}"
level=info ts=2021-07-08T23:13:43.181262991Z caller=tailer.go:125 component=tailer msg="tail routine: started" path=/home/leoberbert/Downloads/stack/promtail/access.log
ts=2021-07-08T23:13:43.182376908Z caller=log.go:124 level=info msg="Seeked /home/leoberbert/Downloads/stack/promtail/access.log - &{Offset:0 Whence:0}"
Agora acessaremos o Grafana no link abaixo:
http://localhost:3000/explore E em seguida vamos utilizar a query {job="apache"} conforme mostrado na figura abaixo e em seguida clicar em "Run query" e os logs capturados serão exibidos: Caso eu queira filtrar por alguma string, basta executar a query com {job="apache"} |= "Ubuntu" onde eu estarei buscando pelo job e pela string Ubuntu. Uma consideração importante a ressaltar é que está sendo utilizado a linguagem LogQL para realizar as querys. Para maiores informações poderá ser consultado o link: LogQL | Grafana Labs
Os campos exibidos abaixo, são fruto da expressão regular do promtail, então caso necessite de trabalhar em outros arquivos de logs, basta adequar a expressão regular à sua necessidade. Espero que este artigo ajude a compreender um pouco do Loki.
[]'s leoberbert
1. Loki:
cd $HOME/Downloads/stack/loki; nohup ./loki-linux-amd64 -config.file loki-local-config.yaml > /dev/null &
2. Grafana:
cd /home/leoberbert/Downloads/stack/grafana-8.0.5/bin; nohup ./grafana-server > /dev/null &
Antes de inciarmos o Promtail para realizar o envio dos logs do "access.log" para o Loki, iremos realizar a configuração do datasource do Grafana. Logo iremos acessar a interface do Grafana através do endereço abaixo:
http://localhost:3000
Na primeira tela será solicitado o login inicial que é:
- user: admin
- password: admin
e logo em seguida você deverá configurar uma nova senha. Neste momento iremos criar nosso datasource, para isso acesse o link:
http://localhost:3000/datasources E sem seguida basta seguir as imagens abaixo selecionando o tipo do datasource Loki: Agora com nosso datasource configurado, já podemos iniciar o envio de logs para o Loki para que possamos posteriormente visualizar as informações no Grafana.
cd /home/leoberbert/Downloads/stack/promtail; ./promtail-linux-amd64 -config.file=config.yaml
level=info ts=2021-07-08T23:13:38.179416886Z caller=server.go:229 http=[::]:9080 grpc=[::]:42377 msg="server listening on addresses"
level=info ts=2021-07-08T23:13:38.180433328Z caller=main.go:112 msg="Starting Promtail" version="(version=2.2.1, branch=HEAD, revision=babea82e)"
level=info ts=2021-07-08T23:13:43.179667865Z caller=filetargetmanager.go:254 msg="Adding target" key="{env=\"production\", host=\"zeus\", job=\"apache\"}"
level=info ts=2021-07-08T23:13:43.181262991Z caller=tailer.go:125 component=tailer msg="tail routine: started" path=/home/leoberbert/Downloads/stack/promtail/access.log
ts=2021-07-08T23:13:43.182376908Z caller=log.go:124 level=info msg="Seeked /home/leoberbert/Downloads/stack/promtail/access.log - &{Offset:0 Whence:0}"
Agora acessaremos o Grafana no link abaixo:
http://localhost:3000/explore E em seguida vamos utilizar a query {job="apache"} conforme mostrado na figura abaixo e em seguida clicar em "Run query" e os logs capturados serão exibidos: Caso eu queira filtrar por alguma string, basta executar a query com {job="apache"} |= "Ubuntu" onde eu estarei buscando pelo job e pela string Ubuntu. Uma consideração importante a ressaltar é que está sendo utilizado a linguagem LogQL para realizar as querys. Para maiores informações poderá ser consultado o link: LogQL | Grafana Labs
Os campos exibidos abaixo, são fruto da expressão regular do promtail, então caso necessite de trabalhar em outros arquivos de logs, basta adequar a expressão regular à sua necessidade. Espero que este artigo ajude a compreender um pouco do Loki.
[]'s leoberbert
Bom artigo.
___________________________________________________________