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.
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.
- Selecione Adicionar origem de dados.
- 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.
Inicie sessão no portal do Azure.
Procure e abra o Monitor.
Em Configurações, selecione Regras de Coleta de Dados.
Selecione Criar.
Adicionar recursos
Selecione Adicionar recursos.
Use os filtros para localizar a máquina virtual que você deseja usar para coletar logs.
Selecione a máquina virtual.
Selecione Aplicar.
Selecione Next: Coletar e entregar.
Adicionar uma origem de dados
Selecione Adicionar origem de dados.
Para Tipo de fonte de dados, selecione Linux syslog.
Para Nível mínimo de log, deixe os valores padrão LOG_DEBUG.
Selecione Next: Destination.
Adicionar um destino
Selecione Adicionar destino.
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 Selecione Adicionar origem de dados.
Selecione Seguinte: Rever + criar.
Criar uma regra
- Selecione Criar.
- 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:
- Um espaço de trabalho do Log Analytics onde você tem pelo menos direitos de colaborador.
- Um ponto de extremidade de coleta de dados.
- Permissões para criar objetos DCR no espaço de trabalho.
- As mensagens Syslog devem seguir os padrões RFC (RFC5424 ou RFC3164)
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: