Eu encontrei um bom recurso do syslog-ng: se eu usar o logger para registrar as coisas do processo do usuário, recebo o nome do usuário de registro. Por volta disso:
peterh$ echo test log message|logger
então eu recebo isso em /var/log/messages
:
Oct 12 16:38:29 thehost peterh: test log message
Onde "thehost" é o nome do host do servidor e "peterh" é o nome do usuário abaixo, eu dei o comando.
Agora o que eu quero: Eu quero coletar as entradas de log de um usuário específico em um arquivo específico com o syslog-ng .
O mau aspecto, mas às vezes trabalhando características do syslog-ng para filtrar toda a entrada de log não funcionou:
# Doesn't work - it doesn't do anything
filter f_peterh { match('peterh'); };
destination d_filter { file("/var/log/peterh.log"); };
log { source(s_src); filter(f_peterh); destination(d_peterh); };
A documentação disponível em muitos lugares na rede fala sobre tudo, desde o formato binário das mensagens de log até os RFCs relacionados, exceto que como eu posso filtrar o syslog por nomes de usuário .
Como fazer isso?