Recopilación de eventos de Syslog con el agente de Azure Monitor

Precaución

En este artículo se hace referencia a CentOS, una distribución de Linux que está cerca de su estado Final de ciclo vida (EOL). Tenga en cuenta su uso y planeación en consecuencia. Para obtener más información, consulte la Guía de fin de ciclo de vida de CentOS.

Syslog es un protocolo de registro de eventos que es común a Linux. Puede usar el demonio de Syslog integrado en dispositivos Linux para recopilar eventos locales de los tipos que especifique. Después, puede hacer que envíe esos eventos a un área de trabajo de Log Analytics. Las aplicaciones envían mensajes que pueden almacenarse en la máquina local o entregarse a un recopilador de Syslog.

Cuando se instala el agente de Azure Monitor para Linux, este configura el demonio de Syslog local para reenviar mensajes al agente cuando la recopilación de Syslog esté habilitada en las reglas de recopilación de datos (DCR). Después, el agente de Azure Monitor envía los mensajes al área de trabajo de Azure Monitor o Log Analytics donde se crea un registro de Syslog correspondiente en la tabla Syslog.

Diagrama que muestra la recopilación de registros personalizados.

Diagrama que muestra a comunicación entre el demonio Syslog y el agente de Azure Monitor.

Los recursos siguientes son compatibles con el recopilador de Syslog:

  • None
  • Kern
  • usuario
  • mail
  • daemon
  • auth
  • syslog
  • lpr
  • news
  • uucp
  • ftp
  • ntp
  • auditoría
  • alerta
  • mark
  • local0
  • local1
  • local2
  • local3
  • local4
  • local5
  • local6
  • local7

Para algunos tipos de dispositivo que no permiten la instalación local del agente de Azure Monitor, el agente se puede instalar en su lugar en un reenviador de registros dedicado basado en Linux. El dispositivo de origen debe configurarse para enviar eventos de Syslog al demonio de Syslog en este reenviador en lugar del demonio local. Para más información, consulte el tutorial de Sentinel.

Configuración de Syslog

El agente de Azure Monitor para Linux solo recopilará los eventos con los recursos y los niveles de gravedad que se especifican en su configuración. Puede configurar Syslog a través de Azure Portal o mediante la administración de archivos de configuración de sus agentes de Linux.

Configuración de Syslog en Azure Portal

Configure Syslog desde el menú Reglas de recopilación de datos de Azure Monitor. Esta configuración se entrega al archivo de configuración de cada agente de Linux.

  1. Seleccione Add data source(Agregar origen de datos).
  2. En Tipo de origen de datos, seleccione syslog de Linux.

Puede recopilar eventos de Syslog con un nivel de registro diferente para cada recurso. De forma predeterminada, se recopilarán todos los tipos de recurso de Syslog. Si no desea recopilar eventos de ejemplo de tipo auth, seleccione NONE en el cuadro de lista Nivel de registro mínimo para la instalación auth y guarde los cambios. Si necesita cambiar el nivel de registro predeterminado de los eventos Syslog y recopilar solo los eventos con el nivel de registro que inicia NOTICE o una prioridad superior, seleccione LOG_NOTICE en el cuadro de lista Nivel de registro mínimo.

De forma predeterminada, todos los cambios de configuración se insertan automáticamente en todos los agentes configurados en DCR.

Creación de una regla de recopilación de datos

Cree una regla de recopilación de datos en la misma región que el área de trabajo de Log Analytics. Una regla de recopilación de datos (DCR) es un recurso de Azure que permite definir la forma en que se deben controlar los datos a medida que los ingiere el área de trabajo.

  1. Inicie sesión en Azure Portal.

  2. Busque y abra Monitor.

  3. En Configuración, seleccione Reglas de recopilación de datos.

  4. Seleccione Crear.

    Captura de pantalla del panel de reglas de recopilación de datos con la opción de creación seleccionada.

Adición de recursos

  1. Seleccione Add resources (Agregar recursos).

  2. Use los filtros para buscar la máquina virtual que necesita para recopilar registros.

    Captura de pantalla de la página para seleccionar el ámbito de la regla de recopilación de datos.

  3. Seleccione la máquina virtual.

  4. Seleccione Aplicar.

  5. Seleccione Siguiente: Recopilar y entregar.

Agregar un origen de datos

  1. Seleccione Add data source(Agregar origen de datos).

  2. En Tipo de origen de datos, seleccione syslog de Linux.

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

  3. En Nivel de registro mínimo, deje los valores predeterminados LOG_DEBUG.

  4. Seleccione Siguiente: Destino.

Agregar un destino

  1. Seleccione Agregar destino.

    Captura de pantalla de la pestaña de destino con la opción para agregar el destino seleccionada.

  2. Escriba los siguientes valores:

    Campo Valor
    Tipo de destino Registros de Azure Monitor
    Subscription Seleccione la suscripción adecuada
    Cuenta o espacio de nombres Selección del área de trabajo de Log Analytics adecuada
  3. Seleccione Add data source(Agregar origen de datos).

  4. Seleccione Siguiente: Review + create (Revisar y crear).

Crear una regla

  1. Seleccione Crear.
  2. Espere 20 minutos antes de pasar a la siguiente sección.

Si la máquina virtual no tiene instalado el agente de Azure Monitor, la implementación de la DCR desencadena su instalación en la máquina virtual.

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.

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 al agente de Azure Monitor.

La instalación del agente de Azure Monitor incluye los archivos de configuración predeterminados que se colocan en el siguiente directorio: /etc/opt/microsoft/azuremonitoragent/syslog/rsyslogconf/

Cuando se agrega Syslog a la DCR, estos archivos de configuración se instalarán en el directorio del sistema etc/rsyslog.d y rsyslog se reiniciará automáticamente para que los cambios surtan efecto. Rsyslog usa estos archivos para cargar el módulo de salida y reenviar los eventos al demonio del agente de Azure Monitor mediante reglas definidas.

Su contenido predeterminado se muestra en el ejemplo siguiente. En este ejemplo, se recopilan mensajes de Syslog enviados desde el agente local para todos los recursos 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"
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")

En algunos sistemas heredados, como CentOS 7.3, hemos visto 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

El archivo de configuración de syslog-ng está instalado en /etc/opt/microsoft/azuremonitoragent/syslog/syslog-ngconf/azuremonitoragent-tcp.conf. Cuando se agrega una colección de Syslog a la DCR, este archivo de configuración se coloca en el directorio del sistema /etc/syslog-ng/conf.d/azuremonitoragent-tcp.conf y syslog-ng se reiniciará 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 todos los recursos 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);
};

Nota

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

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

Requisitos previos

Necesita:

Propiedades de registros de Syslog

Los registros de Syslog tienen un tipo Syslog y las propiedades que aparecen en la tabla siguiente.

Propiedad Descripción
Computer Nombre del equipo desde el que se recopiló el evento.
Facility Define la parte del sistema que ha generado el mensaje.
HostIP Dirección IP del sistema que envía el mensaje.
HostName Nombre del sistema que envía el mensaje.
SeverityLevel Nivel de gravedad del evento.
SyslogMessage Texto del mensaje.
ProcessID Identificador del proceso que ha generado el mensaje.
EventTime Fecha y hora en que se generó el evento.

Consultas de registro con registros de Syslog

La tabla siguiente proporciona ejemplos distintos de consultas de registro que recuperan registros de Syslog.

Consultar Descripción
syslog Todos los registros de Syslog
Syslog | donde SeverityLevel == "error" Todos los registros de Syslog con gravedad de error
Syslog | where Facility == "auth" Todos los registros de Syslog con el tipo de recurso de autenticación
Syslog | resumen de AggregatedValue = count() por recurso Número de registros de Syslog por recurso

Pasos siguientes

Más información sobre: