ฉันกำลังดำเนินการรวมศูนย์บันทึกของฉันไปยังเซิร์ฟเวอร์ syslog และจะมีเซิร์ฟเวอร์ fortigate และ Windows (2016) ส่ง syslogs ไปยังเซิร์ฟเวอร์ linux เดียวที่เรียกใช้ rsyslog และจัดเก็บไว้ใน mysqlฉันกำหนดค่าให้ fortigate ส่ง syslogs แต่แถวใน mysql จาก fortigate ไม่มีชื่อฟิลด์เหมือนกัน ดังนั้นข้อมูลจะไม่ถูกบันทึกในทุกคอลัมน์ใน mysql
ตัวอย่างเช่น syslog จากเซิร์ฟเวอร์ linux ประกอบด้วยสิ่งต่อไปนี้:
2 พฤศจิกายน 11:15:25 เคอร์เนล fps-linux-01: [3716995.353386] การตรวจสอบ: type=1400 การตรวจสอบ (1635869725.570:17): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/ sbin/tcpdump" pid=25552 comm="apparmor_parser"
ซึ่งส่งผลให้ฟิลด์ฐานข้อมูล "FromHost" มีค่าเป็น "fps-linux-01" แต่ข้อความจากฟอร์ติเกตกล่าวว่า:
3 พ.ย. 09:04:46 น. date=2021-11-03 เวลา=09:03:56 devname="Frederick-200F" devid="FG200FT920907269" eventtime=1635948236739611958 tz="-0500" logid="0000000013" type="traffic" subtype="forward" level="notice" vd="root" srcip=xxxxxxxx srcport=59142 srcintf="lan" srcintfrole="lan" dstip=172.98.64.173 dstport=443 dstintf="port16" dstintfrole="wan" srccountry="สงวนไว้" dstcountry ="สหรัฐอเมริกา" sessionid=408405616 proto=6 action="start" policyid=8 policytype="policy" poluuid="2f7b990a-a844-51eb-73cf-8a7dcbe631da" policyname="Filter - Staff" user="xxxxxx" group ="xxxxxxxx" authserver="xxxx" service="HTTPS" trandisp="snat" transip=xxxxxxxxx การขนส่ง=59142 ระยะเวลา=0 sendbyte=0 rcvdbyte=0 sendpkt=0 rcvdpkt=0 appcat="ไม่ได้สแกน"
จากนี้ FromHost จะว่างเปล่าในฐานข้อมูลเพราะ (ฉันถือว่า) รายการ fortigate มีจุดในฟิลด์ชื่อโฮสต์
นี่คือการกำหนดค่าที่เกี่ยวข้อง:
$ template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log"
. ?บันทึกระยะไกล & ~
โมดูล (โหลด = "ommysql")
*.* การกระทำ (ประเภท = "ommysql" [ข้อมูลการเชื่อมต่อ])
ฉันเห็นว่าฉันสามารถรับคุณสมบัติของข้อความและจัดรูปแบบได้ตามต้องการ แต่การดำเนินการนั้นอยู่เหนือฉันในขณะนี้ (หมายถึง ฉันไม่รู้ว่าจะนำไปใช้อย่างไร)
นี่คือการคาดเดาที่ดีที่สุดของฉันในขณะนี้ โปรดแก้ไขสิ่งที่ผิดหรือขาดหายไป:
แม่แบบ (ชื่อ = "RSYSLOG_StdFmt" ประเภท = "รายการ") {
คุณสมบัติ (ชื่อ = "devname")
ค่าคงที่ (ค่า = "")
คุณสมบัติ (ชื่อ = "ประเภท")
ค่าคงที่ (ค่า = ": ")
*** วางส่วนที่เหลือของข้อความที่นี่ ****
}
เป็นไปได้หรือไม่ที่จะให้ข้อมูลที่เหลือหลังจากฟิลด์ "ประเภท" สำรอกไปยังเอาต์พุตจากจุดนั้น ถ้าเป็นเช่นนั้นฉันจะทำอย่างไร?
ที่ควรใส่รายการลงในไฟล์บันทึกคล้ายกับ syslog native rsyslog-mysql จะเลือกสิ่งนั้นและวางลงในฐานข้อมูลอย่างถูกต้องหรือไม่ หรือฉันต้องสร้างเทมเพลตเฉพาะสำหรับ mysql ด้วย ถ้าเป็นเช่นนั้น ฉันจะใช้เทมเพลตของฉันกับเฉพาะบันทึกที่มาจาก fortigate ไม่ใช่กับรายการในเครื่องหรือจากเซิร์ฟเวอร์ Windows ได้อย่างไร