Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> Mac

วิธีอ่าน Log Files บน Linux และ Mac ให้เข้าใจง่ายขึ้น

เมื่อ Linux มีปัญหา การ troubleshoot อาจเป็นวิวาห์ โดยเฉพาะปัญหาที่เป็น intermittent ไม่รู้สาเหตุ

คุณ อาจ ใช้เวลาชั่วโมงบน Stack Overflow และถาม Reddit หรือคุณอาจเริ่มทำเอง โดยดำดิ่งสู่ log files ของระบบ เพื่อหาสาเหตุปัญหา

Log Files คืออะไร?

หลายโปรแกรม -- ไม่ว่าจะเป็น Windows, Mac, หรือ Linux -- สร้าง log files ขณะทำงาน แม้ Android ก็สร้าง นี่คือ plain-text files ที่มีข้อมูลเกี่ยวกับการทำงานของโปรแกรม แต่ละ event อยู่บรรทัดละบรรทัด พร้อม timestamp วินาที

แม้ไม่ได้เป็นจริงสำหรับทุกแอป log files มักอยู่ใน /var/log directory

วิธีอ่าน Log Files บน Linux และ Mac ให้เข้าใจง่ายขึ้น

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

แตตอนมีปัญหา คุณรับประกันได้ว่าข้อมูลเกี่ยวกับมันจะอยู่ใน log files ข้อมูลนี้ใช้แก้ปัญหา หรือถามคนรู้ได้ชัดเจนขึ้น

ดังนั้น ตอน deal กับ log files จะแยกข้อมูลที่สนใจจากข้อมูลที่ไม่สนใจยังไง?

ใช้ Linux Utilities มาตรฐาน

เหมือนที่กล่าว log files ไม่ได้เป็นของ platform ใด platform หนึ่ง แต่บทความนี้โฟกัส Linux และ OS X เพราะทั้งคู่มี UNIX command line tools ที่จำเป็นสำหรับ parse log files มาให้

เพราะ log files เป็น plain-text คุณจึงใช้เครื่องมืออ่านไฟล์ประเภทนี้ได้หมด ของเหล่านี้ grep น่าจะยากที่สุดในการเรียน แต่มีประโยชน์มากที่สุด ใช้ค้นหา phrase และ term เฉพาะในไฟล์ syntax คือ grep [term] [filename]

วิธีอ่าน Log Files บน Linux และ Mac ให้เข้าใจง่ายขึ้น

ในระดับ advanced สามารถใช้ regular expressions (RegEx) ค้นหา term และ item ด้วยความแม่นยำสูง แม้ RegEx ดูเหมือนเวทมนตร์ จริงๆ แล้วง่ายมากที่จะคุ้นเคย

ต่อมา มีคำสั่ง 'head' และ 'tail' ชื่อบอกเลย ฟังก์ชันคือแสดง 10 บรรทัดบนสุดและล่างสุดของไฟล์ตามลำดับ ถ้าอยากดูรายการล่าสุดใน logfile ใช้ "tail filename"

วิธีอ่าน Log Files บน Linux และ Mac ให้เข้าใจง่ายขึ้น

เปลี่ยนจำนวนบรรทัดที่แสดงได้ด้วย '-n' trigger ถ้าอยากดู 20 บรรทัดแรก ใช้

head -n 20 [filename]

วิธีอ่าน Log Files บน Linux และ Mac ให้เข้าใจง่ายขึ้น

ถ้าอยากดูทั้งไฟล์ ใช้ 'cat' utility แต่อาจ unwieldy เพราะ log files มักใหญ่ถึง แสนบรรทัด ไอเดียดีกว่าคือ pipe ไป 'less' utility ให้ดูทีละหน้า ใช้

cat [filename] | less

วิธีอ่าน Log Files บน Linux และ Mac ให้เข้าใจง่ายขึ้น

หรือใช้ sed และ awk เครื่องมือทั้งคู่เขียน script ประมวลผล text files ได้ เราเขียนเกี่ยวกับมันปีที่แล้ว

สุดท้าย ถ้าคล่องกับ vim text editor ก็ลองดู vim มี built-in commands เยอะทำให้ parse log files ง่าย vim 32-bit มีขนาดไฟล์สูงสุด 2 GB แต่อย่าใช้กับไฟล์ใหญ่เกินไปเพื่อ performance

ใช้ Log Management Software

ถ้ารู้สึกยุ่งยากเกินไป หรืออยากของ visual มากกว่า ลอง log management application (บางครั้งสับสนกับ SIEM - Security Information and Event Management)

จุดดีคือมันทำงานหนักให้เยอะ หลายตัว analyze logs และระบุปัญหาอัตโนมัติ ยัง visualize logs ด้วยกราฟและชาร์ต ให้เข้าใจ reliability ของแอปได้ดีขึ้น

โปรแกรมดังที่สุดคือ Splunk log management tool ให้ traverse files ผ่าน web interface มี search processing language เฉพาะตัว ที่ powerful และ versatile สำหรับ drill down ผลลัพธ์แบบ programmatic

Splunk ใช้โดยธุรกิจใหญ่เยอะ รองรับ Mac, Windows, Linux มี free version เรียกว่า Splunk Light สำหรับ home และ small-business users

Splunk Light แชร์ features กับ enterprise versions มาก สามารถ browse logs, monitor files สำหรับปัญหา, และ alert เมื่อมีอะไรผิดปกติ

แต่ Splunk Light มี limitations ที่สมเหตุสมผล: ข้อมูลที่ consume ได้จำกัด 500 MB/วัน ถ้าไม่พอ อัปเกรดเป็น paid Splunk Light consume ได้ 20 GB/วัน แต่ผู้ใช้ส่วนใหญ่ไม่ถึงนั่นหรอก

รองรับแค่ 5 users ซึ่งพอสำหรับผู้ใช้ส่วนใหญ่ โดยเฉพาะถ้ารันบน home web และ file servers

Splunk มี cloud version สำหรับคนไม่อยากติดตั้ง full client หรือมี remote servers หลายตัว ข้อเสียคือค่าใช้จ่ายสูงมาก แผนถูกสุด $125/เดือน

เงินเยอะมาก

คุณจัดการ Log Files ยังไง?

เราดูวิธีสอบสวน log files หาข้อมูล troubleshoot ไม่ว่าจะทำเองหรือขอ remote assistance แตคุณรู้วิธีดีกว่านี้ไหม? ใช้ log management software หรือ standard Linux utilities?

อยากฟังจากคุณ บอกเราในความคิดเห็นด้านล่างได้เลย