Compartilhar via


Coletar eventos do Syslog do cliente de máquina virtual com o Azure Monitor

O Syslog é um protocolo de registro de eventos em log comum para o Linux. Você pode usar o daemon do Syslog integrado a dispositivos e dispositivos Linux para coletar eventos locais dos tipos especificados. Os aplicativos enviam mensagens armazenadas no computador local ou entregues a um coletor do Syslog. Colete eventos do Syslog de máquinas virtuais usando uma DCR (regra de coleta de dados) com uma fonte de dados do Syslog do Linux .

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, conforme descrito em Encaminhar dados do Syslog para um workspace do Log Analytics com o Microsoft Sentinel usando o Agente do Azure Monitor.

Os detalhes para a criação do DCR são fornecidos na coleta de dados do cliente de VM com o Azure Monitor. Este artigo fornece outros detalhes para o tipo de fonte de dados do Linux Syslog.

Observação

Para trabalhar diretamente com a definição de DCR ou implantar com outros métodos, como modelos do ARM, consulte exemplos de DCR (regra de coleta de dados) no Azure Monitor.

Criar o DCR

Crie o DCR usando o processo em Coletar dados do cliente de máquina virtual com o Azure Monitor.

Configurar a fonte de dados do Syslog

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

Selecione um nível de log mínimo para cada instalação ou NONE para não coletar nenhum evento para essa instalação. Você pode configurar várias instalações ao mesmo tempo selecionando sua caixa de seleção e selecionando um nível de log em Definir o nível mínimo de log para instalações selecionadas.

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

Todos os logs com o nível de severidade selecionado e superior são coletados para a instalação. Os níveis de gravidade com suporte e a gravidade relativa são os seguintes:

  1. Depurar
  2. Informações
  3. Informativo
  4. Aviso
  5. Erro
  6. Crítico
  7. Alerta
  8. Emergência

Adicionar destinos

Os dados do Syslog só podem ser enviados para um workspace do Log Analytics onde são armazenados na tabela Syslog . Adicione um destino do tipo Azure Monitor Logs e selecione um espaço de trabalho do Log Analytics. Embora você possa adicionar vários workspaces, lembre-se de que isso enviará dados duplicados para cada um, o que resultará em custo adicional.

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

Verificar a coleta de dados

Para verificar se os dados estão sendo coletados, verifique se há registros na tabela Syslog . Na máquina virtual ou no workspace do Log Analytics no portal do Azure, selecione Logs e clique no botão Tabelas . Na categoria máquinas virtuais , clique em Executar ao lado do Syslog.

Captura de tela que mostra os registros retornados da tabela Syslog.

Observação

Ao ingerir dados de syslog usando um encaminhador de log, podem surgir inconsistências entre os campos TimeGenerated e EventTime.

  • TimeGenerated reflete a hora UTC em que a mensagem syslog foi processada pelo computador que hospeda o encaminhador de log ou coletor.
  • EventTime é extraído do cabeçalho syslog, que não inclui informações de fuso horário e é convertido em UTC usando o deslocamento de fuso horário local do encaminhador/coletor.

Isso pode levar a diferenças entre os dois campos quando o encaminhador/coletor e o dispositivo que gera o log estão em fusos horários diferentes.

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.

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

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 forem utilizados vários conjuntos de regras, as entradas vinculadas 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 configuração padrão a seguir coleta mensagens 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"
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 legados, você pode encontrar problemas de formatação de log do rsyslog quando se usa um formato de encaminhamento tradicional para enviar eventos do Syslog para o Azure Monitor Agent. 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 recolher dados Syslog desta versão dessas distribuições, o daemon rsyslog deve ser instalado e configurado para substituir o 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 Syslog:

Índice Pri Nome Pri
0 Kern
1 usuário
2 email
3 daemon
4 auth
5 syslog
6 lpr
7 news
oito 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
24 {sem pioridade}

Ponto-e-vírgulas são removidos de mensagens Syslog

O AMA (Agente do Azure Monitor) encaminha dados do Syslog conforme recebido. Ele não modifica o conteúdo da mensagem. No entanto, caracteres de ponto e vírgula (;) em mensagens do Syslog são removidos durante a ingestão no Azure Log Analytics.

Se precisar preservar os pontos e vírgulas, considere modificar a mensagem Syslog na origem antes da ingestão. Por exemplo, você pode substituir ponto-e-vírgula por um caractere diferente, como vírgula ou pipe (|), ou pode codificar o conteúdo da mensagem antes de enviá-lo para o Azure Monitor.

Próximas etapas