¿Cómo puedo recibir registros de syslog de un sistema en red?

23

Me gustaría configurar Ubuntu para recibir registros de un enrutador DD-WRT. La pantalla de configuración del enrutador contiene la siguiente sección:

Registro del sistema DD-WRT

y su documentación de registro dice:

Si desea enviar registros a un sistema remoto, ingrese la dirección IP de esa máquina que también ejecuta una utilidad syslog (necesita un socket de red abierto para aceptar los registros que envía el enrutador).

Nunca (a sabiendas) he usado syslog antes. ¿Qué necesito hacer en Ubuntu para permitirle recibir estos registros?

ændrük
fuente
Mi Motorola Surfboard Extreme SBG901 parece tener una configuración similar a su DD-WRT. Solo pensé que agregaría esa palabra clave para que otros busquen en Google para esta q / a.
placas de

Respuestas:

23

El host que recibe los registros deberá ejecutar algún daemon de syslog que esté configurado para escuchar registros remotos. Hay una serie de implementaciones de syslog en Ubuntu, pero rsysloggeneralmente se recomienda y debe instalarse de manera predeterminada. No puedo decir por la documentación en el enlace que publicó si DD-WRT está enviando registros a través de TCP o UDP, por lo que puede requerir algo de experimentación para encontrar con precisión la configuración correcta, si le preocupa reducir el número de redes accesibles puertos en su host.

Hay dos formas de habilitar esto: la primera es más simple, pero puede requerir una reintegración cuando se actualiza el sistema. El segundo es un poco más complicado y puede causar resultados confusos si hay cambios significativos en la configuración de syslog como parte de una actualización. Elegiría el segundo, pero su preferencia puede variar.

El primero es editar /etc/rsyslogd.confy eliminar la inicial #de las siguientes líneas:

# $ ModLoad imudp
# $ UDPServerRun 514

o

# $ ModLoad imtcp
# $ InputTCPServerRun 514

El segundo es crear un nuevo archivo, tal vez nombrado local-enable-tcp.confen /etc/rsyslog.d/, con el siguiente contenido:

# habilitar la recepción de syslog TCP
$ ModLoad imtcp
$ InputTCPServerRun 514

Si desea utilizar el enfoque de archivo separado y necesita UDP, cambie el contenido para que coincida con la estrofa UDP anterior. El nombre de archivo específico no es importante, pero se recomienda comenzar con "local-" ya que este espacio de nombres está reservado para la configuración del administrador local, y debe terminar con ".conf", ya que solo los archivos que terminan así se incluyen automáticamente en Configuración de rsyslog.

Si prefiere usar otra implementación de syslog, verifique la configuración y la documentación para esa implementación: es probable que el demonio syslog esté configurado para no escuchar en la red de forma predeterminada, pero la configuración de ejemplo para habilitar este caso común debería estar claramente documentada.

Emmet Hikory
fuente
1
Debería ser una buena idea comenzar el nombre del archivo con un número de dos dígitos, luego establecer el orden con respecto a otros archivos .conf existentes.
enzotib
Je, bueno, eso puede ser complicado. No hay ninguna razón por la que un nombre de paquete no pueda comenzar con un número de dos dígitos, y .d / $ {package} - .conf están reservados a los paquetes (aunque es poco probable que uno tenga un conflicto, por ejemplo, 72-local-myconf.conf ) En segundo lugar, es importante intentar escribir archivos de configuración de manera que el orden no sea crítico. Por ejemplo, un archivo de configuración proporcionado por 0access.conf del paquete hipotético "0access" se aplicaría antes de la mayoría de los archivos de configuración que comienzan con un número de dos dígitos.
Emmet Hikory
1
También es posible que deba cambiar la propiedad de su archivo de registro: sudo chown syslog:adm /var/log/syslogo lo que sea que haya nombrado su archivo de registro.
placas el
6

¡Otra opción es usar syslog-ng, fácil de usar y listo hasta ahora!

sudo apt-get install syslog-ng

Después de instalarlo, tenemos un archivo conf en /etc/syslog-ng/syslog-ng.conf Entonces, solo edite este .conf con nuestros parámetros, pero antes de eso, haga una copia de seguridad del archivo de configuración predeterminado, puede ser útil más adelante si quieres ajustar algunos parámetros

sudo mv /etc/syslog-ng/syslog-ng.conf /etc/syslog-ng/syslog-ng.conf.bak

¡Ahora cree un nuevo archivo de configuración y edítelo!

sudo touch /etc/syslog-ng/syslog-ng.conf
sudo nano /etc/syslog-ng/syslog-ng.conf

Entonces, solo pegue esta configuración básica para que funcione también:

# Listening to incoming UDP Syslog connections
source mysource { udp(); };

#Add the syslog targets:

destination dest { file("/var/log/Cisco$YEAR$MONTH$R_DAY.log"); };
#destination dest_other_server { udp("1.2.3.4" port(514)); };
#Create the filters that will be used to determine what to do with the received syslog message

#filter filter { ( host("2.3.4.5") and level(notice) and match("username=.*@domain\.local" value("MESSAGE") flags("utf8" "ignore-case")) ); };
filter myfilter { ( level(notice) ); };
#And putting it all together:

log { source(mysource); filter(myfilter); destination(dest);  };

Fácil como puedes ver. ¡Cuídate!

Alvarova
fuente
-2

Básicamente, ejecuta un daemon (llamado syslogd) en su servidor para que el enrutador dd-wrt publique registros en él.

Tutorial- http://www.techiecorner.com/1479/how-to-setup-syslog-server-in-ubuntu/

usuario606723
fuente
55
Evite publicar la dirección de una guía antigua, sin siquiera verificar si sus instrucciones siguen siendo válidas. Los archivos nombrados en la guía ya no existen. Ubuntu usa rsyslog.
enzotib
@enzotib: si bien estoy de acuerdo en que carece de calidad y que deben evitarse los enlaces, resulta que esta respuesta proporcionó exactamente lo que necesitaba para lograr la misma tarea en un servidor Ubuntu 8.04. Aquí hay tres respuestas, todas para tres variaciones diferentes de syslog que todavía se utilizan en los sistemas de producción . Esta respuesta fue útil. Obtiene un +1 de mi parte.
ghoti
Eso es cierto, pero esto es básicamente una respuesta de solo enlace.
Duncan X Simpson