Estrutura de Configuração do Loki
O Grafana Loki utiliza um arquivo de configuração no formato YAML, geralmente nomeado como loki-local-config.yaml ou similar. Esse arquivo pode ser especificado durante a inicialização do serviço por meio da flag -config.file. A estrutura principal inclui seções dedicadas a componentes esppecíficos do sistema, como servidor HTTP/gRPC, armazenamento, ingestão, consulta e escalonamento.
Configurações do Servidor (Server)
Define os parâmetros de rede e log para o serviço Loki:
server:
http_listen_address: "0.0.0.0"
http_listen_port: 3100
grpc_listen_port: 9095
log_level: info
log_format: logfmt
- http_listen_port: Porta onde a API HTTP será exposta (padrão: 3100).
- grpc_listen_port: Usado para comunicação interna entre componentes (ex: ingesters e queriers).
- log_level: Nível de detalhe nos logs; valores comuns são
debug,info,warn.
Configuração Compartilhada (Common)
Parâmetros globais aplicáveis a múltiplos serviços dentro do cluster Loki:
common:
path_prefix: /var/loki
replication_factor: 3
storage:
type: filesystem
filesystem:
chunks_directory: /var/loki/chunks
rules_directory: /var/loki/rules
ring:
kvstore:
store: memberlist
replication_factor: 3
tokens_file_path: /var/loki/tokens.dat
- storage.type: Define o back end — pode ser
s3,gcs,azureoufilesystem. - ring: Gerencia distribuição de carga e tolerância a falhas usando um anel baseado em chave-valor (KV), como Consul ou memberlist.
Ingestão de Dados (Ingester)
Controla como os dados recebidos são processados antes de serem armazenados:
ingester:
chunk_idle_period: 5m
chunk_retain_period: 30s
max_chunk_age: 2h
chunk_block_size: 262144
chunk_target_size: 1572864
chunk_encoding: gzip
wal:
enabled: true
dir: /var/loki/wal
- chunk_idle_period: Tempo que um chunk inativo permanece na memória antes de ser descarregado.
- wal.enabled: Ativa o Write-Ahead Log para recuperação após falhas inesperadas.
- max_chunk_age: Idade máxima permitida para entradas dentro de um mesmo chunk.
Regras e Alertas (Ruler)
Habilita avaliação de regras prometheus-like e envio de alertas:
ruler:
enable_api: true
rule_path: /etc/loki/rules
alertmanager_url: http://alertmanager:9093
wal:
dir: /var/loki/ruler-wal
truncate_frequency: 1h
remote_write:
enabled: true
clients:
- url: http://prometheus-gw:9090/api/v1/write
- alertmanager_url: Endpoint do Alertmanager para disparo de notificações.
- remote_write.clients: Permite exportar métricas derivadas das consultas de log para sistemas externos.
Comunicação de Cluster (Memberlist)
Usado para descoberta automática de nós quando não se utiliza Consul ou etcd:
memberlist:
bind_addr: 0.0.0.0
bind_port: 7946
join_members:
- loki-node-01:7946
- loki-node-02:7946
gossip_interval: 200ms
left_ingesters_timeout: 5m
- join_members: Lista estática de membros iniciais para formar o anel.
- gossip_interval: Frequência com que os nós trocam informações sobre estado do cluster.
Limites por Tenant (Limits Config)
Define cotas de uso para evitar sobrecarga no sistema:
limits_config:
ingestion_rate_mb: 4
ingestion_burst_size_mb: 6
max_line_size: 256KB
max_streams_per_user: 10000
max_query_parallelism: 16
max_entries_limit_per_query: 5000
max_cache_freshness_per_query: 10m
- ingestion_rate_mb: Limite médio de taxa de entrada por usuário (MB/s).
- max_entries_limit_per_query: Máximo de linhas retornadas por consulta.
Consulta (Querier)
Gerencia como as consultas são executadas e encaminhadas:
querier:
query_ingesters_within: 3h
max_concurrent: 8
timeout: 1m
- query_ingesters_within: Consultas com intervalo menor que esse valor serão direcionadas aos ingesters ativos.
- max_concurrent: Número máximo de consultas simultâneas suportadas pelo querier.
Frontend de Consulta (Query Frontend)
Otimiza consultas longas dividindo-as e gerenciando cache:
frontend:
compress_responses: true
max_outstanding_per_tenant: 1024
query_range:
cache_results: true
parallelise_shardable_queries: true
split_duration: 24h
results_cache:
cache:
embedded_cache:
enabled: true
max_size_mb: 100
- split_duration: Divide consultas longas em pedaços menores de até 24 horas.
- cacche_results: Habilita armazenamento em cache dos resultados para acelerar respostas repetidas.