Coletar eventos do Syslog com o Agente do Azure Monitor
Eventos do Syslog é uma das fontes de dados usadas em uma regra de coleta de dados (DCR). Os detalhes para a criação da DCR são fornecidos em Coleta de dados com o Agente do Azure Monitor. Este artigo fornece detalhes adicionais sobre o tipo de fonte de dados de eventos do Syslog.
O Syslog é um protocolo de registro de eventos em log comum para o Linux. Você pode usar o daemon do Syslog integrado a dispositivos Linux para coletar eventos locais dos tipos especificados. Os aplicativos enviam mensagens armazenadas no computador local ou entregues a um coletor do Syslog.
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.
Pré-requisitos
- Workspace do Log Analytics em que você tem pelo menos direitos de colaborador. Os eventos do Syslog são enviados para a tabela Syslog.
- Uma DCR nova ou existente descrita em Coleta de dados com o Agente do Azure Monitor.
Configurar a coleção de dados do Syslog
Na etapa Coletar e entregar da DCR, selecione Syslog do Linux na lista suspensa Tipo de fonte de dados.
As seguintes instalações têm suporte com o coletor do Syslog:
Número do índice de prioridade | Nome da Prioridade |
---|---|
{none} | Sem Pri |
0 | Kern |
1 | usuário |
2 | |
3 | daemon |
4 | auth |
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 instalação para limitar a coleta de dados. Selecione NENHUM para não coletar eventos para uma instalação específica.
Destinos
Os dados do Syslog podem ser enviados para os seguintes locais.
Destino | Tabela / Namespace |
---|---|
Espaço de Trabalho do Log Analytics | syslog |
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).
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.
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 usar vários conjuntos de regras, as entradas associadas 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 seguir está a configuração padrão que coleta mensagens do 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 herdados, você pode ver problemas de formatação de log do rsyslog quando um formato de encaminhamento tradicional é usado para enviar eventos do Syslog para o Agente do Azure Monitor. 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 coletar dados de Syslog nessa versão das distribuições, o daemon rsyslog deverá ser instalado e configurado para substituir 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 do Syslog:
Índice Pri | Nome Pri |
---|---|
0 | Nenhum |
1 | Kern |
2 | usuário |
3 | |
4 | daemon |
4 | auth |
5 | syslog |
6 | lpr |
7 | notícias |
8 | uucp |
9 | ftp |
10 | ntp |
11 | auditoria |
12 | alerta |
13 | marca |
14 | local0 |
15 | local1 |
16 | local2 |
17 | local3 |
18 | local4 |
19 | local5 |
20 | local6 |
21 | local7 |
Propriedades de registro do syslog
Os registros do syslog têm um tipo de Syslog e têm as propriedades mostradas na tabela a seguir.
Propriedade | Descrição |
---|---|
Computador | Computador do qual o evento foi coletado. |
Recurso | Define a parte do sistema que gerou a mensagem. |
HostIP | Endereço IP do sistema que envia a mensagem. |
HostName | Nome do sistema enviando a mensagem. |
SeverityLevel | Nível de severidade do evento. |
SyslogMessage | Texto da mensagem. |
ProcessID | A ID do processo que gerou a mensagem. |
EventTime | Data e hora em que o alerta foi gerado. |
Consultas de log do Syslog de exemplo
A tabela a seguir fornece diferentes exemplos de consultas de log que recuperam registros do Syslog.
Todos os Syslogs
Syslog
Todos os registros do Syslog com a severidade de erro
Syslog | where SeverityLevel == "error"
Todos os registros do Syslog com o tipo de instalação de autenticação
Syslog | where facility == "auth"
Contagem de registros do Syslog por instalação
Syslog | summarize AggregatedValue = count() by facility
Solução de problemas
Siga as etapas a seguir se você não estiver coletando dados do log JSON esperado.
- 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óximas etapas
Saiba mais sobre: