Como Ler Arquivos de Log - Introducao a Analise de Logs do Sistema
O Que Voce Vai Aprender
- Como o diretorio
/var/log/e organizado - Como usar
tail -f,grepelesspara leitura eficiente de logs - Os papeis dos principais arquivos de log:
syslog,auth.log,kern.log - Como interpretar o formato syslog (timestamp, nome do processo, PID, mensagem)
- Padroes praticos de investigacao de logs para troubleshooting real
Resumo Rapido (Fluxo de Investigacao de Logs)
- Execute
ls /var/log/para identificar o arquivo alvo - Use
tail -n 100para comecar do final;tail -fpara monitoramento ao vivo - Refine com
grepusando palavras-chave de erro - Use
lesspara rolar pelo contexto ao redor dos achados
O Que E o /var/log?
Quase todos os logs do sistema Linux sao armazenados em /var/log/. Este diretorio contem registros escritos pelo kernel, subsistema de autenticacao e aplicacoes -- sendo o ponto de partida para qualquer sessao de troubleshooting.
ls /var/log/
auth.log dpkg.log kern.log syslog ubuntu-advantage.log boot.log faillog lastlog ufw.log wtmp
Os escritores de log se dividem em duas categorias: o daemon syslog (rsyslog ou syslog-ng) e aplicacoes que escrevem seus proprios arquivos de log diretamente.
Quais Sao os Arquivos de Log Comuns e Seus Papeis?
Os arquivos em /var/log/ sao organizados por finalidade. Saber qual arquivo cobre qual area permite ir direto ao log relevante em vez de buscar as cegas.
| Arquivo | Conteudo | Caso de Uso |
|---|---|---|
syslog |
Mensagens gerais do sistema | Eventos inexplicados do sistema |
auth.log |
Auth, sudo, SSH | Falhas de login, escalacao de privilegio |
kern.log |
Mensagens do kernel | Erros de hardware, OOM kills |
dpkg.log |
Gerenciamento de pacotes | Historico de instalacao/atualizacao |
ufw.log |
Firewall UFW | Conexoes bloqueadas |
boot.log |
Mensagens de inicializacao | Diagnostico de falha de boot |
No Ubuntu 20.04+, syslog pode nao existir em algumas configuracoes. Use journalctl para visualizar logs do sistema nesse caso.
Quais Sao os Comandos Basicos para Ler Logs?
Tres comandos cobrem a maioria dos cenarios de leitura de logs: tail, less e cat. Escolha com base em se voce precisa do final do arquivo, rolagem interativa ou dump completo.
tail -- Ler do final
# Mostrar ultimas 50 linhas tail -n 50 /var/log/syslog # Acompanhar em tempo real (Ctrl+C para parar) tail -f /var/log/syslog
-f (follow) mantem a saida aberta e transmite novas linhas conforme sao adicionadas -- essencial ao monitorar um incidente ao vivo.
less -- Rolar interativamente
less /var/log/auth.log
Atalhos dentro do less:
G: Ir para o finalg: Ir para o inicio/keyword: Buscar para frenten: Proxima correspondenciaq: Sair
cat -- Despejar o arquivo inteiro (apenas para arquivos curtos)
cat /var/log/boot.log
Para logs grandes, cat produz um muro de texto. Prefira less ou tail a menos que o arquivo seja curto.
Como Filtrar Logs com grep
grep transforma um muro de texto de log em resultados direcionados. Funciona melhor encadeado com tail ou como filtro direto em um arquivo de log.
Extrair linhas de erro
grep -i "error" /var/log/syslog
-i torna a correspondencia insensivel a maiusculas/minusculas.
Corresponder multiplas palavras-chave
grep -E "error|warn|failed" /var/log/syslog
grep em tempo real
tail -f /var/log/syslog | grep "error"
Filtrar por data
grep "May 31" /var/log/auth.log
Mostrar contexto ao redor
grep -A 5 -B 5 "Failed password" /var/log/auth.log
-A 5 mostra 5 linhas apos cada correspondencia; -B 5 mostra 5 linhas antes.
Alguns arquivos de log requerem sudo para leitura. Se voce vir Permission denied, prefixe o comando com sudo: sudo less /var/log/kern.log.
Como Interpretar o Formato Syslog
Entradas no formato syslog seguem uma estrutura consistente. Reconhecer cada campo acelera significativamente a analise.
May 31 10:23:45 myserver sshd[12345]: Failed password for root from 192.168.1.100 port 22 ssh2
| Campo | Valor | Significado |
|---|---|---|
| Timestamp | May 31 10:23:45 |
Quando o evento foi registrado |
| Hostname | myserver |
Host que gerou a mensagem |
| Nome do processo | sshd |
Processo que escreveu a entrada de log |
| PID | [12345] |
ID do processo (util para correlacao) |
| Mensagem | Failed password... |
O conteudo real do log |
Os timestamps dos logs refletem o horario local do servidor. Se o servidor estiver configurado para UTC, os horarios exibidos podem diferir do seu fuso horario local.
Padroes Comuns de Investigacao de Logs
Estes padroes cobrem os cenarios de troubleshooting mais frequentes encontrados em ambientes de producao.
Verificar falhas de login SSH
sudo grep "Failed password" /var/log/auth.log | tail -20
Revisar historico de comandos sudo
sudo grep "sudo" /var/log/auth.log | grep "COMMAND"
Verificar erros do kernel
sudo grep -i "error\|oops\|panic" /var/log/kern.log | tail -30
Listar historico de instalacao de pacotes
grep " install " /var/log/dpkg.log
Revisar erros de inicializacao
sudo less /var/log/boot.log
journalctl vs. Arquivos de Log -- Quando Usar Cada Um?
Desde o Ubuntu 16.04, o systemd introduziu o journalctl como o visualizador de logs principal para servicos. Os arquivos de /var/log/ e o journal do systemd coexistem; saber qual usar evita perda de tempo.
| Cenario | Ferramenta a Usar |
|---|---|
| Logs de servicos systemd | journalctl -u nginx |
| Mensagens do kernel | journalctl -k |
| Mensagens de inicializacao | journalctl -b |
| App legado escrevendo em arquivo proprio | tail -f /var/log/app.log |
Conteudo de /var/log/auth.log |
Ambos funcionam |
# Acompanhar todos os logs em tempo real journalctl -f # Acompanhar um servico especifico journalctl -u nginx -f
journalctl le do armazenamento binario do journal do systemd, nao dos arquivos de texto em /var/log/. Dependendo da configuracao do rsyslog, ambos podem receber os mesmos eventos -- ou podem conter subconjuntos diferentes.