นี่คือการตั้งค่าของเรา
เซิร์ฟเวอร์: เซิร์ฟเวอร์ rsyslog - CentOS 7
ลูกค้า: Cisco Catalyst C6880-X-LE
/etc/rsyslog.conf
จากเซิร์ฟเวอร์ CentOS 7:
$ModLoad imuxsock # ให้การสนับสนุนการบันทึกระบบโลคัล (เช่น ผ่านคำสั่ง logger)
$ModLoad imjournal # ให้การเข้าถึงวารสาร systemd
$ template TmplAuth, "/var/log/client_logs/%HOSTNAME%/%PROGRAMNAME%.log"
$ template TmplMsg, "/var/log/client_logs/%HOSTNAME%/%PROGRAMNAME%.log"
authpriv.* ?TmplAuth
*.info;mail.none;authpriv.none;cron.none ?TmplMsg
$ModLoad โคลน
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
$WorkDirectory /var/lib/rsyslog
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludConfig /etc/rsyslog.d/*.conf
$OmitLocalเข้าสู่ระบบ
$IMJournalStateFile imjournal.state
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
mail.* -/var/log/maillog
cron.* /var/log/cron
*.emerg :omusrmsg:*
uucp,news.crit /var/log/spooler
local7.* /var/log/boot.log
ด้วยเหตุผลบางอย่างใน /var/log/client_logs
ไฟล์บันทึกของซิสโก้กำลังสร้างไฟล์ .log ใหม่ทุกครั้งที่มีการสร้างข้อความบันทึกใหม่บนสวิตช์ เห็นได้ชัดว่ามันไม่เหมาะและฉันต้องการให้ rsyslog ใส่บันทึกทั้งหมดไว้ในไฟล์เดียว และฉันวางแผนที่จะให้ logrotate จัดการกับการสร้างไฟล์บันทึกใหม่ทุกวัน
นี่คือตัวอย่างของสิ่งที่ฉันเห็นใน /var/log/client_logs
ไดเรกทอรี
-rw------- 1 รูท 184 ต.ค. 56 14:30 น. 156598.log
-rw------- 1 รูท 164 ต.ค. 56 14:30 น. 156599.log
-rw------- 1 รูท 186 ต.ค. 56 14:30 น. 156600.log
-rw------- 1 รูท รูท 162 ต.ค. 56 14:30 น. 156601.log
-rw------- 1 รูท 184 ต.ค. 56 14:30 น. 156602.log
-rw------- 1 รูท 164 ต.ค. 56 14:35 น. 156603.log
-rw------- 1 รูท 186 ต.ค. 56 14:35 156604.log
-rw------- 1 รูท 162 ต.ค. 56 14:35 น. 156605.log
-rw------- 1 รูท 184 ต.ค. 56 14:35 156606.log
-rw------- 1 รูท 164 ต.ค. 56 14:35 น. 156607.log
-rw------- 1 รูท 186 ต.ค. 56 14:35 156608.log
-rw------- 1 รูท รูท 162 ต.ค. 56 14:35 น. 156609.log
-rw------- 1 รูท 184 ต.ค. 56 14:35 น. 156610.log
-rw------- 1 รูท รูท 162 ต.ค. 56 14:39 น. 156611.log
-rw------- 1 รูท รูท 164 ต.ค. 56 14:41 156612.log
-rw------- 1 รูท 186 ต.ค. 56 14:41 156613.log
-rw------- 1 รูท รูท 162 ต.ค. 56 14:41 156614.log
-rw------- 1 รูท 184 ต.ค. 56 14:41 156615.log
และสิ่งนี้จะดำเนินต่อไปตลอดไปเมื่อพิจารณาว่ากำลังสร้าง .log สำหรับแต่ละข้อความใหม่ที่ส่งจากสวิตช์ Cisco นี่คือตัวอย่างเนื้อหาของหนึ่งในไฟล์บันทึกเหล่านี้
2021-10-13T14:41:10.866435-07:00 X 156613: X-Switch: .13 ต.ค. 13:40:44 PST: %LINEPROTO-SW1-5-UPDOWN: โปรโตคอล Line บนอินเทอร์เฟซ GigabitEthernet195/1/0/11 , เปลี่ยนสถานะเป็นดาวน์
ฉันไม่แน่ใจว่าปัญหาอยู่ที่การกำหนดค่าบนสวิตช์ Cisco หรือการกำหนดค่า rsyslog ของฉัน แต่ฉันเคยทำมาก่อนและไม่เคยมีปัญหาใดๆ กับไฟล์ .log ใหม่ที่สร้างขึ้นสำหรับทุกข้อความที่ส่งไปยังเซิร์ฟเวอร์
นี่คือการกำหนดค่าในด้านสวิตช์ของ Cisco
Switch1#โชว์รัน | รวมถึงการบันทึก
บันทึกข้อมูลผู้ใช้
บันทึกการดีบักโหลดซ้ำ
การบันทึกสถานะลิงก์สถานะเริ่มต้น
การบันทึกชื่อโฮสต์รหัสต้นทาง
โฮสต์การบันทึก 10.1.1.1
การบันทึกแบบซิงโครนัส
การบันทึกแบบซิงโครนัส
โปรดทราบ โฮสต์การบันทึก
คำสั่งคือที่อยู่ IP ของเซิร์ฟเวอร์ CentOS 7 rsyslog บันทึกอื่น ๆ ทั้งหมดที่บันทึกจากโฮสต์อื่นนั้นใช้ได้และไม่ได้สร้างไฟล์ .log ใหม่ต่อทุก ๆ ข้อความที่ได้รับ แต่ระบบอื่น ๆ ที่ส่งบันทึกไม่ใช่สวิตช์ของ Cisco ซึ่งเป็นรสชาติที่หลากหลายของ Linux (ส่วนใหญ่คือ CentOS และ RHEL)
ทราบหรือไม่ว่าเหตุใด rsyslog จึงสร้างไฟล์ .log ใหม่สำหรับทุกข้อความที่ได้รับจากสวิตช์ Cisco Catalyst นี้