Unix / Linux - การบันทึกระบบ

ในบทนี้เราจะพูดถึงรายละเอียดเกี่ยวกับการเข้าสู่ระบบใน Unix

ระบบ Unix มีระบบบันทึกที่ยืดหยุ่นและมีประสิทธิภาพซึ่งช่วยให้คุณสามารถบันทึกเกือบทุกอย่างที่คุณสามารถจินตนาการได้จากนั้นจัดการบันทึกเพื่อดึงข้อมูลที่คุณต้องการ

Unix หลายเวอร์ชันมีสิ่งอำนวยความสะดวกการบันทึกสำหรับวัตถุประสงค์ทั่วไปที่เรียกว่า syslog. แต่ละโปรแกรมที่จำเป็นต้องมีการบันทึกข้อมูลให้ส่งข้อมูลไปที่ syslog

Unix syslogเป็นสิ่งอำนวยความสะดวกในการบันทึกระบบที่เหมือนกันซึ่งสามารถกำหนดค่าโฮสต์ได้ ระบบใช้กระบวนการบันทึกระบบส่วนกลางที่รันโปรแกรม/etc/syslogd หรือ /etc/syslog.

การทำงานของผู้บันทึกระบบค่อนข้างตรงไปตรงมา โปรแกรมส่งรายการบันทึกไปยังsyslogdซึ่งให้คำปรึกษากับไฟล์คอนฟิกูเรชัน/etc/syslogd.conf หรือ /etc/syslog และเมื่อพบรายการที่ตรงกันให้เขียนข้อความบันทึกไปยังไฟล์บันทึกที่ต้องการ

มีคำศัพท์พื้นฐานเกี่ยวกับ syslog สี่คำที่คุณควรเข้าใจ -

ซีเนียร์ ข้อกำหนดและคำอธิบาย
1

Facility

ตัวระบุที่ใช้อธิบายแอปพลิเคชันหรือกระบวนการที่ส่งข้อความบันทึก ตัวอย่างเช่นเมลเคอร์เนลและ ftp

2

Priority

ตัวบ่งชี้ความสำคัญของข้อความ ระดับถูกกำหนดภายใน syslog เป็นแนวทางตั้งแต่ข้อมูลการดีบักไปจนถึงเหตุการณ์ที่สำคัญ

3

Selector

การรวมกันของสิ่งอำนวยความสะดวกและระดับอย่างน้อยหนึ่งอย่าง เมื่อเหตุการณ์ที่เข้ามาตรงกับตัวเลือกการดำเนินการจะดำเนินการ

4

Action

จะเกิดอะไรขึ้นกับข้อความขาเข้าที่ตรงกับตัวเลือก - การดำเนินการสามารถเขียนข้อความลงในล็อกไฟล์สะท้อนข้อความไปยังคอนโซลหรืออุปกรณ์อื่นเขียนข้อความถึงผู้ใช้ที่ล็อกอินหรือส่งข้อความไปยังเซิร์ฟเวอร์ syslog อื่น

สิ่งอำนวยความสะดวก Syslog

ตอนนี้เราจะทำความเข้าใจเกี่ยวกับสิ่งอำนวยความสะดวก syslog นี่คือสิ่งอำนวยความสะดวกที่มีให้สำหรับผู้เลือก สิ่งอำนวยความสะดวกบางอย่างอาจไม่มีอยู่ใน Unix ทุกเวอร์ชัน

สิ่งอำนวยความสะดวก คำอธิบาย
1

auth

กิจกรรมที่เกี่ยวข้องกับการขอชื่อและรหัสผ่าน (getty, su, login)

2

authpriv

เหมือนกับการรับรองความถูกต้อง แต่บันทึกเป็นไฟล์ที่สามารถอ่านได้โดยผู้ใช้ที่เลือกเท่านั้น

3

console

ใช้เพื่อบันทึกข้อความที่ส่งไปยังคอนโซลระบบโดยทั่วไป

4

cron

ข้อความจากตัวกำหนดตารางเวลาระบบ cron

5

daemon

System daemon จับทั้งหมด

6

ftp

ข้อความที่เกี่ยวข้องกับ ftp daemon

7

kern

ข้อความเคอร์เนล

8

local0.local7

สิ่งอำนวยความสะดวกในท้องถิ่นที่กำหนดไว้ต่อไซต์

9

lpr

ข้อความจากระบบการพิมพ์เส้น

10

mail

ข้อความที่เกี่ยวข้องกับระบบเมล

11

mark

เหตุการณ์หลอกใช้เพื่อสร้างการประทับเวลาในไฟล์บันทึก

12

news

ข้อความที่เกี่ยวข้องกับโปรโตคอลข่าวสารเครือข่าย (nntp)

13

ntp

ข้อความที่เกี่ยวข้องกับโปรโตคอลเวลาเครือข่าย

14

user

กระบวนการของผู้ใช้ปกติ

15

uucp

ระบบย่อย UUCP

ลำดับความสำคัญของ Syslog

ลำดับความสำคัญของ syslog สรุปไว้ในตารางต่อไปนี้ -

ซีเนียร์ ลำดับความสำคัญและคำอธิบาย
1

emerg

ภาวะฉุกเฉินเช่นระบบล่มที่ใกล้เข้ามามักจะออกอากาศไปยังผู้ใช้ทุกคน

2

alert

สภาพที่ควรแก้ไขทันทีเช่นฐานข้อมูลระบบเสียหาย

3

crit

เงื่อนไขที่สำคัญเช่นข้อผิดพลาดของฮาร์ดแวร์

4

err

ข้อผิดพลาดทั่วไป

5

Warning

คำเตือน

6

notice

สภาพที่ไม่ใช่ข้อผิดพลาด แต่ควรจัดการด้วยวิธีพิเศษ

7

info

ข้อความให้ข้อมูล

8

debug

ข้อความที่ใช้เมื่อทำการดีบักโปรแกรม

9

none

ระดับหลอกใช้เพื่อระบุไม่ให้บันทึกข้อความ

การรวมกันของสิ่งอำนวยความสะดวกและระดับต่างๆช่วยให้คุณสามารถแยกแยะสิ่งที่บันทึกไว้และข้อมูลนั้นไปที่ใด

ในขณะที่แต่ละโปรแกรมส่งข้อความตามหน้าที่ไปยังผู้บันทึกระบบผู้บันทึกจะตัดสินใจว่าจะติดตามอะไรและสิ่งที่จะทิ้งตามระดับที่กำหนดไว้ในตัวเลือก

เมื่อคุณระบุระดับระบบจะติดตามทุกอย่างในระดับนั้นและสูงกว่า

ไฟล์ /etc/syslog.conf

/etc/syslog.confไฟล์ควบคุมที่บันทึกข้อความ โดยทั่วไปsyslog.conf ไฟล์อาจมีลักษณะเช่นนี้ -

*.err;kern.debug;auth.notice /dev/console
daemon,auth.notice           /var/log/messages
lpr.info                     /var/log/lpr.log
mail.*                       /var/log/mail.log
ftp.*                        /var/log/ftp.log
auth.*                       @prep.ai.mit.edu
auth.*                       root,amrood
netinfo.err                  /var/log/netinfo.log
install.*                    /var/log/install.log
*.emerg                      *
*.alert                      |program_name
mark.*                       /dev/console

แต่ละบรรทัดของไฟล์ประกอบด้วยสองส่วน -

  • message selectorที่ระบุประเภทของข้อความที่จะบันทึก ตัวอย่างเช่นข้อความแสดงข้อผิดพลาดทั้งหมดหรือข้อความการดีบักทั้งหมดจากเคอร์เนล

  • อัน action fieldที่บอกว่าควรทำอย่างไรกับข้อความ ตัวอย่างเช่นใส่ไว้ในไฟล์หรือส่งข้อความไปยังเทอร์มินัลของผู้ใช้

ต่อไปนี้เป็นประเด็นที่น่าสังเกตสำหรับการกำหนดค่าข้างต้น -

  • ตัวเลือกข้อความมีสองส่วน: a facility และ a priority. ตัวอย่างเช่นkern.debugเลือกข้อความดีบักทั้งหมด (ลำดับความสำคัญ) ที่สร้างโดยเคอร์เนล (สิ่งอำนวยความสะดวก)

  • ตัวเลือกข้อความkern.debugเลือกลำดับความสำคัญทั้งหมดที่มากกว่าการดีบัก

  • เครื่องหมายดอกจันแทนสิ่งอำนวยความสะดวกหรือลำดับความสำคัญแสดงว่า "ทั้งหมด" ตัวอย่างเช่น,*.debug หมายถึงข้อความดีบักทั้งหมดในขณะที่ kern.* หมายถึงข้อความทั้งหมดที่สร้างโดยเคอร์เนล

  • คุณยังสามารถใช้ลูกน้ำเพื่อระบุสิ่งอำนวยความสะดวกต่างๆ ตัวเลือกสองตัวขึ้นไปสามารถจัดกลุ่มเข้าด้วยกันได้โดยใช้อัฒภาค

การบันทึกการดำเนินการ

ฟิลด์การดำเนินการระบุหนึ่งในห้าการกระทำ -

  • บันทึกข้อความไปยังไฟล์หรืออุปกรณ์ ตัวอย่างเช่น,/var/log/lpr.log หรือ /dev/console.

  • ส่งข้อความถึงผู้ใช้ คุณสามารถระบุชื่อผู้ใช้หลายชื่อโดยคั่นด้วยลูกน้ำ ตัวอย่างเช่น root, amrood

  • ส่งข้อความถึงผู้ใช้ทุกคน ในกรณีนี้เขตข้อมูลการดำเนินการประกอบด้วยเครื่องหมายดอกจัน ตัวอย่างเช่น, *.

  • ไพพ์ข้อความไปยังโปรแกรม ในกรณีนี้โปรแกรมจะถูกระบุไว้หลังสัญลักษณ์ท่อ Unix (|)

  • ส่งข้อความไปยัง syslog บนโฮสต์อื่น ในกรณีนี้ฟิลด์การดำเนินการประกอบด้วยชื่อโฮสต์นำหน้าด้วยเครื่องหมาย at ตัวอย่างเช่น @ tutorialspoint.com

คำสั่งคนตัดไม้

Unix ให้ไฟล์ loggerคำสั่งซึ่งเป็นคำสั่งที่มีประโยชน์อย่างยิ่งในการจัดการกับการบันทึกระบบ logger คำสั่งส่งข้อความการบันทึกไปยัง syslogd daemon และส่งผลให้เกิดการล็อกระบบ

ซึ่งหมายความว่าเราสามารถตรวจสอบจากบรรทัดคำสั่งได้ตลอดเวลา syslogddaemon และการกำหนดค่า คำสั่ง logger จัดเตรียมวิธีการสำหรับการเพิ่มรายการหนึ่งบรรทัดไปยังไฟล์บันทึกระบบจากบรรทัดรับคำสั่ง

รูปแบบของคำสั่งคือ -

logger [-i] [-f file] [-p priority] [-t tag] [message]...

นี่คือรายละเอียดของพารามิเตอร์ -

ซีเนียร์ ตัวเลือกและคำอธิบาย
1

-f filename

ใช้เนื้อหาของชื่อไฟล์ไฟล์เป็นข้อความในการบันทึก

2

-i

บันทึก ID กระบวนการของกระบวนการคนตัดไม้กับแต่ละบรรทัด

3

-p priority

ป้อนข้อความด้วยลำดับความสำคัญที่ระบุ (รายการตัวเลือกที่ระบุ); ลำดับความสำคัญของข้อความสามารถระบุเป็นตัวเลขหรือเป็นคู่ของ facility.priority ลำดับความสำคัญเริ่มต้นคือ user.notice

4

-t tag

ทำเครื่องหมายแต่ละบรรทัดที่เพิ่มลงในบันทึกด้วยแท็กที่ระบุ

5

message

อาร์กิวเมนต์สตริงที่มีเนื้อหาเรียงต่อกันตามลำดับที่ระบุคั่นด้วยช่องว่าง

คุณสามารถใช้Manpage Helpเพื่อตรวจสอบไวยากรณ์ที่สมบูรณ์สำหรับคำสั่งนี้

บันทึกการหมุน

ไฟล์บันทึกมีแนวโน้มที่จะเติบโตอย่างรวดเร็วและใช้พื้นที่ดิสก์จำนวนมาก ในการเปิดใช้งานการหมุนเวียนบันทึกการแจกแจงส่วนใหญ่ใช้เครื่องมือเช่นnewsyslog หรือ logrotate.

ควรเรียกเครื่องมือเหล่านี้ตามช่วงเวลาที่ใช้บ่อยโดยใช้ cron daemon. ตรวจสอบ man page สำหรับnewsyslogหรือlogrotateสำหรับรายละเอียดเพิ่มเติม

ตำแหน่งบันทึกที่สำคัญ

แอปพลิเคชันระบบทั้งหมดสร้างล็อกไฟล์ในรูปแบบ /var/logและไดเรกทอรีย่อย ต่อไปนี้คือแอปพลิเคชันที่สำคัญบางส่วนและไดเรกทอรีบันทึกที่เกี่ยวข้อง -

ใบสมัคร ไดเรกทอรี
httpd / var / log / httpd
แซมบ้า / var / log / samba
cron / var / log /
จดหมาย / var / log /
mysql / var / log /