Coletar fontes de dados do Syslog com o agente do Log Analytics

O Syslog é um protocolo de registro de eventos em log comum para o Linux. Os aplicativos enviam mensagens que podem ser armazenadas no computador local ou entregues a um coletor de Syslog. Quando o agente do Log Analytics para Linux é instalado, ele configura o daemon do Syslog local para encaminhar mensagens para o agente. O agente envia mensagens ao Azure Monitor, onde um registro correspondente é criado.

Importante

O agente herdado do Log Analyticsserá preterido em agosto de 2024. Migrar para o agente do Azure Monitor antes de agosto de 2024, para continuar a ingestão de dados.

Observação

O Azure Monitor dá suporte à coleta de mensagens enviadas pelo rsyslog ou syslog-ng, em que o rsyslog é o daemon padrão. O daemon Syslog padrão na versão 5 do Red Hat Enterprise Linux, CentOS e na versão Oracle Linux (sysklog) não tem suporte para a coleta de eventos de Syslog. Para coletar dados de Syslog nessa versão das distribuições, o daemon rsyslog deverá ser instalado e configurado para substituir sysklog.

Diagrama que mostra a coleta de Syslog.

As seguintes instalações têm suporte com o coletor do Syslog:

  • kern
  • usuário
  • mail
  • daemon
  • auth
  • syslog
  • lpr
  • notícias
  • uucp
  • cron
  • authpriv
  • FTP
  • local0-local7

Para qualquer outro recurso, configure uma fonte de dados de logs personalizados no Azure Monitor.

Configurar Syslog

O agente do Log Analytics para Linux coletará apenas eventos com as instalações e as severidades especificadas na configuração. Você pode configurar o Syslog por meio do Portal do Azure ou gerenciando arquivos de configuração em seus agentes do Linux.

Configurar o Syslog no Portal do Azure

Configure o Syslog no Menu de configuração do agente para o workspace do Log Analytics. Essa configuração é entregue ao arquivo de configuração em cada agente do Linux.

Você pode adicionar um novo recurso selecionando Adicionar recurso. Para cada recurso, somente mensagens com as severidades selecionadas serão coletados. Selecione as severidades do recurso específico que você deseja coletar. Você não pode fornecer critérios adicionais para filtrar mensagens.

Captura de tela que mostra a configuração de Syslog.

Por padrão, todas as alterações de configuração são automaticamente envidas por push para todos os agentes. Se quiser configurar o Syslog manualmente em cada agente do Linux, desmarque a caixa de seleção Aplicar as configurações abaixo aos computadores.

Configurar o Syslog no agente do Linux

Quando o agente do Log Analytics é instalado em um cliente Linux, ele instala um arquivo de configuração do Syslog padrão que define o recurso e a severidade das mensagens coletadas. Você pode modificar esse arquivo para alterar a configuração. O arquivo de configuração é diferente, dependendo do daemon do Syslog que o cliente tem instalado.

Observação

Se você editar a configuração de Syslog, deverá reiniciar o daemon Syslog para que as alterações entrem em vigor.

rsyslog

O arquivo de configuração para rsyslog está localizado em /etc/rsyslog.d/95-omsagent.conf. Seu conteúdo padrão é mostrado no exemplo a seguir. Esse exemplo coleta mensagens do Syslog enviadas do agente local para todos os recursos com um nível de aviso ou superior.

kern.warning       @127.0.0.1:25224
user.warning       @127.0.0.1:25224
daemon.warning     @127.0.0.1:25224
auth.warning       @127.0.0.1:25224
syslog.warning     @127.0.0.1:25224
uucp.warning       @127.0.0.1:25224
authpriv.warning   @127.0.0.1:25224
ftp.warning        @127.0.0.1:25224
cron.warning       @127.0.0.1:25224
local0.warning     @127.0.0.1:25224
local1.warning     @127.0.0.1:25224
local2.warning     @127.0.0.1:25224
local3.warning     @127.0.0.1:25224
local4.warning     @127.0.0.1:25224
local5.warning     @127.0.0.1:25224
local6.warning     @127.0.0.1:25224
local7.warning     @127.0.0.1:25224

Você pode remover um recurso removendo sua seção do arquivo de configuração. Você pode limitar as severidades coletadas para um recurso específico, modificando a entrada desse recurso. Por exemplo, para limitar o recurso do usuário a mensagens com uma severidade de erro ou superior, você modificaria essa linha do arquivo de configuração para o seguinte exemplo:

user.error    @127.0.0.1:25224

syslog-ng

O arquivo de configuração de syslog-ng fica localizado em /etc/syslog-ng/syslog-ng.conf. O conteúdo padrão dele é mostrado neste exemplo. Esse exemplo coleta mensagens do Syslog enviadas do agente local para todos os recursos e todas as severidades.

#
# Warnings (except iptables) in one file:
#
destination warn { file("/var/log/warn" fsync(yes)); };
log { source(src); filter(f_warn); destination(warn); };

#OMS_Destination
destination d_oms { udp("127.0.0.1" port(25224)); };

#OMS_facility = auth
filter f_auth_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(auth); };
log { source(src); filter(f_auth_oms); destination(d_oms); };

#OMS_facility = authpriv
filter f_authpriv_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(authpriv); };
log { source(src); filter(f_authpriv_oms); destination(d_oms); };

#OMS_facility = cron
filter f_cron_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(cron); };
log { source(src); filter(f_cron_oms); destination(d_oms); };

#OMS_facility = daemon
filter f_daemon_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(daemon); };
log { source(src); filter(f_daemon_oms); destination(d_oms); };

#OMS_facility = kern
filter f_kern_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(kern); };
log { source(src); filter(f_kern_oms); destination(d_oms); };

#OMS_facility = local0
filter f_local0_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(local0); };
log { source(src); filter(f_local0_oms); destination(d_oms); };

#OMS_facility = local1
filter f_local1_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(local1); };
log { source(src); filter(f_local1_oms); destination(d_oms); };

#OMS_facility = mail
filter f_mail_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(mail); };
log { source(src); filter(f_mail_oms); destination(d_oms); };

#OMS_facility = syslog
filter f_syslog_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(syslog); };
log { source(src); filter(f_syslog_oms); destination(d_oms); };

#OMS_facility = user
filter f_user_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(user); };
log { source(src); filter(f_user_oms); destination(d_oms); };

Você pode remover um recurso removendo sua seção do arquivo de configuração. Você pode limitar as severidades coletadas para um recurso específico, removendo-as de sua lista. Por exemplo, para limitar o usuário a alertar apenas mensagens críticas, você modificaria essa seção do arquivo de configuração, conforme mostrado no seguinte exemplo:

#OMS_facility = user
filter f_user_oms { level(alert,crit) and facility(user); };
log { source(src); filter(f_user_oms); destination(d_oms); };

Coletar dados de outras portas de Syslog

O agente do Log Analytics escuta as mensagens do Syslog no cliente local na porta 25224. Quando o agente é instalado, uma configuração de Syslog padrão é aplicada e encontra o seguinte local:

  • Rsyslog: /etc/rsyslog.d/95-omsagent.conf
  • Syslog-ng: /etc/syslog-ng/syslog-ng.conf

Você pode alterar o número da porta criando dois arquivos de configuração: um arquivo de configuração FluentD, e um arquivo rsyslog-or-syslog-ng, dependendo do daemon do Syslog que você instalou.

  • O arquivo de configuração FluentD deve ser um novo arquivo localizado em /etc/opt/microsoft/omsagent/conf/omsagent.d e substituir o valor na entrada da port por seu número da porta personalizado.

    <source>
        type syslog
        port %SYSLOG_PORT%
        bind 127.0.0.1
        protocol_type udp
        tag oms.syslog
    </source>
    <filter oms.syslog.**>
        type filter_syslog
    
  • Para rsyslog, você deve criar um novo arquivo de configuração localizado em: /etc/rsyslog.d/ e substituir o valor %SYSLOG_PORT% pelo número da porta personalizada.

    Observação

    Se você modificar esse valor no arquivo de configuração 95-omsagent.conf, ele será substituído quando o agente aplicar a uma configuração padrão.

    # OMS Syslog collection for workspace %WORKSPACE_ID%
    kern.warning              @127.0.0.1:%SYSLOG_PORT%
    user.warning              @127.0.0.1:%SYSLOG_PORT%
    daemon.warning            @127.0.0.1:%SYSLOG_PORT%
    auth.warning              @127.0.0.1:%SYSLOG_PORT%
    
  • A configuração de syslog-ng deve ser modificada por meio da cópia da configuração de exemplo mostrada a seguir e adicionando as configurações modificadas personalizadas ao final do arquivo de configuração syslog-ng.conf localizado em /etc/syslog-ng/. Não use o rótulo padrão %WORKSPACE_ID%_oms ou %WORKSPACE_ID_OMS. Defina um rótulo personalizado para ajudar a distinguir suas alterações.

    Observação

    Se você modificar os valores padrão no arquivo de configuração, eles serão substituídos quando o agente aplicar uma configuração padrão.

    filter f_custom_filter { level(warning) and facility(auth; };
    destination d_custom_dest { udp("127.0.0.1" port(%SYSLOG_PORT%)); };
    log { source(s_src); filter(f_custom_filter); destination(d_custom_dest); };
    

Após concluir as alterações, reinicie o Syslog e o serviço do agente do Log Analytics para garantir que as alterações na configuração entrem em vigor.

Propriedades de registro do syslog

Os registros do syslog têm um tipo de Syslog e têm as propriedades mostradas na tabela a seguir.

Propriedade Descrição
Computador Computador do qual o evento foi coletado.
Recurso Define a parte do sistema que gerou a mensagem.
HostIP Endereço IP do sistema que envia a mensagem.
HostName Nome do sistema enviando a mensagem.
SeverityLevel Nível de severidade do evento.
SyslogMessage Texto da mensagem.
ProcessID A ID do processo que gerou a mensagem.
EventTime Data e hora em que o alerta foi gerado.

Consultas do log com registros do Syslog

A tabela a seguir fornece diferentes exemplos de consultas de log que recuperam registros do Syslog.

Consulta Descrição
syslog Todos os Syslogs
Syslog | where SeverityLevel == "error" Todos os registros do Syslog com a severidade de erro
Syslog | summarize AggregatedValue = count() by Computer Contagem de registros do Syslog por computador
Syslog | summarize AggregatedValue = count() by Facility Contagem de registros do Syslog por recurso

Próximas etapas