Como Ler Arquivos de Log - Introducao a Analise de Logs do Sistema

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, grep e less para 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)

  1. Execute ls /var/log/ para identificar o arquivo alvo
  2. Use tail -n 100 para comecar do final; tail -f para monitoramento ao vivo
  3. Refine com grep usando palavras-chave de erro
  4. Use less para 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 final
  • g: Ir para o inicio
  • /keyword: Buscar para frente
  • n: Proxima correspondencia
  • q: 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.

Proximas Leituras