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
- Espaço de trabalho do Log Analytics onde você tem pelo menos direitos de colaborador. Os eventos Syslog são enviados para a tabela Syslog .
- Um DCR novo ou existente descrito em Coletar dados com o Azure Monitor Agent.
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 |
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).
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: