Base de Conhecimento Instruções simples para trabalhar com o serviço Profitserver
a Principal Base de Conhecimento Como ler logs do Linux e onde encontrá-los

Como ler logs do Linux e onde encontrá-los


Ao se deparar com problemas de desempenho no servidor, a primeira coisa a fazer é verificar os logs do Linux . No log do sistema, você encontrará mensagens de diagnóstico úteis de diferentes componentes do sistema operacional, como o kernel ou vários serviços, e provavelmente encontrará a causa da falha ali.

Cada mensagem no log é gerada em resultado de certos eventos no sistema operacional: do usuário, autorização para desligamento do serviço ou falha do aplicativo. Esses eventos têm prioridades diferentes dependendo de quão críticos eles são. Existem os seguintes tipos de eventos no Linux:

  1. emerg - falha, prioridade máxima;
  2. alert - aviso urgente;
  3. crit - evento crítico;
  4. err - erro comum;
  5. warn - advertência ordinária;
  6. notice - notificação;
  7. info - mensagem informativa;
  8. debug - informações de depuração;

Atualmente, os principais serviços de coleta de logs no Linux são o rsyslog e o systemd-journald . Eles são fornecidos com a maioria dos pacotes de distribuição modernos e funcionam de forma independente.

rsyslog

Os registros deste serviço estão localizados na pasta “ /var/log/ ” em formato de arquivos de texto comuns. As mensagens de log são armazenadas em arquivos diferentes, dependendo do tipo de evento. Por exemplo, “ /var/log/auth.log ” contém informações sobre a autorização dos usuários no sistema, e “ /var/log/kern.log ” contém mensagens do kernel. Os nomes dos arquivos podem variar entre os pacotes de distribuição, então vamos dar uma olhada no arquivo de configuração “ /etc/rsyslog.d/50-default.conf ” para entender a localização de cada um.

Сбор логов Linux утилитой rsyslog

Essas regras mostram qual arquivo contém cada tipo de mensagem de log. A parte esquerda exibe o tipo de mensagem no formato “ [Origem].[Prioridade] ” e a parte direita exibe o nome do arquivo de log. Ao digitar o tipo de mensagem, o caractere “ * ” pode ser adicionado. Ele significa um valor vazio ou “ nenhum ”, que remove a mensagem da lista. Vamos analisar mais detalhadamente as duas primeiras regras.

“auth,authpriv.* /var/log/auth.log”
“*.*;auth,authpriv.none -/var/log/syslog”

A primeira regra significa que todas as mensagens recebidas do mecanismo de autorização serão registradas no arquivo “ /var/log/auth.log ”. Todas as tentativas de autorização (bem-sucedidas ou não) serão registradas neste arquivo. A segunda regra indica que todas as mensagens, exceto as relacionadas à autorização, serão registradas no arquivo “ /var/log/syslog ”. Esses dois arquivos são geralmente os mais utilizados. As regras a seguir definem o caminho para armazenar os logs do kernel “ kern.* ” e os logs do serviço de e-mail “ mail.* ”.

Os arquivos de log podem ser abertos com a ajuda de qualquer editor de texto, como less , cat ou tail . Vamos abrir o arquivo “ /var/log/auth.log ”.

less /var/log/auth.log
Registre-se no login do Linux com uma nova janela automática SSH

Cada linha do arquivo é uma mensagem separada recebida do aplicativo ou serviço. Todas as mensagens, independentemente de sua fonte, têm um formato e consistem em 5 partes. Vamos pegar a mensagem destacada na captura de tela como exemplo.

  1. Carimbo de data/hora da mensagem - “12 de fev 06:18:33”
  2. Nome do computador que enviou a mensagem - “vds”
  3. Nome do aplicativo ou serviço que enviou a mensagem - “sshd”
  4. ID do processo - [653]
  5. Texto da mensagem - “Senha aceita para mihail de 188.19.42.165 porta 2849 ssh2”

Este foi um exemplo de uma conexão SSH bem-sucedida.

E aqui está a aparência de uma tentativa de login malsucedida:

Chita logi Linux

Este arquivo também registra comandos com permissões avançadas

Como criar um log Linux

Vamos abrir o arquivo /var/log/syslog.

Uma mensagem destacada na captura de tela é a mensagem sobre o desligamento da interface de rede.

Botão logorotate

Para pesquisar informações em arquivos de texto longos, use o utilitário grep . Você pode encontrar todas as mensagens recebidas do serviço pptpd no arquivo “ /var/log/syslog ”.

grep 'pptpd' /var/log/syslog
arquivo “/etc/logrotate.d/rsyslog”

Durante o diagnóstico, você pode usar o utilitário tail , que exibe as últimas linhas de vários arquivos. O comando “ tail -f /var/log/syslog ” permite visualizar os logs gravados em tempo real.

O serviço rsyslog é muito flexível e poderoso. Ele pode ser usado para coletar logs em sistemas locais, bem como em nível corporativo. Você encontra a documentação completa no site oficial: https://www.rsyslog.com/

Rotação de logs no Linux

O registro de logs ocorre continuamente, portanto, o tamanho dos arquivos aumenta constantemente. O mecanismo de rotação garante o arquivamento automático dos logs antigos e a criação de novos arquivos. Dependendo das regras, isso pode ocorrer diariamente, semanalmente, mensalmente ou por limite de tamanho. À medida que novos logs são criados, os antigos podem ser simplesmente excluídos ou enviados por e-mail. A rotação de logs é realizada pelo utilitário logrotate . Você pode encontrar a configuração principal no arquivo “ /etc/logrotate.conf ”. O conteúdo dos arquivos também é processado na pasta “ /etc/logrotate.d/ ”.

Novas regras podem ser registradas no arquivo de configuração principal. No entanto, é melhor criar um arquivo separado em “ /etc/logrotate.d/ ”. Por padrão, existem alguns arquivos neste diretório.

Настраиваем ротацию логов no Linux

Vamos dar uma olhada no arquivo “ /etc/logrotate.d/rsyslog ” que contém as regras de rotação dos logs do serviço rsyslog .

Пример вывода всех ошибок pptpd em лог-файлах

Primeiro, a regra deve conter o caminho para o arquivo de log e depois todas as diretrizes entre colchetes.

  • girar 7 - número de arquivos a manter - 7
  • diariamente - crie um novo arquivo todos os dias
  • comprimir - compactar e arquivar arquivos antigos
Usando a lógica do Linux

Você pode ver na captura de tela que na pasta “ /var/log/ ” estão o log principal “ syslog ” e 7 arquivos compactados, o que corresponde às regras no arquivo de configuração.

Você pode encontrar uma descrição mais detalhada do logrotate no manual, executando o comando “ man logrotate ”.

Coletando logs do Linux - journald

O serviço de coleta de logs systemd-journald faz parte do sistema de inicialização systemd . Os arquivos de log do Linux são armazenados em “ /var/log/journal/ ” em um formato específico e podem ser abertos com o auxílio do utilitário journalctl . O formato dos registros é exatamente o mesmo do rsyslog.

O comando `journalctl` sem atributos exibe todos os registros, mas não é adequado para logs grandes. Vamos dar uma olhada em algumas opções dessa ferramenta.

  • journalctl -b - mostrar todos os registros desde a última inicialização
  • journalctl -S "2020-02-17 12:00" -U "2020-02-17 12:10" - mostrar registro dentro de um determinado período de tempo
  • journalctl -u pptpd - mostrar registros de um determinado serviço
  • journalctl -k - mostrar mensagens do kernel
  • journalctl -p err - mostrar mensagens de uma certa prioridade, mensagens de prioridade mais alta neste caso (crit, alert, emerg)
  • journalctl -f - mostrar mensagens em tempo real

Para maior flexibilidade, você pode combinar essas opções. Vamos mostrar todos os erros do serviço pptpd.

journalctl -u pptpd -p err
última versão

Se você especificar o caminho para o arquivo executável como um atributo, o utilitário exibirá todas as mensagens enviadas por esse arquivo. Vamos mostrar todas as mensagens enviadas pelo arquivo “ /usr/bin/sudo ” desde as 04:15 do dia 18 de fevereiro de 2020. Na verdade, ele mostrará todos os comandos executados com permissões elevadas.

journalctl -S "2020-02-18 04:15" /usr/bin/sudo
lastb clássico

Para descobrir quanto espaço em disco os arquivos de log ocupam, execute o seguinte comando

journalctl --disk-usage

Para limitar o arquivo de log a 1 Gb, execute o seguinte comando

journalctl --vacuum-size=1G

Abrindo arquivos binários

Agora vamos dar uma olhada em alguns arquivos especiais na pasta “ /var/log/ ”, onde todas as tentativas de login são armazenadas. Esses arquivos são binários e só podem ser abertos com programas específicos.

O arquivo /var/log/wtmp contém informações sobre tentativas de login bem-sucedidas. Use o utilitário last para abri-lo.

versão lastlog

O arquivo /var/log/btmp contém todas as tentativas de login falhas. Ele pode ser aberto com o comando lastb com permissões avançadas. O atributo -n define o número de linhas exibidas a partir do final do arquivo.

O arquivo /var/log/lastlog contém o horário da última ação de login para cada registro de conta. Ele pode ser aberto com o comando lastlog.

❮ Artigo anterior Editores de texto Linux
Próximo artigo ❯ Como configurar interfaces de rede no CentOS

Pergunte-nos sobre VPS

Estamos sempre prontos para responder suas perguntas a qualquer hora do dia ou da noite.