ออกจากกล่องrsyslogจะถ่ายโอนข้อมูลทุกอย่างลงในSystemEvents
ตารางภายใน `Syslog ฐานข้อมูล (หากคุณใช้สคีมาเริ่มต้นที่ให้ไว้) ฉันต้องการใช้นิพจน์ทั่วไปเพื่อกรองข้อความขาเข้าลงในตารางฐานข้อมูลแยกต่างหาก
ฉันเล่นกับสิ่งนี้ แต่ฉันมีเวลายากที่จะหาวิธีที่ดีที่สุดในการทำสิ่งนี้ให้สำเร็จ (หรือแม้แต่วิธีที่ทำหน้าที่)
ใน 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
นี่เป็นความพยายามครั้งล่าสุดของฉัน แต่ฉันติดอยู่
(ตาราง RogueAPs เป็นเพียงการโคลนของตาราง SystemEvents เริ่มต้นที่มาพร้อมกับ rsyslog)
ข้อมูลรุ่น:
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.