Partilhar via


Coletar eventos do Syslog com o Azure Monitor Agent

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

Syslog é um protocolo de log de eventos que é comum ao Linux. Você pode usar o daemon Syslog integrado em dispositivos e dispositivos Linux para coletar eventos locais dos tipos especificados. Os aplicativos enviam mensagens que são armazenadas na máquina local ou entregues a um coletor Syslog.

Gorjeta

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

Pré-requisitos

Configurar a coleta de dados do Syslog

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

Os seguintes recursos são suportados com o coletor Syslog:

Número do índice de prioridade Nome da prioridade
{nenhum} Sem Pri
0 Kern
1 Utilizador
2 correio
3 Daemon
4 autenticação
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 mínimo de log.

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 recurso para limitar a coleta de dados. Selecione NENHUM para não coletar eventos para um recurso específico.

Destinos

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

Destino Tabela / Namespace
Área de trabalho do Log Analytics Syslog

Nota

As versões 1.15.2 e superiores do Azure Monitor Linux Agent suportam formatos RFC syslog, incluindo Cisco Meraki, Cisco ASA, Cisco FTD, Sophos XG, Juniper Networks, Corelight Zeek, CipherTrust, NXLog, McAfee e Common Event Format (CEF).

Captura de tela que mostra a configuração de um destino de Logs do Azure Monitor em uma regra de coleta de dados.

Configurar o Syslog no agente Linux

Quando o Azure Monitor Agent é instalado em uma máquina Linux, ele instala um arquivo de configuração Syslog padrão que define a facilidade e a gravidade das mensagens coletadas se o Syslog estiver habilitado em um DCR. O arquivo de configuração é diferente dependendo do daemon Syslog que o cliente instalou.

Rsyslog

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

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

Nota

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 rsyslog. Se vários conjuntos de regras forem usados, as entradas vinculadas a conjuntos de regras não padrão não serão encaminhadas para o Azure Monitor Agent. Para obter mais informações sobre vários conjuntos de regras no rsyslog, consulte a documentação oficial.

A seguir está a configuração padrão que coleta mensagens Syslog enviadas do agente local para todos os recursos 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"
queue.maxDiskSpace="1g"
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 rsyslog quando um formato de encaminhamento tradicional é usado para enviar eventos Syslog para o Azure Monitor Agent. Para esses sistemas, o Azure Monitor Agent 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 Azure Monitor Agent inclui arquivos de configuração padrão localizados em /etc/opt/microsoft/azuremonitoragent/syslog/syslog-ngconf/azuremonitoragent-tcp.conf. Quando o Syslog é adicionado a um DCR, essa configuração é instalada no diretório do sistema e o /etc/syslog-ng/conf.d/azuremonitoragent-tcp.conf syslog-ng é reiniciado automaticamente para que as alterações entrem em vigor.

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

$ 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);
}; 

Nota

O Azure Monitor dá suporte à coleção de mensagens enviadas por rsyslog ou syslog-ng, onde rsyslog é o daemon padrão. O daemon Syslog padrão na versão 5 da versão Red Hat Enterprise Linux e Oracle Linux (sysklog) não é suportado para a coleta de eventos Syslog. Para coletar dados Syslog desta versão dessas distribuições, o daemon rsyslog deve ser instalado e configurado para substituir sysklog.

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

Instalações suportadas

Os seguintes recursos são suportados com o coletor Syslog:

Índice Pri Nome Pri
0 Nenhuma
1 Kern
2 Utilizador
3 correio
4 Daemon
4 autenticação
5 syslog
6 LPR
7 notícias
8 UUCP
9 ftp
10 NTP
11 auditoria
12 alerta
13 mark
14 local0
15 local1
16 local2
17 local3
18 local4
19 local5
20 local6
21 local7

Propriedades do registro Syslog

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

Property Description
Computador Computador do qual o evento foi coletado.
Instalações Define a parte do sistema que gerou a mensagem.
HostIP Endereço IP do sistema que envia a mensagem.
Nome do Anfitrião Nome do sistema que envia a mensagem.
Nível de Gravidade Nível de gravidade do evento.
SyslogMessage Texto da mensagem.
ProcessID ID do processo que gerou a mensagem.
EventTime Data e hora em que o evento foi gerado.

Exemplos de consultas de log do Syslog

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

  • Todos os Syslogs

      Syslog
    
  • Todos os registos Syslog com gravidade de erro

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

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

      Syslog
      | summarize AggregatedValue = count() by facility
    

Resolução de Problemas

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

  • 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óximos passos

Saiba mais sobre: