Eu preciso migrar algumas regras do syslog-ng para o rsyslog. O objetivo das regras é coletar os arquivos de log dos computadores da organização. A configuração inicial do syslog-ng consiste nos seguintes arquivadores e destinos:
filter f_clamscan { facility(uucp) and match ("Clamscan"); };
filter f_sentinel_memoryscan { facility(uucp) and match ("Sentinel_memoryscan"); };
filter f_sentinel_messages { facility(uucp) and match ("Sentinel_messages"); };
filter f_sentinel_quarantine { facility(uucp) and match ("Sentinel_quarantine"); };
filter f_sentinel_realtime { facility(uucp) and match ("Sentinel_realtime"); };
filter f_clamwin_update { facility(uucp) and match ("Clamwin_update"); };
destination d_log {
file("/var/log/clients/$HOST/$FACILITY.log" \
owner(root) group(root) perm(0600) dir_perm(0700) create_dirs(yes));
};
destination d_log_clamscan {
file("/var/log/clients/$HOST/clamscan.log" \
owner(root) group(root) perm(0600) dir_perm(0700) create_dirs(yes));
};
destination d_log_sentineln_memoryscan {
file("/var/log/clients/$HOST/sentinel_memoryscan.log" \
owner(root) group(root) perm(0600) dir_perm(0700) create_dirs(yes));
};
destination d_log_sentinel_messages {
file("/var/log/clients/$HOST/sentinel_messages.log" \
owner(root) group(root) perm(0600) dir_perm(0700) create_dirs(yes));
};
destination d_log_sentinel_quarantine {
file("/var/log/clients/$HOST/sentinel_quarantine.log" \
owner(root) group(root) perm(0600) dir_perm(0700) create_dirs(yes));
};
destination d_log_sentinel_realtime {
file("/var/log/clients/$HOST/sentinel_realtime.log" \
owner(root) group(root) perm(0600) dir_perm(0700) create_dirs(yes));
};
destination d_log_clamwin_update {
file("/var/log/clients/$HOST/clamwin_update.log" \
owner(root) group(root) perm(0600) dir_perm(0700) create_dirs(yes));
};
log { source(s_external); filter (f_clamscan); destination(d_log_clamscan); };
log { source(s_external); filter (f_sentinel_memoryscan); destination(d_log_sentinel_memoryscan); };
log { source(s_external); filter (f_sentinel_messages); destination(d_log_sentinel_messages); };
log { source(s_external); filter (f_sentinel_quarantine); destination(d_log_sentinel_quarantine); };
log { source(s_external); filter (f_sentinel_realtime); destination(d_log_sentinel_realtime); };
log { source(s_external); filter (f_clamwin_update); destination(d_log_clamwin_update); };
Até agora eu tentei várias maneiras, mas nenhuma parece estar funcionando como esperado. Abaixo está minha configuração:
$template DYNclamscan,"/var/log/clients/%HOSTNAME%/clamscan.log"
$template DYNsentinelmemory,"/var/log/clients/%HOSTNAME%/sentinel_memoryscan.log"
$template DYNsentinelmessages,"/var/log/clients/%HOSTNAME%/sentinel_messages.log"
$template DYNsentinelquarantine,"/var/log/clients/%HOSTNAME%/sentinel_quarantine.log"
$template DYNsentinelrealtime,"/var/log/clients/%HOSTNAME%/sentinel_realtime.log"
$template DYNclamwinupdate,"/var/log/clients/%HOSTNAME%/clamwin_update.log"
:msg, contains, "clamscan" ?DYNclamscan
& ~
:msg, contains, "sentinel_memoryscan" ?DYNsentinelmemory
& ~
:msg, contains, "sentinel_messages" ?DYNsentinelmessages
& ~
:msg, contains, "sentinel_quarantine" ?DYNsentinelquarantine
& ~
:msg, contains, "sentinel_realtime" ?DYNsentinelrealtime
& ~
:msg, contains, "clamwin_update" ?DYNclamwinupdate
& ~
O primeiro arquivo clamscan.log
parece ser criado, mas os outros não são criados.
Você vê algo errado na minha configuração? Ou você tem outra ideia de como escrever essas regras?