LNAV - Assista e analise os logs do Apache de um terminal Linux

LNAV - Assista e analise os logs do Apache de um terminal Linux

Menos de duas semanas atrás, o ataque de ransomware do WannaCry comprometeu milhares de computadores, causando perdas consideráveis ​​para grandes empresas e indivíduos. Que, juntamente com outras vulnerabilidades generalizadas encontradas nos últimos anos (como o bug do Shellshock), destaque a importância de permanecer no topo de seus sistemas de missão crítica.

Embora as vulnerabilidades geralmente segmentem um sistema operacional ou componente de software específico, examinar o tráfego que entra e sai da sua rede pode ser uma ajuda significativa para proteger os ativos pelos quais você é responsável.

Leia sugerida: 4 Boas ferramentas de monitoramento e gerenciamento de log de código aberto para Linux

Como tenho certeza que você já sabe, os registros do sistema são o primeiro lugar onde devemos procurar essas informações. Para facilitar essa tarefa, neste artigo explicaremos como instalar e usar lnav, um visualizador avançado de arquivo de log. Com o LNAV, você poderá assistir a vários tipos de toras simultaneamente, navegar pelo arquivo usando teclas de hot shots e gerar um histograma resumido de acessos e erros. Então continue lendo!

Instalação e lançamento de LNAV no Linux

Para instalar lnav, Use o sistema de gerenciamento de pacotes de sua distribuição.

# Aptitude Install LNAV [Debian and Derivatives] # Yum Instale o lançamento de Epel-LNAV [CentOS 7 e similar] 

Depois que a instalação estiver concluída, inicie lnav seguido pelo caminho absoluto para o diretório onde os troncos a serem examinados estão localizados. Já que isso será tipicamente /var/log, vamos fazer:

# lnav/var/log/httpd 

Para inspecionar os logs do servidor da Web Apache em um CENTOS 7:

Monitore os logs do Apache no CentOS 7

Vamos examinar brevemente a saída mostrada na imagem anterior:

  • O canto superior direito mostra os arquivos atualmente sendo inspecionados (Access_Log-20170519 e access_log). Ao rolar para baixo ou para cima, você observará que os nomes dos arquivos podem mudar à medida que você passa de um para outro.
  • 40x http respostas (por exemplo, Não encontrado ou Proibido) são exibidos em negrito, enquanto 20x As respostas são mostradas em texto regular.
  • Os endereços IP aparecem em verde ousado.

Isso certamente parece bom, não? Mas vamos nos aprofundar um pouco mais agora, e veremos que o LNAV fornece muito mais do que uma saída de cor bonita.

Se você está curioso. Então continue lendo!

Modificando a saída com opções e teclas de atalho

Antes de prosseguirmos, vamos listar algumas teclas de atalho que nos permitirão passar pela saída do LNAV e as visualizações disponíveis mais facilmente:

  • e ou E Para pular para a próxima / anterior / anterior mensagem de erro.
  • c ou C para pular para a próxima mensagem de aviso prévio / anterior.
  • b ou Backspace Para se mudar para a página anterior.
  • Espaço para mudar para a próxima página.
  • g ou G Para se mover para a parte superior / inferior da visualização atual.

Quando os logs são girados, os arquivos antigos podem ser compactados (ou não), dependendo das configurações especificadas nos arquivos de configuração do Logrotate. Para incluir arquivos compactados na saída, inicie o LNAV da seguinte forma:

# lnav -r/var/log/httpd 

Se você quiser analisar mais de perto a maneira como o LNAV opera, você pode iniciar o programa com o -d opção seguida por um nome de arquivo em que as informações de depuração serão escritas, como assim:

# lnav/var/log/httpd -d lnav.TXT 

Neste exemplo, as informações de depuração geradas quando o LNAV iniciarem serão gravadas em um arquivo nomeado lnav.TXT Dentro do diretório de trabalho atual.

As primeiras linhas desse arquivo são mostradas na seguinte imagem:

Informações de depuração do Apache

O texto destacado indica que o LNAV carregou o arquivo de formatos padrão e, mais especificamente, o access_log Formato para analisar o log de acesso Apache. Além disso, o LNAV permite analisar cada linha de saída para que a saída fique mais fácil de visualizar e entender.

Leia sugerida: Goacccess (um analisador de log do servidor da web em tempo real (Apache e Nginx)

Para usar esse recurso, inicie o programa e escolha a linha que deseja analisar. A linha selecionada é sempre a do topo da janela. Então aperte p E você deve ver o seguinte resultado:

Informações sobre status da solicitação Apache

Para voltar ao modo normal, pressione p de novo.

Agora, se você quiser ver um resumo dos logs por data e hora, pressione eu. Por exemplo, o texto destacado indica que na segunda -feira, 10 de abril, entre 22 e 23:00, houve 37 solicitações HTTP com 14 resultando em erros.

Apache logs de dia e hora

Depois de identificar um problema em potencial com base no histograma, como mostrado acima, você pode pressionar eu Para sair da visão para examiná -la com mais detalhes usando o analisador, conforme explicado anteriormente. Ou você também pode usar os recursos de SQL integrados digitando um semicolon e escrevendo uma consulta padrão. Por exemplo, faça:

;.esquema 

Para visualizar as tabelas disponíveis no esquema de banco de dados. Depois de identificar a tabela certa (access_log no nosso caso), vamos pressionar q e depois use a consulta a seguir para retornar todas as informações disponíveis sobre solicitações provenientes de 195.154.230.31:

; Selecione * de access_log onde c_ip = "195.154.230.31 " 
Informações do log do apache no formato da tabela

Observe que também poderíamos filtrar os resultados por log_time. O ponto é, jogue um pouco de SQL e o céu é o limite quanto ao que você pode fazer com LNAV.

Formatos de log padrão Apache

Muitos formatos de log são carregados por padrão com lnav e são assim analisados ​​sem a nossa intervenção. Você pode visualizar a lista na seção Formatos de log na documentação oficial.

Os formatos padrão são especificados em ~/.lnav/formats/default/padrão-formats.JSON.amostra, e outros podem ser adicionados ~/.lnav/formatos usando o .JSON extensão.

No entanto, a edição desses arquivos requer um certo grau de familiaridade com a biblioteca JSON (JavaScript Object) e com o PCRE (Expressões regulares compatíveis com Perl).

Então, por que o LNAV não exibiu os arquivos de log de erros do Apache? O motivo é que esses logs não correspondem a expressões regulares nos arquivos de formato existentes e, portanto, são tratados como arquivos de texto regulares (significando arquivos sem um determinado formato de log).

Leia sugerida: Como monitorar as estatísticas do servidor da Web Apache e as estatísticas da página

Como mencionado anteriormente, você pode criar seus próprios formatos quando estiver pelo menos um pouco familiarizado com JSON e PCRE. Isso pode ser útil, por exemplo, se você definiu logs Apache personalizados.

Resumo

Embora tenhamos usado o log de acesso Apache para demonstrar como usar o LNAV, lembre -se de que existem vários outros tipos de toras que podem ser visualizados e analisados ​​usando esta ferramenta. Se a ferramenta não reconhecer um log específico, você poderá criar formatos adicionais e instalá -los seguindo as indicações fornecidas aqui.

Você tem alguma dúvida ou comentário sobre este artigo? Como sempre, fique à vontade para nos informar usando o formulário abaixo. Estamos ansiosos para ouvir de você!