Coletar eventos do Syslog com o Azure Monitor Agent

Atenção

Este artigo faz referência ao CentOS, uma distribuição Linux que está se aproximando do status de Fim da Vida Útil (EOL). Por favor, considere o seu uso e planejamento de acordo. Para obter mais informações, consulte as diretrizes de Fim da Vida Útil do CentOS.

Syslog é um protocolo de log de eventos que é comum ao Linux. Você pode usar o daemon Syslog integrado a dispositivos e dispositivos Linux para coletar eventos locais dos tipos especificados. Em seguida, você pode fazer com que ele envie esses eventos para um espaço de trabalho do Log Analytics. Os aplicativos enviam mensagens que podem ser armazenadas na máquina local ou entregues a um coletor Syslog.

Quando o agente do Azure Monitor para Linux é instalado, ele configura o daemon Syslog local para encaminhar mensagens para o agente quando a coleta Syslog está habilitada em regras de coleta de dados (DCRs). Em seguida, o Agente do Azure Monitor envia as mensagens para um espaço de trabalho do Azure Monitor ou do Log Analytics onde um registro Syslog correspondente é criado em uma tabela Syslog.

Diagrama que mostra a coleção Syslog.

Diagrama que mostra o daemon Syslog e a comunicação do Agente do Azure Monitor.

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

  • Nenhuma
  • Kern
  • Utilizador
  • correio
  • Daemon
  • autenticação
  • syslog
  • LPR
  • notícias
  • UUCP
  • ftp
  • NTP
  • auditoria
  • alerta
  • mark
  • local0
  • local1
  • local2
  • local3
  • local4
  • local5
  • local6
  • local7

Para alguns tipos de dispositivo que não permitem a instalação local do Azure Monitor Agent, o agente pode ser instalado em vez disso em um encaminhador de log dedicado baseado em Linux. O dispositivo de origem deve ser configurado para enviar eventos Syslog para o daemon Syslog neste encaminhador em vez do daemon local. Para obter mais informações, consulte o tutorial do Sentinel.

Configurar o Syslog

O Agente do Azure Monitor para Linux coleta apenas eventos com os recursos e gravidades especificados em sua configuração. Você pode configurar o Syslog por meio do portal do Azure ou gerenciando arquivos de configuração em seus agentes Linux.

Configurar o Syslog no portal do Azure

Configure o Syslog no menu Regras de Coleta de Dados do Azure Monitor. Essa configuração é entregue ao arquivo de configuração em cada agente Linux.

  1. Selecione Adicionar origem de dados.
  2. Para Tipo de fonte de dados, selecione Linux syslog.

Você pode coletar eventos Syslog com um nível de log diferente para cada instalação. Por padrão, todos os tipos de recursos Syslog são coletados. Se você não quiser coletar, por exemplo, eventos do tipo, selecione NENHUM na caixa de listagem Nível mínimo de auth log para auth facilidade e salve as alterações. Se você precisar alterar o nível de log padrão para eventos Syslog e coletar apenas eventos com um nível de log começando em NOTICE ou uma prioridade superior, selecione LOG_NOTICE na caixa de listagem Nível mínimo de log .

Por padrão, todas as alterações de configuração são enviadas automaticamente por push para todos os agentes configurados no DCR.

Criar uma regra de coleta de dados

Crie uma regra de coleta de dados na mesma região do espaço de trabalho do Log Analytics. Um DCR é um recurso do Azure que permite definir a forma como os dados devem ser tratados à medida que são ingeridos na área de trabalho.

  1. Inicie sessão no portal do Azure.

  2. Procure e abra o Monitor.

  3. Em Configurações, selecione Regras de Coleta de Dados.

  4. Selecione Criar.

    Captura de ecrã que mostra o painel Regras de Recolha de Dados com a opção Criar selecionada.

Adicionar recursos

  1. Selecione Adicionar recursos.

  2. Use os filtros para localizar a máquina virtual que você deseja usar para coletar logs.

    Captura de tela que mostra a página para selecionar o escopo da regra de coleta de dados.

  3. Selecione a máquina virtual.

  4. Selecione Aplicar.

  5. Selecione Next: Coletar e entregar.

Adicionar uma origem de dados

  1. Selecione Adicionar origem de dados.

  2. Para Tipo de fonte de dados, selecione Linux syslog.

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

  3. Para Nível mínimo de log, deixe os valores padrão LOG_DEBUG.

  4. Selecione Next: Destination.

Adicionar um destino

  1. Selecione Adicionar destino.

    Captura de ecrã que mostra o separador Destino com a opção Adicionar destino selecionada.

  2. Introduza os seguintes valores:

    Campo Value
    Tipo de destino Registos do Azure Monitor
    Subscrição Selecione a assinatura apropriada
    Conta ou namespace Selecione o espaço de trabalho apropriado do Log Analytics
  3. Selecione Adicionar origem de dados.

  4. Selecione Seguinte: Rever + criar.

Criar uma regra

  1. Selecione Criar.
  2. Aguarde 20 minutos antes de passar para a próxima seção.

Se sua VM não tiver o Azure Monitor Agent instalado, a implantação do DCR acionará a instalação do agente na VM.

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 Agente do Azure Monitor usa o módulo de saída de encaminhamento TCP (omfwd) no rsyslog para encaminhar mensagens de log para o Agente do Azure Monitor.

A instalação do Azure Monitor Agent inclui arquivos de configuração padrão que são colocados no seguinte diretório: /etc/opt/microsoft/azuremonitoragent/syslog/rsyslogconf/

Quando o Syslog é adicionado a um DCR, esses arquivos de configuração são instalados no diretório do sistema e o etc/rsyslog.d rsyslog é reiniciado automaticamente para que as alterações entrem em vigor. Esses arquivos são usados pelo rsyslog para carregar o módulo de saída e encaminhar os eventos para o daemon do Azure Monitor Agent usando regras definidas.

Seu conteúdo padrão é mostrado no exemplo a seguir. Este exemplo 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"
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")

Em alguns sistemas herdados, como o CentOS 7.3, vimos 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

O arquivo de configuração para syslog-ng está instalado em /etc/opt/microsoft/azuremonitoragent/syslog/syslog-ngconf/azuremonitoragent-tcp.conf. Quando a coleção Syslog é adicionada a um DCR, esse arquivo de configuração é colocado sob o diretório do /etc/syslog-ng/conf.d/azuremonitoragent-tcp.conf sistema e 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);
};

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 do Red Hat Enterprise Linux, CentOS e Oracle Linux version (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.

Pré-requisitos

Necessita de:

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.

Consultas de log com registros Syslog

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

Query Description
Syslog Todos os Syslogs
Syslog | onde SeverityLevel == "erro" Todos os registos Syslog com gravidade de erro
Syslog | onde Facility == "auth" Todos os registros Syslog com tipo de recurso de autenticação
Syslog | resumir AggregatedValue = count() por Facility Contagem de registros Syslog por instalação

Próximos passos

Saiba mais sobre: