Cuando era niño, los sábados eran los días en que mi padre trabajaba en el coche. Abría el capó y miraba el interior de forma significativa. Ya tenía una idea de lo que había que afinar o arreglar porque escribía los registros. Llevaba un registro meticuloso del kilometraje de la gasolina, los cambios de aceite, las sustituciones de filtros y mangueras, etc. Sabía la edad, la calidad y las expectativas de servicio de las piezas de su coche porque registraba toda esa información.
Al igual que hago yo con mi brillante caja de Linux, mi padre guardaba registros del rendimiento de su coche. Pero mientras él escribía en un sinfín de cuadernos encuadernados en espiral, mi ordenador recoge automáticamente mis datos de registro. Por defecto, Linux utiliza el demonio syslog para registrar los registros sobre el funcionamiento del sistema, colocándolos en un repositorio central (/var/log) donde puedo examinarlos.
Eso es todo lo que demonios como syslog, rsyslog y syslog-ng realmente son: Servicios que registran datos sobre mi sistema, publicando esos datos en un lugar donde puedo abrir los registros y echarles un vistazo.
Si eres nuevo en la administración de tu propio sistema, es bueno conocer estos diferentes demonios. Es posible que decidas que el syslog por defecto te sirve bien, o tal vez el rsyslog o el syslog-ng con su funcionalidad más avanzada son mejores opciones.
El syslog es el original. Su solo nombre puede ser un obstáculo para el nuevo administrador porque hay syslog el demonio, syslog el protocolo, y syslog el mensaje. El demonio syslog escucha los mensajes en el socket syslog y luego crea una entrada en el archivo de registro apropiado. Utiliza el formato syslog para los campos y datos del mensaje. Este es un ejemplo de mensaje syslog sobre un intento fallido de inicio de sesión:
<>1 2003-10-11T22:14:15.003Z server1.com sshd – – pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=10.0.2.2
Puede aprender más sobre los campos de mensajes syslog en este artículo: Linux Logging Basics.
Syslog crea archivos de registro que son técnicamente legibles. Sólo hay que saber qué representan todos los campos y el significado de sus valores. Francamente, a no ser que quieras la credibilidad de manejar las herramientas de nuestros antepasados en tus sistemas Linux, te animo a que mires rsyslog en su lugar.
Rsyslog se basa en syslog, dándole flexibilidad. Lo configuras en un lenguaje llamado RainerScript, y una de las primeras cosas que probablemente quieras hacer es decirle a rsyslog dónde enviar tus datos de registro. En este ejemplo, estamos enviando nuestros datos de registro a un servidor llamado BEBOP.
action(type=»omfwd» protocol=»tcp» target=»BEBOP» port=»514″)
Dado que su sistema probablemente vino con rsyslog ya cargado y configurado, dirigir los datos de registro a un servidor en particular podría ser toda la configuración que necesita hacer.
Hasta que su disco de datos de registro se llene, eso es. Por lo que podría querer configurar una tarea cron para logrotate, que trunca los archivos de registro envejecidos y los archiva. Sin la rotación de los registros, rsyslog sigue recopilando datos de registro, truncándolos, sobrescribiendo los datos más antiguos y, si todo va mal, incluso colapsando su sistema cuando el disco se llena. Anarquía!
Alternativamente, puedes configurar rsyslog para que envíe todos tus datos de registro a una solución de gestión de registros como Loggly, que archiva tus datos y te los presenta de forma que puedas buscarlos y analizarlos fácilmente. No es una anarquía!
Entre syslog y rsyslog, syslog-ng llegó para añadir más funcionalidad al demonio syslog. Tiene grandes capacidades de filtrado. Puede filtrar los mensajes de registro de acuerdo a su contenido, no sólo en campos como la marca de tiempo. Cuando miro miles de mensajes de registro, ser capaz de centrar mi búsqueda en un contenido específico significa la diferencia entre resolver mi problema y llamar a mi sistema con nombres poco amables.
Syslog-ng procesa automáticamente los mensajes de registro en un repositorio central y les aplica un filtrado complejo. Syslog-ng puede incluso analizar sus datos de registro en mensajes JSON, que puede utilizar en una herramienta de gestión de registros como Loggly. Comprueba lo fácil que es ver de un vistazo quién ha entrado en tu sistema y con qué frecuencia. Qué guay!
Volviendo a mi pequeña máquina Linux, syslog-ng tiene más de lo que yo uso. Este sistema es donde escribo, almacenando mi trabajo en la nube. No estoy administrando centros de datos o incluso múltiples usuarios. Sólo mi propio equivalente al coche de papá, poniéndolo a punto de vez en cuando, arreglándolo cuando tiene una pequeña avería. Uso rsyslog porque es lo que hay en mi sistema. No soy un aficionado ni un sysadmin, así que «porque es lo que hay en mi sistema» es una buena opción para mí. Sus propias necesidades son probablemente diferentes.