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.
Los recursos siguientes son compatibles con el recopilador de Syslog:
- None
- Kern
- usuario
- 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.
- Seleccione Add data source(Agregar origen de datos).
- 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.
Inicie sesión en Azure Portal.
Busque y abra Monitor.
En Configuración, seleccione Reglas de recopilación de datos.
Seleccione Crear.
Adición de recursos
Seleccione Add resources (Agregar recursos).
Use los filtros para buscar la máquina virtual que necesita para recopilar registros.
Seleccione la máquina virtual.
Seleccione Aplicar.
Seleccione Siguiente: Recopilar y entregar.
Agregar un origen de datos
Seleccione Add data source(Agregar origen de datos).
En Tipo de origen de datos, seleccione syslog de Linux.
En Nivel de registro mínimo, deje los valores predeterminados LOG_DEBUG.
Seleccione Siguiente: Destino.
Agregar un destino
Seleccione Agregar destino.
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 Seleccione Add data source(Agregar origen de datos).
Seleccione Siguiente: Review + create (Revisar y crear).
Crear una regla
- Seleccione Crear.
- 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:
- Un área de trabajo de Log Analytics en la que tenga al menos derechos de colaborador.
- Un punto de conexión de recopilación de datos.
- Permisos para crear objetos DCR en el área de trabajo.
- Los mensajes de Syslog deben seguir los estándares RFC (RFC5424 o RFC3164)
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: