Não é possível fazer com que o rsyslog salve apenas a mensagem sem carimbo de data/hora

Não é possível fazer com que o rsyslog salve apenas a mensagem sem carimbo de data/hora

Quando tenho as configurações padrão, meus logs ficam assim:

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"}

Mas assim que tento escrever apenas a mensagem, ele falha.

e me dá a mensagem com o início cortado.

"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"}

Minha configuração do Rsyslog:

$template OnlyMsg,"%msg:2:2048%\n"
$template CustomLog,"/logs/host-%fromhost%-%$year%-%$month%.log"

local5.*                                               ?CustomLog;OnlyMsg

Responder1

A linha de entrada não é realmente padronizada para syslog, então, por exemplo, a string {"wfd_successful_hits_sec":provavelmente está sendo confundida com a tag, e o campo msg vem depois disso.

Provavelmente você pode simplesmente usar a rawmsgpropriedade em vez de msg, pois ela contém toda a linha de entrada (após a prioridade). Tente um deslocamento inicial de cerca de 40 caracteres para contabilizar o carimbo de data/hora e o endereço IP. Se você tiver endereços IP de comprimentos diferentes, poderá usar um regexp para corresponder ao início.

informação relacionada