Configurar a coleta
Edite /etc/farol-agent/config.yaml para ajustar a coleta. Os exemplos abaixo mostram trechos: altere as seções já existentes, sem duplicar chaves no YAML.
Identifique o ambiente
Use o slug do ambiente cadastrado no Farol. env identifica o ambiente nas métricas do host; environment é o campo usado nas buscas de logs.
host:
name: ""
labels:
env: production
environment: production
role: app
Com name vazio, o agente usa o hostname do sistema. O identificador do host é atribuído pelo fluxo de instalação; não invente um host_id na aplicação.
Colete logs de arquivo
Confirme que o usuário farol-agent consegue ler o arquivo e atravessar os diretórios do caminho. Conceda acesso somente aos logs que precisa coletar.
logs:
batch_interval: 3s
batch_size: 100
files:
- path: /var/log/checkout-api/app.log
labels:
service: checkout-api
environment: production
journald:
enabled: false
units: []
Prefira logs estruturados. Uma linha de exemplo:
{"level":"info","service":"checkout-api","environment":"production","message":"pedido recebido"}
Não registre senhas, tokens, cookies ou dados pessoais sem necessidade. A configuração do logger da aplicação continua sendo responsabilidade da sua equipe.
Logs do systemd
Para acompanhar uma unidade específica, altere a seção journald:
logs:
journald:
enabled: true
units:
- checkout-api.service
Uma lista vazia acompanha todas as unidades acessíveis. Prefira selecionar as unidades necessárias.
Colete dados do Docker
docker:
socket: /var/run/docker.sock
logs:
enabled: true
metrics:
enabled: true
workers: 4
O agente descobre os containers em execução. A label Docker obs.service define o nome do serviço; sem ela, o nome do container é usado. Configure a label com o mesmo nome do catálogo do Farol.
O usuário do agente precisa conseguir acessar o socket. O grupo docker concede acesso administrativo ao daemon; habilite essa integração apenas quando precisar dela e siga a política de acesso do seu servidor.
Colete métricas da aplicação
Exponha um endpoint no formato Prometheus e configure um alvo local. O exemplo abaixo usa o Actuator do Spring Boot:
app_metrics:
scrape_interval: 15s
targets:
- url: http://127.0.0.1:8080/actuator/prometheus
labels:
service: checkout-api
environment: production
O endpoint precisa estar acessível a partir do servidor onde o agente roda. Não exponha métricas publicamente só para permitir a coleta local. O campo service deve coincidir com o cadastro da aplicação.
Valide e aplique
sudo -u farol-agent farol-agent check-config --config /etc/farol-agent/config.yaml
sudo systemctl restart farol-agent
sudo journalctl -u farol-agent -n 50 --no-pager
Só reinicie se a validação terminar com sucesso. O YAML é estrito: campos desconhecidos e valores inválidos são recusados. check-config valida a configuração; ele não comprova que o arquivo de log pode ser lido ou que o endpoint de métricas responde.
Para validar a coleta, gere um log real e procure sua mensagem no Farol. Nas métricas da aplicação, confira o serviço e os dados após os próximos ciclos de coleta. Logs também exigem que a credencial do agente tenha permissão de envio desse sinal.