Las acciones especifican qué hacer con los mensajes filtrados por un selector. Las siguientes son algunas de las acciones disponibles.
Guardar mensajes rsyslog en archivos de registro
Para guardar un mensaje rsyslog en un archivo de registro, especifique la ruta absoluta al archivo de registro después del selector. El siguiente ejemplo selecciona todos los mensajes cron y la acción los guarda en /var/log/cron.log archivo de registro:
cron.* /var/log/cron.log
Puede especificar un dispositivo tty o /dev/console existente para enviar mensajes rsyslog a la salida estándar.
Enviar mensajes rsyslog a través de la red
Utilice la siguiente sintaxis para reenviar mensajes rsyslog a una máquina remota:
@[zNUMBER]HOST:[PORT]
– Use una sola arroba (@) para especificar UDP como protocolo de transporte.
– Use una doble arroba (@@) para especificar TCP.
– El campo opcional zNUMBER habilita un nivel de compresión zlib del 1 al 9.
– El campo HOST especifica el host receptor.
– El campo opcional PORT especifica el número de puerto en el host receptor.
Por ejemplo, para reenviar mensajes al 192.168.10.101 usando el protocolo UDP:
*.* @192.0.2.101
Para reenviar mensajes al puerto 18 en “host02.example.com” utilizando el protocolo TCP:
*.* @@host02example.com:18
Enviar mensajes rsyslog a usuarios específicos
Especifique el nombre de usuario para enviar mensajes de rsyslog. Separe los nombres de usuario con una coma (,) para especificar más de un usuario. Utilice un asterisco (*) para enviar mensajes a todos los usuarios que estén conectados actualmente. El siguiente ejemplo envía todos los mensajes del núcleo al usuario joe:
kern.* joe
Ejecución de un programa
Puede ejecutar un programa para mensajes rsyslog seleccionados. Para especificar un programa a ejecutar, prefijelo con un carácter de intercalación (^). Especifique una plantilla que formatee el mensaje recibido y lo pase al ejecutable especificado como un parámetro de una línea. El siguiente ejemplo procesa todos los mensajes del núcleo mediante la plantilla knl y los pasa al programa knlprog.
kern.* ^knl-prog;knl
Escribir mensajes rsyslog en una base de datos
Puede usar la acción del escritor de la base de datos para escribir mensajes rsyslog seleccionados directamente en una tabla de la base de datos. El escritor de la base de datos usa la siguiente sintaxis:
:PLUGIN:DB_HOST,DB_NAME,DB_USER,DB_PASSWORD;[TEMPLATE]
– El campo PLUGIN especifica el complemento que realiza la escritura de la base de datos.
– rsyslog brinda soporte para bases de datos MySQL y PostgreSQL.
– La integración de MySQL requiere rsyslogmysql paquete de software.
– PostgreSQL requiere el rsyslog-pgsql paquete. También necesita cargar el ommysql módulo para MySQL y el omggsql módulo para PostgreSQL.
Descartar mensajes rsyslog
Utilice el carácter de tilde (~) para descartar los mensajes seleccionados. La siguiente regla descarta cualquier mensaje de noticias:
news.* ~
Puede especificar varias acciones para un selector especificando las acciones subsiguientes en una nueva línea y precediendo las acciones con un carácter de y comercial (&). Especifique el selector en la primera línea de acción. El siguiente es un ejemplo de una regla con múltiples acciones:
kern.* joe & ^knl-prog;knl & @192.0.2.101
En el ejemplo anterior, todos los mensajes del núcleo son:
– Enviados al usuario joe
– Procesados por la plantilla knl y pasados al ejecutable knl-prog
– Reenviados a 192.0.2.101 usando el protocolo UDP
Comprensión de las plantillas de rsyslog
CentOS / RHEL 6,7:Cómo aumentar la verbosidad de los mensajes de registro del sistema (rsyslogd)
CentOS / RedHat:Guía para principiantes sobre la administración de archivos de registro