Compartir a través de


Recopilación de eventos de Syslog desde el cliente de máquina virtual con Azure Monitor

Syslog es un protocolo de registro de eventos que es común a Linux. Puede usar el daemon de Syslog integrado en dispositivos y aparatos Linux para recopilar eventos locales de los tipos que especifique. Las aplicaciones envían mensajes que se almacenan en la máquina local o se entregan a un recopilador de Syslog. Recopile eventos de Syslog de máquinas virtuales mediante una regla de recopilación de datos (DCR) con un origen de datos de Syslog de Linux .

Sugerencia

Para recopilar datos de dispositivos que no permiten la instalación local del agente de Azure Monitor, configure un reenviador de registros basado en Linux dedicado, tal como se describe en Reenvío de datos de Syslog a un área de trabajo de Log Analytics con Microsoft Sentinel mediante el agente de Azure Monitor.

Los detalles de la creación de DCR se proporcionan en Recopilación de datos del cliente de máquina virtual con Azure Monitor. En este artículo se proporcionan detalles adicionales para el tipo de origen de datos Syslog de Linux.

Nota:

Para trabajar directamente con la definición de DCR o para implementar con otros métodos como plantillas de ARM, consulte Ejemplos de reglas de recopilación de datos (DCR) en Azure Monitor.

Configuración del origen de datos de Syslog

Cree el DCR mediante el proceso de Recopilación de datos del cliente de máquina virtual con Azure Monitor. En la pestaña Recopilar y entregar de DCR, seleccione Linux Syslog en la lista desplegable Tipo de origen de datos .

Seleccione un nivel de registro mínimo para cada instalación o NONE para recopilar ningún evento para esa instalación. Puede configurar varias instalaciones a la vez activando su casilla y seleccionando un nivel de registro en Establecer el nivel mínimo de registro para las instalaciones seleccionadas.

Captura de pantalla de la página para seleccionar el tipo de origen de datos y el nivel de registro mínimo.

Todos los registros con el nivel de gravedad seleccionado o superior se recopilan en la instalación. Los niveles de gravedad admitidos y su gravedad relativa son los siguientes:

  1. Depurar
  2. Información
  3. Aviso
  4. Advertencia
  5. Error
  6. Crítico
  7. Alerta
  8. Emergencia

Agregar destinos

Los datos de Syslog solo se pueden enviar a un área de trabajo de Log Analytics donde se almacena en la tabla syslog . Agregue un destino de tipo Registros de Azure Monitor y seleccione un área de trabajo de Log Analytics. Aunque puede agregar varias áreas de trabajo, tenga en cuenta que esto enviará datos duplicados a cada uno, lo que dará como resultado un costo adicional.

Captura de pantalla que muestra la configuración de un destino de registros de Azure Monitor en una regla de recopilación de datos.

Comprobación de la recopilación de datos

Para comprobar que se recopilan los datos, compruebe si hay registros en la tabla Syslog . En la máquina virtual o en el área de trabajo de Log Analytics en Azure Portal, seleccione Registros y, a continuación, haga clic en el botón Tablas . En la categoría Máquinas virtuales , haga clic en Ejecutar junto a Syslog.

Captura de pantalla que muestra los registros devueltos de la tabla Syslog.

Configuración de Syslog en agente de Linux

Cuando el agente de Azure Monitor está instalado en la máquina Linux, instala un archivo de configuración de Syslog predeterminado que define el recurso y la gravedad de los mensajes que se recopilan si Syslog está habilitado en DCR. El archivo de configuración es diferente según el demonio Syslog que ha instalado el cliente.

Nota:

Las versiones 1.15.2 y posteriores del agente Linux de Azure Monitor admiten formatos RFC de Syslog, incluidos Cisco Meraki, Cisco ASA, Cisco FTD, Sophos XG, Juniper Networks, Corelight Zeek, CipherTrust, NXLog, McAfee y el formato de evento común (CEF).

Rsyslog

En muchas distribuciones de Linux, el demonio rsyslogd es responsable de consumir, almacenar y enrutar mensajes de registro enviados mediante la API de Syslog de Linux. El agente de Azure Monitor usa el módulo de salida de reenvío TCP (omfwd) en rsyslog para reenviar mensajes de registro.

La instalación del agente de Azure Monitor incluye los archivos de configuración predeterminados ubicados en /etc/opt/microsoft/azuremonitoragent/syslog/rsyslogconf/. Cuando se agrega Syslog a una DCR, esta configuración se instala en el directorio del sistema etc/rsyslog.d y rsyslog se reiniciará automáticamente para que los cambios surtan efecto.

Nota:

En los sistemas basados en rsyslog, el agente Linux de Azure Monitor agrega reglas de reenvío al conjunto de reglas predeterminado definido en la configuración de rsyslog. Si se usan varios conjuntos de reglas, las entradas enlazadas a conjuntos de reglas no predeterminados no se reenvían al agente de Azure Monitor. Para más información sobre varios conjuntos de reglas en rsyslog, consulte la documentación oficial.

A continuación, se muestra la configuración predeterminada que recopila mensajes de Syslog enviados desde el agente local para todas las instalaciones con todos los niveles de registro.

$ 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")

La siguiente configuración se usa cuando se utiliza SELinux y se deciden usar sockets 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

En algunos sistemas heredados, es posible que vea problemas de formato de registro de rsyslog cuando se usa un formato de reenvío tradicional para enviar eventos de Syslog al agente de Azure Monitor. Para estos sistemas, el agente de Azure Monitor coloca automáticamente una plantilla de reenviador heredada en su lugar:

template(name="AMA_RSYSLOG_TraditionalForwardFormat" type="string" string="%TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg%\n")

Syslog ng

La instalación del agente de Azure Monitor incluye los archivos de configuración predeterminados ubicados en /etc/opt/microsoft/azuremonitoragent/syslog/syslog-ngconf/azuremonitoragent-tcp.conf. Cuando se agrega Syslog a una DCR, esta configuración se instala en el directorio del sistema /etc/syslog-ng/conf.d/azuremonitoragent-tcp.conf y syslog-ng se reinicia automáticamente para que los cambios surtan efecto.

El contenido predeterminado se muestra en el ejemplo siguiente. En este ejemplo se recopilan mensajes de Syslog enviados desde el agente local para todas las facilidades y todos los niveles de gravedad.

$ 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);
};

La siguiente configuración se usa cuando se utiliza SELinux y se deciden usar sockets 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:

Azure Monitor admite la recopilación de mensajes enviados por rsyslog o syslog-ng, donde rsyslog es el servicio predeterminado. El demonio de Syslog predeterminado en la versión 5 de Red Hat Enterprise Linux y Oracle Linux (sysklog) no es compatible con la recopilación de eventos de Syslog. Para recopilar datos de Syslog de esta versión de estas distribuciones, es necesario instalar el servicio rsyslog y configurarlo para reemplazar sysklog.

Si modifica la configuración de Syslog, tiene que reiniciar el servicio Syslog para que los cambios surtan efecto.

Instalaciones compatibles

Los recursos siguientes son compatibles con el recopilador de Syslog:

Índice Pri Nombre de Pri
0 Ninguno
1 Kern
2 usuario
3 correo
4 demonio
4 autenticación
5 syslog (sistema de registro de eventos)
6 lpr
7 noticias
8 uucp
9 FTP
10 ntp
11 auditoría
12 alerta
13 marcar
14 local0
15 local1
16 local2
17 local3
18 local4
19 local5
20 local6
Veintiuno local7

Pasos siguientes