Coletar eventos do Syslog com o Agente do Azure Monitor

Eventos do Syslog é uma das fontes de dados usadas em uma regra de coleta de dados (DCR). Os detalhes para a criação da DCR são fornecidos em Coleta de dados com o Agente do Azure Monitor. Este artigo fornece detalhes adicionais sobre o tipo de fonte de dados de eventos do Syslog.

O Syslog é um protocolo de registro de eventos em log comum para o Linux. Você pode usar o daemon do Syslog integrado a dispositivos Linux para coletar eventos locais dos tipos especificados. Os aplicativos enviam mensagens armazenadas no computador local ou entregues a um coletor do Syslog.

Dica

Para coletar dados de dispositivos que não permitem a instalação local do Agente do Azure Monitor, configure um encaminhador de log dedicado baseado em Linux.

Pré-requisitos

Configurar a coleção de dados do Syslog

Na etapa Coletar e entregar da DCR, selecione Syslog do Linux na lista suspensa Tipo de fonte de dados.

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

Número do índice de prioridade Nome da Prioridade
{none} Sem Pri
0 Kern
1 usuário
2 mail
3 daemon
4 auth
5 syslog
6 lpr
7 notícias
8 uucp
9 cron
10 authpriv
11 ftp
12 ntp
13 auditoria
14 alerta
15 relógio
16 local0
17 local1
18 local2
19 local3
20 local4
21 local5
22 local6
23 local7

Captura de tela que mostra a página para selecionar o tipo de fonte de dados e o nível de log mínimo.

Por padrão, o agente coletará todos os eventos enviados pela configuração do Syslog. Altere o Nível mínimo de log para cada instalação para limitar a coleta de dados. Selecione NENHUM para não coletar eventos para uma instalação específica.

Destinos

Os dados do Syslog podem ser enviados para os seguintes locais.

Destino Tabela / Namespace
Espaço de Trabalho do Log Analytics syslog

Observação

O Agente Linux do Azure Monitor versões 1.15.2 e posteriores dá suporte a formatos RFC de syslog incluindo Cisco Meraki, Cisco ASA, Cisco FTD, Sophos XG, Juniper Networks, Corelight Zeek, CipherTrust, NXLog, McAfee e CEF (Formato Comum de Evento).

Captura de tela mostrando a configuração de um destino de logs do Azure Monitor em uma regra de coleta de dados.

Configurar o Syslog no agente do Linux

Quando o Agente do Azure Monitor é instalado em um computador Linux, ele instala um arquivo de configuração do Syslog padrão que define o recurso e a gravidade das mensagens coletadas se o Syslog estiver habilitado em uma DCR. O arquivo de configuração é diferente, dependendo do daemon do Syslog que o cliente tem instalado.

Rsyslog

Em muitas distribuições do Linux, o daemon do rsyslogd é responsável por consumir, armazenar e rotear mensagens de log enviadas usando a API de Syslog do Linux. O Agente do Azure Monitor usa o módulo de saída de encaminhamento TCP (omfwd) no rsyslog para encaminhar mensagens de log.

A instalação do Agente do Azure Monitor inclui arquivos de configuração padrão localizados em /etc/opt/microsoft/azuremonitoragent/syslog/rsyslogconf/. Quando o Syslog for adicionado a uma DCR, essa configuração será instalada no diretório do sistema etc/rsyslog.d e o rsyslog será reiniciado automaticamente para que as alterações entrem em vigor.

Observação

Em sistemas baseados em rsyslog, o Agente Linux do Azure Monitor adiciona regras de encaminhamento ao conjunto de regras padrão definido na configuração de rsyslog. Se usar vários conjuntos de regras, as entradas associadas a conjuntos de regras não padrão não serão encaminhadas para o Agente do Azure Monitor. Para obter mais informações sobre os vários conjuntos de regras no rsyslog, consulte a documentação oficial.

A seguir está a configuração padrão que coleta mensagens do Syslog enviadas do agente local para todas as instalações com todos os níveis de log.

$ cat /etc/rsyslog.d/10-azuremonitoragent-omfwd.conf
# Azure Monitor Agent configuration: forward logs to azuremonitoragent

template(name="AMA_RSYSLOG_TraditionalForwardFormat" type="string" string="<%PRI%>%TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg%")
# queue.workerThreads sets the maximum worker threads, it will scale back to 0 if there is no activity
# Forwarding all events through TCP port
*.* action(type="omfwd"
template="AMA_RSYSLOG_TraditionalForwardFormat"
queue.type="LinkedList"
queue.filename="omfwd-azuremonitoragent"
queue.maxFileSize="32m"
action.resumeRetryCount="-1"
action.resumeInterval="5"
action.reportSuspension="on"
action.reportSuspensionContinuation="on"
queue.size="25000"
queue.workerThreads="100"
queue.dequeueBatchSize="2048"
queue.saveonshutdown="on"
target="127.0.0.1" Port="28330" Protocol="tcp")

A configuração a seguir é usada quando você usa SELinux e decide usar soquetes Unix.

$ cat /etc/rsyslog.d/10-azuremonitoragent.conf
# Azure Monitor Agent configuration: forward logs to azuremonitoragent
$OMUxSockSocket /run/azuremonitoragent/default_syslog.socket
template(name="AMA_RSYSLOG_TraditionalForwardFormat" type="string" string="<%PRI%>%TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg%") 
$OMUxSockDefaultTemplate AMA_RSYSLOG_TraditionalForwardFormat
# Forwarding all events through Unix Domain Socket
*.* :omuxsock: 
$ cat /etc/rsyslog.d/05-azuremonitoragent-loadomuxsock.conf
# Azure Monitor Agent configuration: load rsyslog forwarding module. 
$ModLoad omuxsock

Em alguns sistemas herdados, você pode ver problemas de formatação de log do rsyslog quando um formato de encaminhamento tradicional é usado para enviar eventos do Syslog para o Agente do Azure Monitor. Para esses sistemas, o Agente do Azure Monitor coloca automaticamente um modelo de encaminhador herdado:

template(name="AMA_RSYSLOG_TraditionalForwardFormat" type="string" string="%TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg%\n")

Syslog-ng

A instalação do Agente do Azure Monitor inclui arquivos de configuração padrão localizados em /etc/opt/microsoft/azuremonitoragent/syslog/syslog-ngconf/azuremonitoragent-tcp.conf. Quando o Syslog é adicionado a uma DCR, essa configuração é instalada no diretório do sistema /etc/syslog-ng/conf.d/azuremonitoragent-tcp.conf e o syslog-ng é reiniciado automaticamente para que as alterações entrem em vigor.

O conteúdo padrão é mostrado no exemplo a seguir. Esse exemplo coleta mensagens do Syslog enviadas do agente local para todos os recursos e todas as severidades.

$ cat /etc/syslog-ng/conf.d/azuremonitoragent-tcp.conf 
# Azure MDSD configuration: syslog forwarding config for mdsd agent
options {};

# during install time, we detect if s_src exist, if it does then we
# replace it by appropriate source name like in redhat 's_sys'
# Forwrding using tcp
destination d_azure_mdsd {
	network("127.0.0.1" 
	port(28330)
	log-fifo-size(25000));			
};

log {
	source(s_src); # will be automatically parsed from /etc/syslog-ng/syslog-ng.conf
	destination(d_azure_mdsd);
	flags(flow-control);
};

A configuração a seguir é usada quando você usa SELinux e decide usar soquetes Unix.

$ cat /etc/syslog-ng/conf.d/azuremonitoragent.conf 
# Azure MDSD configuration: syslog forwarding config for mdsd agent options {}; 
# during install time, we detect if s_src exist, if it does then we 
# replace it by appropriate source name like in redhat 's_sys' 
# Forwrding using unix domain socket 
destination d_azure_mdsd { 
	unix-dgram("/run/azuremonitoragent/default_syslog.socket" 
	flags(no_multi_line) ); 
};
 
log {
	source(s_src); # will be automatically parsed from /etc/syslog-ng/syslog-ng.conf 
	destination(d_azure_mdsd);
}; 

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 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.

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

Instalações com suporte

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

Índice Pri Nome Pri
0 Nenhum
1 Kern
2 usuário
3 mail
4 daemon
4 auth
5 syslog
6 lpr
7 notícias
8 uucp
9 ftp
10 ntp
11 auditoria
12 alerta
13 marca
14 local0
15 local1
16 local2
17 local3
18 local4
19 local5
20 local6
21 local7

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 de log do Syslog de exemplo

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

  • Todos os Syslogs

      Syslog
    
  • Todos os registros do Syslog com a severidade de erro

      Syslog
      | where SeverityLevel == "error"
    
  • Todos os registros do Syslog com o tipo de instalação de autenticação

      Syslog
      | where facility == "auth"
    
  • Contagem de registros do Syslog por instalação

      Syslog
      | summarize AggregatedValue = count() by facility
    

Solução de problemas

Siga as etapas a seguir se você não estiver coletando dados do log JSON esperado.

  • Verifique se os dados estão sendo gravados no Syslog.
  • Consulte Verificar operação para verificar se o agente está operacional e se os dados estão sendo recebidos.

Próximas etapas

Saiba mais sobre: