Si eres administrador de sistemas y responsable de administrar cientos o miles de servidores cloud, ya sabrás que puede ser complicado verificar los registros de cada servidor. Aquí es donde Rsyslog puede ser de mucha utilidad para ti. Te enseñamos cómo configurar Rsylog en un servidor Ubuntu 20.04.
Rsyslog es una herramienta de software de código abierto para sistemas operativos basados en Unix que se utiliza para recopilar mensajes de registro de varios dispositivos de red. Te ayuda a analizar los registros y solucionar problemas de un servidor Linux. Recopila los datos de diferentes tipos de fuentes y los muestra en múltiples formatos. Se basa en la arquitectura de cliente-servidor, por lo tanto, deberás configurar Rsyslog como servidor o cliente para otros servidores.
Con este tutorial aprenderás a instalar y configurar Rsyslog como un servidor de monitoreo centralizado en Ubuntu 20.04.
Requisitos
- Dos servidores en la nube corriendo con Ubuntu 20.04.
- Una contraseña root establecida en ambos servidores.
Instala Rsyslog
Por defecto, el paquete Rsyslog está incluido en el repositorio estándar de Ubuntu. Puedes instalarlo con el siguiente comando:
# apt-get install rsyslog -y
Una vez que la instalación se haya completado, inicia el servicio Rsyslog y habilítalo para comenzar a reiniciar el sistema:
# systemctl start rsyslog
# systemctl enable rsyslog
Configura el Servidor Rsyslog
A continuación, tienes que configurar el servidor Rsyslog para que corra en modo servidor. Lo puedes hacer editando el archivo /etc/rsyslog.conf:
# nano /etc/rsyslog.conf
Encuentra y elimina las siguientes líneas para hacer que el servidor escuche los puertos UDP y TCP.
# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")
# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="514")
Guarde y cierra el archivo cuando hayas terminado.
A continuación, deberás añadir la siguiente línea para recibir y almacenar los mensajes entrantes de Syslog:
$template RemInputLogs, "/var/log/remotelogs/%FROMHOST-IP%/%PROGRAMNAME%.log"
*.* ?RemInputLogs
Guarda y cierra el archivo. Después, reinicia Rsyslog para aplicar los cambios:
# systemctl restart rsyslog
También puedes verificar el estado de Rsyslog con el siguiente comando:
# systemctl status rsyslog
Deberías obtener el siguiente resultado:
● rsyslog.service - System Logging Service
Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2021-01-27 07:21:20 UTC; 2s ago
TriggeredBy: ● syslog.socket
Docs: man:rsyslogd(8)
https://www.rsyslog.com/doc/
Main PID: 1617 (rsyslogd)
Tasks: 10 (limit: 2353)
Memory: 1.5M
CGroup: /system.slice/rsyslog.service
└─1617 /usr/sbin/rsyslogd -n -iNONE
Jan 27 07:21:20 ubuntu2004 systemd[1]: Starting System Logging Service...
Jan 27 07:21:20 ubuntu2004 rsyslogd[1617]: imuxsock: Acquired UNIX socket '/run/systemd/journal/syslog' (fd 3) from systemd. [v8.2001.0]
Jan 27 07:21:20 ubuntu2004 rsyslogd[1617]: rsyslogd's groupid changed to 110
Jan 27 07:21:20 ubuntu2004 rsyslogd[1617]: rsyslogd's userid changed to 104
Jan 27 07:21:20 ubuntu2004 rsyslogd[1617]: [origin software="rsyslogd" swVersion="8.2001.0" x-pid="1617" x-info="https://www.rsyslog.com"] sta>
Jan 27 07:21:20 ubuntu2004 systemd[1]: Started System Logging Service.
A este punto, Rsyslog se ha iniciado y escucha el puerto 514. Puedes comprobarlo con el siguiente comando:
# ss -antpl | grep 514
Deberías obtener el siguiente resultado:
LISTEN 0 25 0.0.0.0:514 0.0.0.0:* users:(("rsyslogd",pid=1617,fd=7))
LISTEN 0 25 [::]:514 [::]:* users:(("rsyslogd",pid=1617,fd=8))
Instala y configura el cliente Rsyslog
A continuación, tendrás que instalar el paquete Rsyslog en la máquina cliente y configurarlo para que envíe los registros al servidor Rsyslog.
Primero, instala en paquete Rsyslog con el siguiente comando:
# apt-get install rsyslog -y
Una vez instalado, edita el archivo principal de configuración Rsyslog:
# nano /etc/rsyslog.conf
Permite la conservación de FQDN y añade la IP de tu servidor Rsyslog como se muestra más abajo:
$PreserveFQDN on
*.* @@rsyslog-server-ip:514
$ActionQueueFileName queue
$ActionQueueMaxDiskSpace 1g
$ActionQueueSaveOnShutdown on
$ActionQueueType LinkedList
$ActionResumeRetryCount -1
Guarda y cierra el archivo, después reinicia el servicio Rsyslog para aplicar los cambios:
# systemtcl restart rsyslog
Verifica los registros
Ahora ve al servidor Rsyslog y verifica los registros recibidos desde el servidor cliente con el siguiente comando:
# ls /var/log/remotelogs/127.0.0.1/
Deberías ver todos los archivos de registro generados por Rsyslog en el siguiente resultado:
ntpd.log rsyslogd.log sshd.log systemd.log systemd-logind.log
Puedes comprobar el registro SSH con el siguiente comando:
# tail -f /var/log/remotelogs/127.0.0.1/sshd.log
Deberías ver el siguiente resultado:
2021-01-27T07:44:20.146556+00:00 ubuntu2004 sshd[1677]: Connection closed by 192.241.218.42 port 57184 [preauth]
2021-01-27T07:55:13.224006+00:00 ubuntu2004 sshd[1682]: Accepted password for root from 27.61.202.214 port 60658 ssh2
2021-01-27T07:55:13.229836+00:00 ubuntu2004 sshd[1682]: pam_unix(sshd:session): session opened for user root by (uid=0)
Conclusión
¡Felicidades! Has instalado y configurado con éxito el servidor Rsyslog en Ubuntu 20.04.
Ahora puedes instalar y configurar más clientes Rsyslog y enviar todos los registros al servidor Rsyslog.
¿Tienes alguna pregunta? No dudes en ponerte en contacto con nosotros a soporte@clouding.io Estaremos encantados de ayudarte :)