Servidor syslog-ng en Raspberry Pi con FreeBSD
Syslog-ng puede recibir todos los registros de errores (o cualquier otra notificación) de diferentes equipos informáticos y guardarlos de forma organizada en un único sistema.
De esta forma cuando hay un error (por ejemplo, una web que no carga) se puede ver en el mismo registro el error HTTP 404, pero también puede aparecer un error de NFS y también un registro de un switch diciendo que un puerto se ha desconectado. Así se conoce toda la historia de eventos rápidamente.
Esto es para el paquete syslog-ng-3.14.1_1. Puede que para otras versiones sea diferente.
Instalar syslog-ng
Para instalarlo desde la consola con pkg (el gestor de paquetes de FreeBSD) se necesitan los dos comandos típicos:
root@rpi-b:/home/freebsd # pkg update
Para actualizar la lista de paquetes disponibles y:
root@rpi-b:/home/freebsd # pkg install syslog-ng
Para instalar syslog-ng.
Configurar syslog-ng
Durante la instalación, syslog-ng crea dos archivos: un archivo de ejemplo (/usr/local/etc/syslog-ng.conf.sample) y el archivo real de configuración (/usr/local/etc/syslog-ng.conf.sample)
Para este ejemplo solamente voy a añadir tres líneas básicas y no voy a poner filtros.
source net { udp( ip(192.168.2.58) port(514) ); };
destination external { file("/var/log/external.log"); };
log { source(net); destination(external); };
En la primera línea se añade una fuente llamada "net", que recibe datos por el protocolo de red UDP, en la dirección IP del servidor y en el puerto 514.
En la segunda línea se añade un destino llamado "external", que escribe datos en un fichero situado en /var/log/external.log
En la tercera línea se especifica que se registre lo que llega por la fuente "net" en el destino "external" (las dos líneas anteriores).
Activar syslog-ng y desactivar syslogd
En FreeBSD inicialmente funciona syslogd, el que habrá que desactivar para después activar syslog-ng, para que solamente haya un programa de registro a la vez.
Para ello simplemente hay que añadir dos líneas en el archivo /etc/rc.conf
syslogd_enable="NO"
syslog_ng_enable="YES"
Y ahora se debería poder detener syslogd:
root@rpi-b:/home/freebsd # kill `cat /var/run/syslog.pid`
Para después iniciar syslog-ng:
root@rpi-b:/home/freebsd # service syslog-ng start