Estoy ejecutando lo que es un servidor Ubuntu 16.04 de vainilla, y estoy tratando de entender cómo se configura el registro de forma predeterminada. Puedo ver que tanto journald
y rsyslog
están instalados y en funcionamiento, pero no es del todo claro cómo se procesan los mensajes de registro.
La mayoría de los mensajes parecen aparecer tanto a /var/log/syslog
través como a través de journalctl
, pero no puedo ver ninguna configuración explícita para el reenvío entre los dos en ninguno de los dos /etc/systemd/journald.conf
(que básicamente está comentado por defecto) /etc/rsyslog.conf
o /etc/rsyslog.d/50-default.conf
. Traté de buscar documentación oficial, o incluso una publicación de blog que explicara cómo estos dos están configurados en Ubuntu, pero no he logrado encontrar nada.
Para aumentar aún más mi confusión, ejecuté logger -p local1.info Test
en el host y descubrí que no se escribió nada /var/log/syslog
, mientras que el mensaje apareció debajo journalctl
.
Mis preguntas son:
- ¿Cómo funcionan exactamente journald y rsyslog juntos en Ubuntu 16.04 (por defecto)?
¿Cómo es que los mensajes enviadoslogger
aparentemente terminan en el diario, pero no en syslog?
Actualización: Resulta que logger
no funcionó como se esperaba, fue un error de mi parte, por lo que no es relevante para la pregunta principal.
logger -p .info hello
no es válido. No ha dado ningún nombre de instalación.logger
no funcionó fue mi culpa, así que eso está arreglado ahora (gracias por los consejos de todos modos). En cuanto a los registros que aparecen en dos lugares, su notaimuxsock
parece ser la clave: parece que tanto rsyslog como journald están escuchando los mensajes locales de syslog, por lo tanto, esas entradas van en dos registros separados.Systemd es un sistema de inicio utilizado para iniciar los servicios cuando el sistema se inicia. Journald es responsable de crear registros de los servicios iniciados por systemd. Al integrar journald con systemd, incluso los primeros mensajes del proceso de arranque están disponibles para journald.
Rsyslog es un demonio hecho especialmente para el procesamiento de registros, nada que ver con journald. Puede tomar registros de muchas maneras y generarlos de muchas maneras. No está habilitado de forma predeterminada que también toma mensajes de registro de journald. Para eso, debe escribir en el archivo /etc/rsyslog.conf,
Ahora, aceptará registros de m journald también. Pero le sugiero que no cambie su archivo /etc/rsyslog.conf.
Al final del archivo /etc/rsyslog.conf, hay una línea escrita,
Significa que todos los archivos que tienen .conf en ese extremo en la carpeta /etc/rsyslog.d/ deben incluirse durante la carga de rsyslog. Por lo tanto, todas sus configuraciones personalizadas deben ir en estos archivos
Te sugiero que hagas un archivo /etc/rsyslog.d/journald.conf y pegues el fragmento a continuación.
A continuación se muestra el fragmento de la página oficial de rsyslog de Imjournal.
Línea 1: carga el módulo de diario para aceptar los registros de journald
2 - El módulo mmjsonparse se carga para analizar los registros
3 - Están estructurados en el formato descrito en la plantilla
4 - Analiza esos registros utilizando el módulo mmjsonparse.
5 - Envía esos registros a un archivo llamado / var / log / ceelog de acuerdo con la estructura provista en la plantilla dada, usando el módulo omfile (archivo del módulo de salida - salidas al archivo).
Realice cambios en la configuración según sus necesidades.
fuente