Fora da caixa, o rsyslog colocará tudo na SystemEvents
tabela dentro do banco de dados `Syslog (se você usar o esquema padrão fornecido). Eu gostaria de usar uma expressão regular para filtrar mensagens de entrada em tabelas de banco de dados separadas.
Eu brinquei com isso, mas estou tendo dificuldades para descobrir a melhor maneira de conseguir isso (ou até mesmo uma maneira que funcione).
No meu rsyslog.conf:
$template wireless, \
"insert into RogueAPs \
(ReceivedAt, DeviceReportedTime, Facility, Priority, FromHost, Message) \
VALUES('%timegenerated%', '%timereported%', '%syslogfacility%', '%syslogpriority%', '%fromhost-ip%', '%msg%');", \
stdsql
if $msg contains 'subtype=wireless' then :ommysql:127.0.0.1,Syslog,dbusername,dbpassword;wireless
*.* :ommysql:127.0.0.1,Syslog,dbusername,dbpassword
Esta foi minha última tentativa, mas estou presa.
(a tabela RogueAPs é apenas um clone da tabela SystemEvents padrão fornecida com o rsyslog)
Informação da versão:
shell# /usr/local/sbin/rsyslogd -v
rsyslogd 5.5.5, compiled with:
FEATURE_REGEXP: Yes
FEATURE_LARGEFILE: No
FEATURE_NETZIP (message compression): Yes
GSSAPI Kerberos 5 support: No
FEATURE_DEBUG (debug build, slow code): No
Atomic operations supported: Yes
Runtime Instrumentation (slow code): No
See http://www.rsyslog.com for more information.