Rsyslog bên ngoài hộp sẽ kết xuất mọi thứ vào SystemEvents
bảng trong cơ sở dữ liệu `Syslog (nếu bạn sử dụng lược đồ mặc định được cung cấp). Tôi muốn sử dụng một biểu thức chính quy để lọc các tin nhắn gửi đến vào các bảng cơ sở dữ liệu riêng biệt.
Tôi đã chơi với nó, nhưng tôi có một thời gian khó khăn để tìm ra cách tốt nhất để thực hiện điều này (hoặc thậm chí là một cách hoạt động).
Trong rsyslog.conf của tôi:
$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
Đây là nỗ lực mới nhất của tôi, nhưng tôi bị mắc kẹt.
(bảng RogueAPs chỉ là một bản sao của bảng SystemEvents mặc định đi kèm với rsyslog)
Thông tin phiên bả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.