Cuando tengo la configuración predeterminada, mis registros son así:
2020-12-01T18:34:06+02:00 10.132.90.194 {"wfd_successful_hits_sec": "0", "sql_hits_sec_max": "0", "timestamp": "2020/12/01 18:34:01", "connection_sec_max": "1922", "http_hits_sec_max": "1106", "http_hits_sec": "106", "wfd_successful_hits_sec_max": "0", "sql_hits_sec": "0", "sql_audit_phase2_events_sec_max": "0", "hdfs_hits_sec": "0", "connection_sec": "26"}
Pero tan pronto como intento que escriba solo el mensaje, falla.
y me da el mensaje con el principio recortado.
"0", "timestamp": "2020/12/01 18:34:01", "connection_sec_max": "1922", "http_hits_sec_max": "1106", "http_hits_sec": "106", "wfd_successful_hits_sec_max": "0", "sql_hits_sec": "0", "sql_audit_phase2_events_sec_max": "0", "hdfs_hits_sec": "0", "connection_sec": "26"}
Mi configuración de Rsyslog:
$template OnlyMsg,"%msg:2:2048%\n"
$template CustomLog,"/logs/host-%fromhost%-%$year%-%$month%.log"
local5.* ?CustomLog;OnlyMsg
Respuesta1
La línea de entrada no está realmente estandarizada para syslog, por lo que, por ejemplo, la cadena {"wfd_successful_hits_sec":
probablemente se esté confundiendo con la etiqueta y el campo msg está después de esto.
Probablemente puedas simplemente usar la rawmsg
propiedad en lugar de msg
, ya que contiene toda la línea de entrada (después de la prioridad). Pruebe con un desplazamiento inicial de unos 40 caracteres para tener en cuenta la marca de tiempo y la dirección IP. Si tiene direcciones IP de diferentes longitudes, puede usar una expresión regular para que coincida con el inicio.