Thursday, August 5, 2010

FreeBSD: --> Log files

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

โฮ้ยยย จิปาถะ

แต่กับ log file ที่บันทึกโดยระบบปฏิบัติการคอมพิวเตอร์แล้ว เกิดอะไรขึ้น เขาก็บันทึกแหละ ตามที่กำหนดไว้ เพราะฉนั้น หน้าที่เราก็มีเพียง ตั้งหน้าตั้งตาอ่าน อ่านเอาเรื่อง

จับผิด จับถูกแก้ไขปัญหาได้เยอะ รวมทั้งป้องกัน ก็ได้มากเหมือนกัน

การอ่านให้เป็นนิสัย นับว่าเป็นการเขียนที่ดีอย่างหนึ่ง ซึ่งพอพกับการพูดที่ดีนั้น นักพูดที่ดี ต้องเป็นนักฟังที่ดีด้วย เอ แล้วมันจะไปด้วยกันได้มั้ยเนี่ย แต่เอาเหอะ อ่านก็แล้วกัน เน้อะ

log file ต่างๆของระบบนั้น จะเก็บไว้ที่ /var/log
ซึ่งก็มีตั้งแต่การ login, ftp, maillog, messages ต่างๆ เหล่านี้ FreeBSD เขาจัดไว้ให้แล้ว และจะ rotate ไปเรื่อย หน้าที่ของเราคือ อ่าน และ พิจารณา และ ปฏิบัติการตามสมควรแก่กรณี เป็นราย ราย ไป

ยกตัวอย่าง ที่สืบเนื่องมาจากเรื่อง Apache ที่ผ่านไปหยกหยกนี่ ก็ให้ท่านลองลง apache22 ให้เรียบร้อย แล้วปรับแต่งแฟ้ม httpd.conf ให้พอมีสาระเท่าที่จำเป็น ในเบื้องต้น ดังนี้

  • ServerAdmin ชื่อของท่าน เป็นอีเมล์
  • ServerName localhost:80
  • #Include etc/apache22/extra/httpd-default.conf
  • #Include etc/apache22/extra/httpd-ssl.conf
๒ ข้อหลังนี่ นำเอามาให้ดูเพราะอยากให้ท่านฝึกอ่าน log file ว่า ถ้าในสภาพปกติ จะเป็นอย่างไร และในสภาพผิดปกติ ความแตกต่างจะเกิดขึ้น ซึ่งท่านย่อมทราบเอง ปัจจัตตัง วิญญูหิติ ๚

เมื่อลงแล้ว ปรับแฟ้มดังกล่าวแล้วให้ท่านสั่ง, ในฐานะ root น่ะ
# /usr/local/etc/rc.d/apache22 start
และถึงอย่างไรก็ดี อย่าเพิ่งเชื่อในสิ่งที่เห้นในหน้าจอให้มากนัก จงตรวจสอบว่า อะปะเช่ เขาวิ่งจริงหรือว่า วิ่งไปแล้วแอบนอนแบบกระต่าย ด้วยคำสั่งอีกอันนี้
# /usr/local/etc/rc.d/apache22 status
และงวดนี้ ให้จำผลลัพธ์ที่หน้าจอไว้ด้วย แล้วไปเปิดแฟ้ม log file ดูอีกที


แฟ้ม log ก็อย่างที่เห็นในรูปแหละว่า ชื่อ httpd-access.log จากรูปนี่
มะไฟ ใช้ editor เปิดมาให้ดู ความจริงแค่สั่ง
# tail -20 /var/log/httpd-access.log
ก็พอแล้ว ยังไงก็ตามทีเหอะ จาก log file นี้ บอกว่าไม่มี errors อะไร โดยดูจาก ๕ บรรทัดสุดท้าย ที่วงแดงแดงไว้นั่นแหละ

ยังไงก็แล้วแต่ ขอให้พี่พีท่านสั่ง
# tail -20 /var/log/httpd-error.log
มาดูด้วยน่ะ งวดนี้ สั่งมาดูเปล่าๆได้ เขาไม่คิดตังหรอก คริคริ

เรามาทดลองกันดูง่ายๆ สำหรับ อะปะเช่ ลองดูว่า ถ้า hostname & ip number ไม่ได้กำหนด แล้ว อะปะเช่ จะวิ่งรึเปล่า แล้ว log file ทั้งสองจะแจ้งอย่างไร ก็ให้ท่านไปลองดูเอง ลองเปลี่ยน ServerName ในแฟ้ม httpd.conf เป้นอย่างอื่นเลย ง่ายดี แล้วสั่ง

# /usr/local/etc/rc.d/apache22 restart
เบื้องต้น ก็ให้ดูผลลัพธ์ที่หน้าจอ, standard error, ก่อน แล้วไปดู httpd-access.log กับ httpd-error.log ทั้ง ๒ แฟ้มว่าจะรายงานอย่างไร ให้สังเกตุเอาเอง

จากนั้น แก้ ServerName คืนกลับมาเป็นชื่อเดิม แล้วก็เริ่ม process ของ อะปะเช่ ใหม่อีกครั้ง

log file อื่นๆ ก็ให้อ่านแบบฟอร์มการบันทึกของเขาก่อน แล้วจึงไปนั่งอ่านตัว log file จะทำให้เข้าใจอะไรได้ง่ายขึ้นเยอะ อย่างกับว่า วันนี้ ระหว่าที่ชะงักไป มีพี่ท่านหนึ่ง มาถามว่าจะดูว่าเครื่องดับช่วงไหน ซึ่ง ก็พอดีที่เจอ เลยบอกว่า ไปดูผลลัพธ์จากคำสั่ง last(1) ซะ แต่พี่ท่านใช้อูบุ้นตู เลยบอกไม่ได้ ก็แต่บอกให้พี่เขาค่อยๆไล่ลงไปดูทีละบรรทัดๆ จากบนลงไปหาล่าง ก็น่าจะเจอเหตุเองแหละ ว่า เครื่อง มันดับเมื่อไหร่ เพราะอะไร กับอีกหนึ่งคำสั่งคือ lastcomm(1) ซึ่งพอใช้ดูได้เช่นกัน

ขอยุติเรื่องของ Log file ไว้ตรงนี้ก่อนชั่วคราว ขอบคุณทุกท่านที่สละเวลาอ่าน ๚

2 comments:

dekdar said...

เดือนก่อนหน้านี้ ได้ล็อกตัวนี้แหละ ช่วยหาคนมือบ่อน
ของที่ทำงานเพื่อน
httpd-access.log รายงานไอพีตัวไหน
จากนั้นไปตามจนต้องส่งเรืองให้ไอเอสพี เพื่อหาตัว
เค้าโพสมาจากด้านนอก
แต่ก็ทำอะไรต่อไปไม่ได้ เจอผู้ใหญ่สั่งไม่ให้ทำต่อ
ที่แท้ก็เป็นผู้ใหญ่เสียเองนิ ตอนไม่ทราบ ก็ตะบี้ตะบัน
ให้ไปหา พอเจอตัว สั่งให้เงียบสะงัน

อืมมมม

สั่งทั้งจำทั้งปรับดีไหมเนีย

มะขาม said...

ทั้งจับทังขยำเลย ทั้งจำทั้งปรับ มันน้อยไป แต่จะทั้งจับทั้งปรำ ก็ดูว่า ปรักปรำ เลยเลี่ยงมาเป้นอย่างอื่น ซะ ดีมั้ย


View My Stats