Login
Login

Grafana Loki

Atualizado em 12 de February de 2026

O Grafana Loki é um sistema de agregação de logs desenvolvido pela equipe da Grafana Labs. Ele é usado em conjunto com o Grafana para oferecer visualização conveniente de logs.

Diferentemente da stack ELK, o Loki não indexa o conteúdo dos logs, mas os armazena junto com metadados (por exemplo, nome do pod ou namespace). Isso o torna mais rápido e menos exigente em termos de recursos.

O Loki é mais comumente utilizado com o Promtail — um agente que coleta logs dos nós e os envia para o Loki. Depois, você pode visualizar esses logs diretamente no Grafana usando consultas LogQL.

Instalar o Loki

Para instalar o Loki:

  1. Vá para a seção Kubernetes e clique no cluster.
  2. Na aba Complementos, clique em Grafana Loki.
  3. Você verá uma configuração YAML com parâmetros padrão.

Abaixo está uma explicação breve de cada bloco:

test_pod

test_pod:
  enabled: true
  image: bats/bats:1.8.2

Inicia um pod de teste com o utilitário bats para verificar se o Loki está disponível e recebendo logs. Usado apenas para validação automática após a instalação.

loki

loki:
  enabled: true
  isDefault: true

O componente principal é o Loki, responsável por receber e armazenar logs.

Opções configuráveis incluem:

  • url: endereço interno do serviço Loki (usado por outros componentes)
  • readinessProbe e livenessProbe: verificações de saúde
  • datasource: configurações para conectar o Loki como fonte de dados no Grafana

Você pode especificar datasource.uid se quiser vinculá-lo explicitamente.

promtail

promtail:
  enabled: true
  config:
    clients:
      - url: http://<release-name>:3100/loki/api/v1/push

O Promtail é o agente padrão que coleta logs dos nós do cluster (de /var/log/containers/*.log) e os envia para o Loki.

Se você estiver usando outros coletores de logs, como Filebeat ou Fluent Bit, pode desativar o Promtail:

fluent-bit:
  enabled: false

filebeat:
  enabled: false
  filebeatConfig: ...

logstash:
  enabled: false
  filters: ...
  outputs: ...

Essas são alternativas opcionais caso o Promtail não seja adequado — por exemplo, se você estiver usando o Fluent Operator. Elas ficam desativadas por padrão.

grafana

grafana:
  enabled: false

Ativa a instalação do Grafana. Defina como true se quiser visualizar os logs por meio de uma interface web.

Se o Grafana já estiver implantado no cluster, você pode manter desativado e configurar o Loki manualmente como fonte de dados.

prometheus

prometheus:
  enabled: false
  isDefault: false
  url: ...

Permite adicionar o Prometheus como fonte de dados no Grafana. Isso não instala o Prometheus — apenas registra a conexão. Ative se o Prometheus já estiver rodando no cluster e você quiser usá-lo junto com o Loki.

proxy

proxy:
  http_proxy: ""
  https_proxy: ""
  no_proxy: ""

Configurações de proxy, caso seja necessário conectar-se a serviços externos.

Exemplo de uso

Vamos passar por um exemplo de configuração usando Loki e Promtail.

Vamos iniciar um pod que escreve logs na saída padrão. O kubelet salvará esses logs em /var/log/containers/. O Promtail (como DaemonSet) lê esses logs e os envia para o Loki. Em seguida, o Grafana pode ser usado para explorá-los pela interface web.

Etapa 1. Ativar o Grafana

Instale o complemento Loki pelo painel de gerenciamento do cluster. Na janela de configuração, mantenha todos os parâmetros padrão, mas altere:

grafana: 
  enabled: false

para:

grafana: 
  enabled: true

Isso implantará o Grafana junto com o Loki.

Etapa 2. Instalar o NGINX Ingress

Instale o complemento NGINX Ingress, necessário para acessar a interface do Grafana por um domínio.

Etapa 3. Verificar o status dos pods

Execute:

kubectl get pods -n loki

Saída esperada:

NAME                                 READY   STATUS    RESTARTS   AGE
loki-stack-0                         1/1     Running   0          3h5m
loki-stack-grafana-878d56dc6-s28sq   2/2     Running   0          3h5m
loki-stack-promtail-5wtlr            1/1     Running   0          3h5m
loki-stack-promtail-hl6pl            1/1     Running   0          3h5m

Verifique também se o controlador de Ingress está em execução:

kubectl get pods -n ingress-nginx

E confira os serviços do Grafana Loki:

kubectl get svc -n loki

Saída de exemplo:

NAME                    TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
loki-stack              ClusterIP   10.111.63.222    <none>        3100/TCP   3h7m
loki-stack-grafana      ClusterIP   10.104.154.158   <none>        80/TCP     3h7m
loki-stack-headless     ClusterIP   None             <none>        3100/TCP   3h7m
loki-stack-memberlist   ClusterIP   None             <none>        7946/TCP   3h7m

Etapa 4. Configurar o Ingress

Agora vamos configurar o NGINX Ingress para expor o Grafana por domínio. Para isso, criaremos um load balancer e o manifesto loadbalancer.yaml:

apiVersion: v1
kind: Service
metadata:
  name: ingress-nginx
  namespace: ingress-nginx
spec:
  selector:
    app.kubernetes.io/name: ingress-nginx
  ports:
    - name: http
      port: 80
      targetPort: 80
    - name: https
      port: 443
      targetPort: 443
  type: LoadBalancer

Aplique:

kubectl apply -f loadbalancer.yaml

Crie uma regra de Ingress no arquivo grafana-ingress.yaml:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: grafana
  namespace: loki
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
    - host: grafana.example.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: loki-stack-grafana
                port:
                  number: 80

Substitua grafana.example.com pelo seu domínio real. Certifique-se de que o registro A do domínio aponte para o IP externo do LoadBalancer.

Aplique o manifesto:

kubectl apply -f grafana-ingress.yaml

Etapa 5. Gerar logs

Crie um pod que registre mensagens continuamente:

kubectl run logger --image=busybox --restart=Never -- sh -c 'while true; do echo "hello from logger"; sleep 5; done'

Verifique se está em execução:

kubectl get pods

O pod logger deve estar no estado Running.

Etapa 6. Abrir o Grafana

Abra o domínio configurado no Ingress (por exemplo, https://grafana.example.com). Você verá a tela de login do Grafana.

Use o usuário admin. Para obter a senha:

kubectl get secret -n loki loki-stack-grafana -o jsonpath="{.data.admin-password}" | base64 --decode

Etapa 7. Visualizar logs

Na interface do Grafana, vá para a seção Explore.

F9ee38ab D5cb 4711 Bac7 66c4d1bb10ca.png

Interface do Grafana

Selecione Loki como fonte de dados. Em Label filters, informe pod=logger e clique em Run query.

F499f75d C6b9 45fb A5f8 A9f91b018970.png

Seção Explore na interface do Grafana

Role a página para baixo e você deverá ver entradas de log como:

hello from logger

59b4d347 4d74 4fb9 Ae5e 7ce8b592d00f.png

Entradas de log na interface do Grafana

Assim, você pode monitorar e analisar facilmente os logs do cluster diretamente no Grafana.

Esta página foi útil?
Atualizado em 12 de February de 2026

Tem perguntas,
comentários ou preocupações?

Nossos profissionais estão disponíveis para ajudá-lo a qualquer momento,
seja para assistência ou apenas se você não souber por onde começar.
Envie-nos um e-mail
Hostman's Support