Share via


Guia de solução de problemas do Syslog para o Agente do Azure Monitor para Linux

Cuidado

Este artigo faz referência ao CentOS, uma distribuição do Linux que está se aproximando do status de EOL (fim da vida útil). Considere seu uso e planejamento adequadamente. Para obter mais informações, veja a orientação CentOS End Of Life.

Visão geral da coleta de Syslog do Agente do Azure Monitor para Linux e dos padrões RFC com suporte:

  • O Agente do Azure Monitor instala uma configuração de saída para o daemon do Syslog do sistema durante o processo de instalação. O arquivo de configuração especifica a maneira como os eventos fluem entre o daemon do Syslog e o Agente do Azure Monitor.
  • Para rsyslog (a maioria das distribuições do Linux), o arquivo de configuração é /etc/rsyslog.d/10-azuremonitoragent-omfwd.conf. Para syslog-ng, o arquivo de configuração é /etc/syslog-ng/conf.d/azuremonitoragent-tcp.conf.
  • O Agente do Azure Monitor escuta uma porta TCP para receber eventos de rsyslog / syslog-ng. A porta dessa comunicação é registrada em log em /etc/opt/microsoft/azuremonitoragent/config-cache/syslog.port.

    Observação

    Antes do Agente do Azure Monitor versão 1.28, ele usava um soquete de domínio Unix em vez de porta TCP para receber eventos do rsyslog. omfwd módulo de saída no rsyslog oferece mecanismos de spooling e repetição para melhorar a confiabilidade.

  • O daemon do Syslog usa filas quando a ingestão do Agente do Azure Monitor está atrasada ou quando o Agente do Azure Monitor não está acessível.
  • O Agente do Azure Monitor ingere eventos do Syslog por meio do soquete mencionado anteriormente e os filtra com base na combinação de instalação ou severidade da configuração da DCR (regra de coleta de dados) no /etc/opt/microsoft/azuremonitoragent/config-cache/configchunks/. Qualquer facility ou severity não presente na DCR é removido.
  • O Agente do Azure Monitor tenta analisar eventos de acordo com RFC3164 e RFC5424. Ele também sabe como analisar os formatos de mensagem listados neste site.
  • O Agente do Azure Monitor identifica o ponto de extremidade de destino para eventos do Syslog da configuração da DCR e tenta carregar os eventos.

    Observação

    O Agente do Azure Monitor usa a persistência local por padrão. Todos os eventos recebidos de rsyslog ou syslog-ng são enfileirados em /var/opt/microsoft/azuremonitoragent/events se houver falha no carregamento.

Problemas

Você pode encontrar os seguintes problemas.

Os dados do Rsyslog não são carregados devido a um problema de espaço em disco completo no Agente do Azure Monitor para Linux

As próximas seções descrevem o problema.

Sintoma

Os dados do Syslog não estão sendo carregados: Quando você inspeciona os logs de erro em /var/opt/microsoft/azuremonitoragent/log/mdsd.err, você vê entradas sobre Erro ao inserir item no repositório persistente local... Não há espaço no dispositivo semelhante ao seguinte trecho:

2021-11-23T18:15:10.9712760Z: Error while inserting item to Local persistent store syslog.error: IO error: No space left on device: While appending to file: /var/opt/microsoft/azuremonitoragent/events/syslog.error/000555.log: No space left on device

Causa

O Agente do Azure Monitor para Linux faz buffer de eventos para /var/opt/microsoft/azuremonitoragent/events antes da ingestão. Em uma instalação padrão do Agente do Azure Monitor para Linux, esse diretório leva cerca de 650 MB de espaço em disco em ociosidade. O tamanho no disco aumenta quando ele está sob carga de registro sustentada. Ele é limpo a cada 60 segundos e reduz de volta para cerca de 650 MB quando a carga voltar a ficar ociosa.

Confirmar o problema de disco cheio

O comando df mostra quase nenhum espaço disponível em /dev/sda1, conforme mostrado na saída a seguir. Observe que você deve examinar o item de linha que se correlaciona ao diretório de log (por exemplo, /var/log, /var ou /).

   df -h
Filesystem Size  Used Avail Use% Mounted on
udev        63G     0   63G   0% /dev
tmpfs       13G  720K   13G   1% /run
/dev/sda1   29G   29G  481M  99% /
tmpfs       63G     0   63G   0% /dev/shm
tmpfs      5.0M     0  5.0M   0% /run/lock
tmpfs       63G     0   63G   0% /sys/fs/cgroup
/dev/sda15 105M  4.4M  100M   5% /boot/efi
/dev/sdb1  251G   61M  239G   1% /mnt
tmpfs       13G     0   13G   0% /run/user/1000

Você pode usar o comando du para inspecionar o disco para determinar quais arquivos estão fazendo com que o disco esteja cheio. Por exemplo:

   cd /var/log
   du -h syslog*
6.7G    syslog
18G     syslog.1

Em alguns casos, du pode não relatar arquivos ou diretórios grandes. Pode ser possível que um arquivo marcado como (excluído) esteja ocupando o espaço. Esse problema pode acontecer quando algum outro processo tentou excluir um arquivo, mas um processo com o arquivo ainda está aberto. Você pode usar o comando lsof para verificar tais arquivos. No exemplo a seguir, vemos que /var/log/syslog está marcado como excluído, mas ocupa 3,6 GB de espaço em disco. Ele não foi excluído porque um processo com o PID 1484 ainda mantém o arquivo aberto.

   sudo lsof +L1
COMMAND   PID   USER   FD   TYPE DEVICE   SIZE/OFF NLINK  NODE NAME
none      849   root  txt    REG    0,1       8632     0 16764 / (deleted)
rsyslogd 1484 syslog   14w   REG    8,1 3601566564     0 35280 /var/log/syslog (deleted)

A configuração padrão do rsyslog registra todas as instalações em /var/log/

Em algumas distribuições populares (por exemplo, Ubuntu 18.04 LTS), o rsyslog é fornecido com um arquivo de configuração padrão (/etc/rsyslog.d/50-default.conf) que registra eventos de quase todas as instalações para o disco em /var/log/syslog. Eventos de Syslog da família RedHat/CentOS são armazenados em /var/log/, mas em um arquivo diferente: /var/log/messages.

O Agente do Azure Monitor não depende de eventos do Syslog serem registrados no /var/log/. Em vez disso, ele configura o serviço rsyslog para encaminhar eventos em uma porta TCP diretamente no processo de serviço de azuremonitoragent (mdsd).

Correção: remover recursos de volume alto de /etc/rsyslog.d/50-default.conf

Se você estiver enviando um volume do log alto por meio do rsyslog e seu sistema estiver configurado para registrar eventos para essas instalações, considere modificar a configuração padrão do rsyslog para evitar o registro em log e armazená-lo em /var/log/. Os eventos dessa instalação ainda seriam encaminhados para o Agente do Azure Monitor porque o rsyslog usa uma configuração diferente para o encaminhamento colocado em /etc/rsyslog.d/10-azuremonitoragent-omfwd.conf.

  1. Por exemplo, para impedir que eventos local4 sejam registrados em log em /var/log/syslog ou /var/log/messages, altere esta linha em /etc/rsyslog.d/50-default.conf desse trecho de código:

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

    Para este trecho (adicione local4.none;):

    *.*;local4.none;auth,authpriv.none          -/var/log/syslog
    
  2. sudo systemctl restart rsyslog

O buffer de eventos do Agente do Azure Monitor para Linux está preenchendo um disco

Se você observar o diretório /var/opt/microsoft/azuremonitor/events crescendo sem associação (10 GB ou superior) e não reduzindo de tamanho, registre um tíquete. Para Resumo, insira Buffer de Eventos do Agente do Azure Monitor está preenchendo o disco. Para Tipo de problema, insira Preciso de ajuda para configurar a coleta de dados de uma VM.

Registrar um tíquete

  1. Abra uma regra de coleta de dados e, no menu à esquerda, selecione Nova Solicitação de Suporte. Você também pode abrir o painel Ajuda + suporte e selecionar Criar uma solicitação de suporte.
  2. Selecione:
    • Tipo de problema: Técnico.
    • Assinatura: Selecione a assinatura onde seus computadores residem.
    • Tipo de serviço: Regras de coleta de dados e Agente do Azure Monitor.
    • Seu problema está relacionado a um recurso?: Sim. Selecione seu computador usando o seletor de recursos.
  3. Insira Resumo e Tipo de problema conforme indicado nas etapas de solução de problemas. Informações corretas levam a uma solução mais rápida do problema.
  4. Selecione Avançar e revise as soluções recomendadas para ver se elas ajudam.
  5. Se elas não ajudarem, selecione Avançar e preencha o próximo conjunto de detalhes.
  6. Selecione Avançar, examine os detalhes finais e selecione Criar.