Primeros pasos con RSYSLOG en Linux

El sistema Rocket-fast para el procesamiento de registros (rsyslog) es una utilidad del sistema proporcionada en Linux que brinda soporte para el registro de mensajes. Ofrece un alto rendimiento y viene con una excelente seguridad y tiene un diseño modular. Esta es una utilidad muy útil que puede aceptar entradas de una amplia variedad de fuentes y transformarlas y almacenarlas en múltiples y diversos destinos.

 

Rsyslog es un syslogd mejorado con licencia GPL. Entre otros, ofrece soporte para Syslog confiable sobre TCP, escritura en bases de datos MySQL y formatos de salida totalmente configurables (incluidas excelentes marcas de tiempo). Rsyslog fue iniciado por Rainer Gerhards, GroBrinderfeld.

El mundo anterior estaba usando cualquiera de los siguientes

  • El stock syslogd, por ejemplo, sysklogd
  • Syslog-ng
  • Otra solución

Básicamente, Rainer Gerhard agrupó todo en otra solución y creó un nuevo Syslog llamado rsyslog. 

Comencemos con el rsyslog

Estamos usando Cent-OS 7 para la demostración. Puedes usar cualquier distribución que quieras. 

Paso 1: compruebe si tiene instalado rsyslog.

[root@centos ~]# systemctl estado rsyslog.servicio

estado de rsyslog

Si no está instalado, instálelo usando yum, dnf o el administrador de paquetes que tiene en su distribución y actívelo.

1.1 Para instalar rsyslog en centos use el siguiente comando.

[root@centos ~]# sudo yum install rsyslog

1.2 Habilite la utilidad rsyslog.

[root@centos ~]# systemctl habilitar rsyslog.service

1.3 Iniciar el servicio.

[root@centos ~]# systemctl iniciar rsyslog.servicio

1.4 Consultar el estado del servicio.

[root@centos ~]# systemctl estado rsyslog.servicio

Aquí hay una cosa que debe tener en cuenta si no puede activar y ejecutar el estado, verifique el error con la opción «-l» en el comando anterior para verificar las fallas. 

Paso 2: verifique el archivo de configuración y las configuraciones predeterminadas.

La configuración por defecto de rsyslog la puedes consultar en “/etc/rsyslog.conf”. Con cada configuración, puede ver los comentarios que son muy explicativos en sí mismos. Aquí, concentrémonos solo en configurar rsyslog y conocer más sobre rsyslog.

[raíz@centos ~]# cat /etc/rsyslog.conf

# archivo de configuración rsyslog

# Para obtener más información, consulte /usr/share/doc/rsyslog-*/rsyslog_conf.html

# Si tiene problemas, consulte http://www.rsyslog.com/doc/troubleshoot.html

#### MÓDULOS ####

# El siguiente módulo imjournal ahora se usa como fuente de mensajes en lugar de imuxsock.

$ModLoad imuxsock # brinda soporte para el registro del sistema local (por ejemplo, a través del comando logger)

$ModLoad imjournal # proporciona acceso al diario systemd

#$ModLoad imklog # lee los mensajes del kernel (los mismos se leen desde journald)

#$ModLoad immark # proporciona capacidad de mensaje –MARK–

# Proporciona recepción de syslog UDP

#$ModLoad imudp

#$UDPServerEjecutar 514

# Proporciona recepción de syslog TCP

#$ModLoad imtcp

#$EntradaTCPServerEjecutar 514

#### DIRECTIVAS GLOBALES ####

# Dónde colocar archivos auxiliares

$DirectorioTrabajo /var/lib/rsyslog

# Usar el formato de marca de tiempo predeterminado

$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

# La capacidad de sincronización de archivos está desactivada de forma predeterminada. Esta función no suele ser necesaria,

# no es útil y es un golpe de rendimiento extremo

#$ActionFileEnableSync en

# Incluir todos los archivos de configuración en /etc/rsyslog.d/

$IncludeConfig /etc/rsyslog.d/*.conf

# Desactivar la recepción de mensajes a través del socket de registro local;

# mensajes locales se recuperan a través de imjournal ahora.

$OmitLocalInicio de sesión

# Archivo para almacenar la posición en el diario

$IMJournalStateFile imjournal.estado

#### NORMAS ####

# Registrar todos los mensajes del kernel en la consola.

# Registrar mucho más abarrota la pantalla.

#kern.* /dev/consola

# Registre cualquier cosa (excepto el correo) de información de nivel o superior.

# ¡No registres mensajes de autenticación privados!

*.info;mail.none;authpriv.none;cron.none /var/log/messages

# El archivo authpriv tiene acceso restringido.

authpriv.* /var/log/secure

# Registre todos los mensajes de correo en un solo lugar.

correo.* -/var/log/maillog

# Registrar cosas de cron

cron.* /var/log/cron

# Todos reciben mensajes de emergencia

*.emerg :omusrmsg:*

# Guarde los errores de noticias de nivel crítico y superior en un archivo especial.

uucp,noticias.crit /var/log/spooler

# Guardar mensajes de arranque también en boot.log

local7.* /var/log/boot.log

# ### comienza la regla de reenvío ###

# La declaración entre el comienzo … el final define un reenvío ÚNICO

# regla. Pertenecen juntos, NO los separe. Si crea varios

# reglas de reenvío, ¡duplica todo el bloque!

# Registro remoto (usamos TCP para una entrega confiable)

#

# Se crea una cola en disco para esta acción. Si el host remoto está

# inactivo, los mensajes se almacenan en el disco y se envían cuando vuelve a estar activo.

#$ActionQueueFileName fwdRule1 # prefijo de nombre único para archivos de cola

#$ActionQueueMaxDiskSpace 1g # Límite de espacio de 1 gb (use tanto como sea posible)

#$ActionQueueSaveOnShutdown en # guardar mensajes en el disco al apagar

#$ActionQueueType LinkedList # se ejecuta de forma asíncrona

#$ActionResumeRetryCount -1 # reintentos infinitos si el host está inactivo

# host remoto es: nombre/ip:puerto, por ejemplo, 192.168.0.1:514, puerto opcional

#*.* @@host-remoto:514

# ### fin de la regla de reenvío ###

Para configurar rsyslog para nuestro proyecto, es mejor agregar configuraciones específicas del proyecto en el siguiente directorio en lugar de agregar esas configuraciones en rsyslog.conf. Esto evitará el desorden en los archivos de configuración. /etc/rsyslog.conf es la configuración predeterminada para el rsyslog y para agregar cualquier configuración de usuario se proporciona el directorio rsyslog.d y se agrega en la configuración predeterminada para cargar todos los archivos de configuración desde este directorio

/etc/rsyslog.d

Como puede ver, tengo dos archivos de configuración separados relacionados con dos proyectos diferentes. Así es como puede administrar múltiples configuraciones de proyectos en un solo demonio rsyslog.

Paso 3: Pruebe rsyslog con CLI

Rsyslog no solo admite la mayoría de los lenguajes de programación, sino que también admite el comando CLI para registrar mensajes. Probemos si nuestro rsyslog está en funcionamiento.

logger es el comando cli para registrar el mensaje usando rsyslog.

Registrador

Logger es compatible con el registro local de rsyslog, así como con el registro remoto del servidor rsyslog. No solo si estamos escuchando cualquier socket UNIX específico en rsyslog que también se puede usar con este comando. En general, podemos probar casi todo con este comando rsyslog.

3.1 Enviemos un mensaje a rsyslog.

Vamos a enviar un mensaje rsyslog simple y verificaremos en /var/log/message si está registrado o no.

mensaje sencillo

Hemos enviado un mensaje a rsyslog y rsyslog lo registra en el archivo de registro /var/log/message ya que esta es la configuración predeterminada. El archivo de registro contiene miles de registros, por lo que es mejor usar «grep» para verificar nuestro mensaje.

3.2 Enviar mensajes con prioridad.

La prioridad es la más importante en el registro. Necesitamos establecer la prioridad de cada mensaje según su gravedad. 

rsyslog tiene la siguiente gravedad y las prioridades son de mayor a menor

  • Emergencia
  • Alerta
  • Crítico
  • Error
  • Advertencia
  • Aviso
  • Información
  • Depurar

Hablaremos más sobre estas severidades y prioridades en detalle en un próximo artículo. 

Hay casi 8 prioridades principales en rsyslog, pero para esta prueba se usará solo emergencia. La prioridad de emergencia se configura de manera que todos los registros con prioridad de emergencia se redirigen a la consola, terminales y sesiones ssh.

[root@centos ~]# logger -p emerg “Hola, este es un mensaje de prueba”

Registrador con prioridad

3.3 Enviar mensajes con etiquetas.

Lo que ha notado anteriormente es que los mensajes llegan como mensajes generales con el nombre de usuario y la identificación del proceso del comando del registrador. Necesitamos hacer que estos mensajes sean más legibles y también deberíamos poder encontrar qué proceso está registrando ese mensaje. Esto lo ayudará cuando tenga, digamos, 2 o más microservicios y mantenga el registro central para todos los servicios en el que todos los registros se registran en el mismo archivo de registro. rsyslog y su interfaz para todos los lenguajes de programación brindan la libertad de agregar etiquetas a los mensajes. desde CLI puede verificar con el siguiente comando.

[root@centos ~]# logger -t myapp -p emerg “Hola, este es un mensaje de prueba”

Registrador con etiqueta

Enviemos un mensaje al archivo de registro.

registrador con etiqueta en el archivo de registro

Notó que hemos etiquetado el mensaje con «my_App», que destaca este mensaje en el archivo de registro cuando hay miles de registros presentes. Si tenemos varios servicios iniciando sesión en el mismo archivo, podemos configurar esta etiqueta para procesar el nombre.

Publicación traducida automáticamente

Artículo escrito por pokharkaromkar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *