2 votos

¿Cómo enviar los registros de MacOS a un servidor syslog remoto?

Tengo un servidor de syslog estándar que se ejecuta en un host de la LAN y escucha en el puerto UDP 514. Estoy intentando que mi Mac (que ejecuta MacOS 12.4 con SIP activado) envíe los registros en formato syslog a este servidor remoto.

Pude averiguar que si edito /etc/syslog.conf y añadir, por ejemplo, la siguiente línea:

# send all logs to 192.168.10.10
*.*  @192.168.10.10:514

y luego rebote de syslogd:

sudo launchctl kickstart -kp system/com.apple.syslogd

Que sí veo algunos registros que se envían al servidor. Sin embargo, muchos Las entradas de registro se pierden debido al nuevo Sistema de Registro Unificado (ULS) de Apple. Soy consciente de que /etc/asl.conf que también tiene alguna configuración de registro relevante, pero no pude averiguar si o cómo esto podría ser utilizado para enviar registros a una máquina remota.

También soy consciente de la log y puede utilizarlo para consultar y obtener resultados en formato syslog, por ejemplo

log show --info --predicate 'messageType > 2' --last 60s --style syslog

Pensé en usar esto para consultar periódicamente (a través de un LaunchAgent) y enviar los registros usando netcat o alguna otra herramienta sencilla. Pero esto parece bastante ineficiente, ya que tendría que analizar cada línea y almacenar un hash en algún lugar para ver si ese mensaje ya ha sido enviado para evitar duplicados. Además, algunas entradas de registro abarcan varias líneas, por lo que el análisis con cosas como sed o awk se vuelven engorrosos.

Sin añadir demasiadas herramientas de terceros a la mezcla, ¿alguien tiene una receta para enviar un conjunto más completo de registros a un servidor remoto?

2voto

Oskar Puntos 1242

El problema principal que tienes es que Apple unificó el registro del sistema y los archivos ya no contienen las entradas que necesitas. Es un base de datos altamente estructurada con TTL / verbosidad / relevancia incorporada a las estructuras de la base de datos de registro .

Diagram courtesy of EHN & DIJ Oakley © 2022 - https://eclecticlight.co/2020/02/07

Esto significa que tal vez quieras replantearte el consumo de los archivos o la forma de filtrar los datos que son importantes para ti.

A corto plazo, querrá cambiar la configuración de registro para volcar los eventos que necesite a los archivos de registro de su elección, de modo que pueda maximizar el valor de su antigua plataforma central de registro.

Necesitarás una amplia experiencia en un equipo para evitar las herramientas de terceros para las versiones recientes de MacOS, no hay una solución fácil aquí y estás en el camino correcto. Esperemos que pensar en lo que realmente necesitas y cuando lo necesitas te ayude a guiar tus esfuerzos.

2voto

Jose Chavez Puntos 645

Me gustaría señalar que hay herramientas de terceros bastante disponibles, fáciles de usar y gratuitas para resolver este problema:

En particular, el remote_syslog2 es relativamente fácil de configurar, ya que recogerá los registros del Sistema de Registro Unificado (así como de otras fuentes) y los enviará a un servidor syslog remoto.

Si quieres no usar herramientas de terceros, puedes empezar en la línea de comandos obteniendo un flujo de registros del ULS en formato syslog como este:

log stream --style syslog

Y luego script que usando el Perl incorporado y su Sys::Syslog módulo.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X