Eu gostaria de poder enviar uma mensagem no formato RFC5452 para o rsyslog usando o /dev/log
socket. Eu tentei várias variações sobre o seguinte:
echo "<29>1 2003-10-11T22:14:15Z mymachine.example.com su - ID47 - 'su root' failed for lonvick on /dev/pts/8" | socat - UNIX-SENDTO:/dev/log
Mas, seja o que for que eu tenha tentado, acho que parece não ser uma mensagem RFC5452 e, em vez disso, trata-a como um formato mais antigo e menos estruturado. Mais especificamente, essa linha acima gera essa linha no arquivo de log:
<29> t=2015-07-13T08:10:20.542111+00:00 h=vm01[-] a=1 m=- sd='-' msg=' 2003-10-11T22:14:15Z mymachine.example.com su - ID47 -'su root' failed for lonvick on /dev/pts/8'
em que o modelo é
$template my-rfc5424,"<%PRI%> t=%TIMESTAMP:::date-rfc3339% h=%HOSTNAME%[%PROCID%] a=%APP-NAME% m=%MSGID% sd='%STRUCTURED-DATA%' msg='%msg%'\n"
%APP-NAME%
está saindo como 1
- esse é o caractere após <29>
(se eu alterar isso para 2
, então %APP-NAME%
sairá como 2
também). Todos os outros campos estão saindo como -
e, em seguida, a mensagem em si é tudo o mais, levando espaço e tudo.
Essa não é uma mensagem válida em formato RFC5452 e, se não, como ela deve ser corrigida como uma?
Tags rsyslog