เรากำลังใช้ rsyslog ผ่านทาง boost logging sinks เพื่อบันทึกข้อความจากขั้นตอนการสมัครไปยัง /var/log/messages บน RHEL 7
ข้อความบันทึกจะนำหน้าด้วย "LogMsg"
rsyslog.conf มีลักษณะดังนี้:
# ไฟล์กำหนดค่า rsyslog
# สำหรับข้อมูลเพิ่มเติม โปรดดูที่ /usr/share/doc/rsyslog-*/rsyslog_conf.html
# หากคุณประสบปัญหา โปรดดูที่ http://www.rsyslog.com/doc/troubleshoot.html
#### โมดูล ####
mail.none;authpriv.none;cron.none /var/log/messages
local0.debug /var/log/nullarbor.log
local4.info /var/log/local4info.log
# ไฟล์ authpriv มีการจำกัดการเข้าถึง
authpriv.* /var/log/secure
# บันทึกข้อความอีเมลทั้งหมดในที่เดียว
mail.* -/var/log/maillog
# บันทึกสิ่ง cron
cron.* /var/log/cron
# ทุกคนได้รับข้อความฉุกเฉิน
*.emerg :omusrmsg:*
# บันทึกข้อผิดพลาดของข่าวในระดับ Crit และสูงกว่าในไฟล์พิเศษ
uucp,news.crit /var/log/spooler
# บันทึกข้อความบูตไปยัง boot.log
local7.* /var/log/boot.log
# ### เริ่มกฎการส่งต่อ ###
# คำสั่งระหว่างจุดเริ่มต้น ... สิ้นสุดกำหนดการส่งต่อเดียว
# กฎ. พวกเขาอยู่ด้วยกันอย่าแยกพวกเขา หากคุณสร้างหลาย
#กติกาการส่งต่อ ซ้ำทั้งบล็อค!
# การบันทึกระยะไกล (เราใช้ TCP สำหรับการจัดส่งที่เชื่อถือได้)
#
# คิวบนดิสก์ถูกสร้างขึ้นสำหรับการดำเนินการนี้ หากรีโมตโฮสต์คือ
# ลง ข้อความจะถูกสพูลไปยังดิสก์ และส่งเมื่อกลับมาทำงานอีกครั้ง
#$ActionQueueFileName fwdRule1 # คำนำหน้าชื่อเฉพาะสำหรับไฟล์สปูล
#$ActionQueueMaxDiskSpace 1g # พื้นที่จำกัด 1gb (ใช้ให้มากที่สุด)
#$ActionQueueSaveOnShutdown บน # บันทึกข้อความลงดิสก์เมื่อปิดเครื่อง
#$ActionQueueType LinkedList # ทำงานแบบอะซิงโครนัส
#$ActionResumeRetryCount -1 # ลองใหม่ไม่สิ้นสุดหากโฮสต์ไม่ทำงาน
# รีโมตโฮสต์คือ: name/ip:port เช่น 192.168.0.1:514 พอร์ตเสริม
#*.* @@รีโมตโฮสต์:514
# ### สิ้นสุดกฎการส่งต่อ ###
# ตอนนี้มีการใช้โมดูล imjournal เป็นแหล่งข้อความแทน imuxsock
$ModLoad imuxsock # ให้การสนับสนุนการบันทึกระบบโลคัล (เช่น ผ่านคำสั่ง logger)
$ModLoad imjournal # ให้การเข้าถึงวารสาร systemd
#$ModLoad imklog # อ่านข้อความเคอร์เนล (เหมือนกับที่อ่านจาก Journald)
#$ModLoad immark # ให้ --MARK-- ความสามารถในการส่งข้อความ
# จัดเตรียมการรับ syslog ของ UDP
#$ModLoad โคลน
#$UDPServerRun 514
# จัดเตรียมการรับ TCP syslog
#$ModLoad อิมทีซีพี
#$InputTCPServerRun 514
#### คำสั่งสากล ####
# ตำแหน่งที่จะวางไฟล์เสริม
$WorkDirectory /var/lib/rsyslog
# ใช้รูปแบบการประทับเวลาเริ่มต้น
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
# ความสามารถในการซิงค์ไฟล์ถูกปิดใช้งานตามค่าเริ่มต้น คุณลักษณะนี้มักไม่จำเป็น
#ไม่มีประโยชน์และตีประสิทธิภาพสุดขีด
#$ActionFileEnableSync เปิดอยู่
# รวมไฟล์ปรับแต่งทั้งหมดใน /etc/rsyslog.d/
$IncludConfig /etc/rsyslog.d/*.conf
# ปิดการรับข้อความผ่านซ็อกเก็ตบันทึกในเครื่อง
# ข้อความในเครื่องถูกเรียกผ่าน imjournal ในขณะนี้
$OmitLocalเข้าสู่ระบบ
# ไฟล์เก็บตำแหน่งในวารสาร
$IMJournalStateFile imjournal.state
#### กฎ ####
# บันทึกข้อความเคอร์เนลทั้งหมดไปยังคอนโซล
# การบันทึกอื่น ๆ อีกมากมายทำให้หน้าจอยุ่งเหยิง
#kern.* /dev/console
# เข้าสู่ระบบอะไรก็ได้ (ยกเว้นเมล) ของข้อมูลระดับหรือสูงกว่า
# อย่าบันทึกข้อความตรวจสอบส่วนตัว!
*.info;mail.none;authpriv.none;cron.none /var/log/messages
local4.info /var/log/local4info.log
# ไฟล์ authpriv มีการจำกัดการเข้าถึง
authpriv.* /var/log/secure
# บันทึกข้อความอีเมลทั้งหมดในที่เดียว
mail.* -/var/log/maillog
# บันทึกสิ่ง cron
cron.* /var/log/cron
# ทุกคนได้รับข้อความฉุกเฉิน
*.emerg :omusrmsg:*
# บันทึกข้อผิดพลาดของข่าวในระดับ Crit และสูงกว่าในไฟล์พิเศษ
uucp,news.crit /var/log/spooler
# บันทึกข้อความบูตไปยัง boot.log
local7.* /var/log/boot.log
# ### เริ่มกฎการส่งต่อ ###
# คำสั่งระหว่างจุดเริ่มต้น ... สิ้นสุดกำหนดการส่งต่อเดียว
# กฎ. พวกเขาอยู่ด้วยกันอย่าแยกพวกเขา หากคุณสร้างหลาย
#กติกาการส่งต่อ ซ้ำทั้งบล็อค!
# การบันทึกระยะไกล (เราใช้ TCP สำหรับการจัดส่งที่เชื่อถือได้)
#
# คิวบนดิสก์ถูกสร้างขึ้นสำหรับการดำเนินการนี้ หากรีโมตโฮสต์คือ
# ลง ข้อความจะถูกสพูลไปยังดิสก์ และส่งเมื่อกลับมาทำงานอีกครั้ง
#$ActionQueueFileName fwdRule1 # คำนำหน้าชื่อเฉพาะสำหรับไฟล์สปูล
#$ActionQueueMaxDiskSpace 1g # พื้นที่จำกัด 1gb (ใช้ให้มากที่สุด)
#$ActionQueueSaveOnShutdown บน # บันทึกข้อความลงดิสก์เมื่อปิดเครื่อง
#$ActionQueueType LinkedList # ทำงานแบบอะซิงโครนัส
#$ActionResumeRetryCount -1 # ลองใหม่ไม่สิ้นสุดหากโฮสต์ไม่ทำงาน
# รีโมตโฮสต์คือ: name/ip:port เช่น 192.168.0.1:514 พอร์ตเสริม
#*.* @@รีโมตโฮสต์:514
# ### สิ้นสุดกฎการส่งต่อ ###
เมื่อทุกอย่างทำงาน ข้อความข้อมูลจากกระบวนการสมัครของฉันถูกส่งไปที่ /var/log/messages สิ่งเหล่านี้มีสตริง LogMsg อยู่ในนั้นและเป็นแอปพลิเคชันเฉพาะ
จากนั้นฉันเพิ่มบรรทัดเพื่อกรองข้อความ local0 หลังจากนั้นฉันเริ่มบริการ rsyslog ใหม่
หลังจากนั้นทุกคนก็บ้าดีเดือด ฉันรีบูตและทำให้ rsyslog.conf กลับสู่สถานะเดิม
ฉันทำการรีโหลด systemd daemon และเริ่มบริการ rsyslog ใหม่
ฉันยังลบไฟล์สถานะ imjournal ใน /var/lib/rsyslog
สิ่งนี้มีผลดังต่อไปนี้:
- รายการ systemd สำหรับกระบวนการ daemon ทั้งหมด เช่น sensord, snmpd เป็นต้น เริ่มไหลเข้าสู่ /var/log/messages โดยตรง ซึ่งไม่ใช่สิ่งที่เกิดขึ้นก่อนหน้านี้
- ข้อความจากแอปพลิเคชันของฉันไม่ปรากฏใน /var/log/messages ซึ่งเป็นสิ่งที่ฉันหวังไว้
ฉันไม่รู้ว่าข้อความใบสมัครของฉันไปที่ใด
นอกจากนี้ เมื่อฉันรันตัวบันทึกด้วยการทดสอบข้อความ มันจะปรากฏใน /var/log/messages
ดังนั้นปัญหาปัจจุบันของฉันคือ:
ข้อความเคอร์เนลถูกทิ้งลงใน /var/log/messages ในขณะที่ก่อนหน้านี้ไม่ได้ ทำไมสิ่งนี้ถึงเกิดขึ้น?
เหตุใดข้อความแอปพลิเคชันของฉันจึงหยุดเข้าสู่ /var/log/messages
และพวกเขาจะไปที่ไหน?
ฉันจะแก้ไขปัญหานี้ได้อย่างไร โปรดช่วยและให้คำแนะนำ
ขอบคุณ.