Fuera de la caja, rsyslog volcará todo en la SystemEvents
tabla dentro de la base de datos `Syslog (si usa el esquema predeterminado proporcionado). Me gustaría usar una expresión regular para filtrar los mensajes entrantes en tablas de base de datos separadas.
He jugado con esto, pero me está costando encontrar la mejor manera de lograr esto (o incluso una forma que funcione).
En mi 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
Este fue mi último intento, pero estoy atascado.
(la tabla RogueAPs es solo un clon de la tabla predeterminada de SystemEvents que se incluye con rsyslog)
Información de la versión:
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.