Showing posts with label /var/log. Show all posts
Showing posts with label /var/log. Show all posts

Sunday, August 22, 2010

syslog: The system events logger

commandsจาก the white book ที่สงกาอยู่ว่า ทำไมจึงไม่มีเรื่องราวของ syslog อยู่ให้เห็นเลย จึงหยิบมาพลิกดูอีกหน ก็พบเข้าเต็มๆ เขาเขียนไว้ในเรื่องของ Essentail Administrative Tools and Techniques โดยจำเพาะ ซุกอยู่ในนั้น

ขออภัยผู้แต่งไว้ ด้วย ที่ไปกล่าวหาว่า ไม่มีเรื่องนี้อยู่

จะมาเสริมให้ ต่อไปจากเล่มแดง อย่างเข้มข้น



ฝรั่งเข้ามีหนังสืออ้างอิง เมื่อพูดถึง UNIX อยู่ ๒ เล่ม เรียกขานกันตามสีปก คือ
  • the red book
  • the white book
ซึ่งจัดพิมพ์มานานมากแล้ว และปรับปรุงมาเรื่อย ให้เข้ากับการเปลี่ยนแปลงทางวิชาการ และความต้องการ โดยเฉพาะ เล่มแดง นั้นเ ชาวน้องลี ย่อมรู้จักดี เพราะทำมาโดยเฉพาะ ชัดๆเลย แต่สีปก ไม่ใช่แดงเท่านั้นเอง

เล่มที่ มะไฟ มี เป็น 2nd ed. ความจริง มีทั้งสอง edition แต่ฉบับแรก เปียกฝน เสียหายอ่านไม่ได้ไปหลายหน้าแล้ว เลยหามาใหม่ อ่านเล่น เพลินดี

Thursday, August 19, 2010

syslog: The system events logger

commands
มาต่อกันอีกจากตอนที่แล้ว ที่นำเสนอในส่วนของ รายละเอียดของ facilities ของแฟ้ม /etc/syslog.conf ที่จบลงตรงตัวอย่างของ ชื่อของ facility และ severity level ของข้อมูลข่าวสาร

ตัว syslogd เอง ก็สามารถใช้เป็น facility ได้ด้วยน่ะ ลืมบอกไป แต่ facility mark ก้ต้องระบุด้วย

การที่ข่าวสารจากโปรแกรม หรือ facility ต่างๆจะถูกบันทึกไว้นั้น ก็ต้องพิจารณาด้วยว่า สำคัญพอที่จะบันทึกไว้หรือเปล่า เป็นเกณฑ์ กล่าวคือ severity level นั้นต้องมากกว่า หรือ เท่ากับที่ระบุไว้เท่านั้น action ถึงจะได้รับการพิจารณาให้กระทำ หรือ ดำเนินการได้

ในตัวอย่างที่ยกมาถึง severity level นั้น เรียงลำดับความสำคัญลดหลั่นลงมาตามลำดับน่ะ อันสูง สำคัญมากกว่าอันต่ำลงมา ๑ ระดับ แบบนี้แหละ ก็ลองไปไล่ๆดูเอาน่ะพี่น้อง

สำหรับ action นั้น มีพอให้ดูเป็นแนวทางอยู่ดังนี้
  • filename เขียนข่าวสารนั้นๆ ลงเครื่องนั้นเลยด้วยชื่อแฟ้มที่ระบุมานี่แหละ
  • @hostname ให้ส่งข่าวสารไปยัง syslogd ของเครื่องที่ระบุชื่อไว้นี่แหละ
  • @ipaddress คล้ายๆข้างบนนั้น แต่เป็นหมายเลข ip แทนชื่อเครื่อง
  • user1,user2,... เขียนลงที่หน้อจอของ ผู้ใช้งานตอนที่เขา login
  • * เขียนข่าวสารไปยังผู้ใช้งานทุกคนที่ logged in อยู่
มีข้อควรระวังคือ ถ้าใช้ filename แล้ว ชื่อต้องระบุแบบสมบูรณ์

ในตำราเล่มแดง เขาบอกด้วยว่า สามารถใช้ร่วมกับ m4 ได้ด้วย ก็สะดวกไป แต่ต้องใช้ m4 เป็น

ในเครื่องของท่าน สมควรมีตัวอย่างให้ดูน่ะ ลองๆไล่ดูเอาเอง

ในเล่มแดง เขายกโปรแกรมที่ใช้บริการของ syslogd มาให้ดู เช่น
ftpd ใช้ facility daemon ที่ level เป็น err-debug และ
named ใช้ facility daemon และ level เป็น err-info

สำหรับการเขียนโปรแกรมด้วยนั้น ขอให้ติดต่อมาเป็นการส่วนตัวก็แล้วกัน แต่ถึงอย่างนั้น หากสนใจก็แวะไปดู แฟ้ม syslog.h ก่อนก็ได้ เพราะ[ซึ่ง]เรียกใช้เสมอ ไม่ว่าจะเป็น openlog(), syslog(), closelog()

ขอยุติไว้ตรงนี้ชั่วขณะหนึ่ง เพราะยังมีส่วนที่ต้องพูดกันถึงเรื่องการบันทึก ที่ พรบ. คอมพิวเตอร์ต้องการนั้น มันคืออะไร แล้วเราค่อยมาว่ากันอีกที แต่ตอนนี้

ขอขอบคุณที่อ่านมาจนถึงถ้อยคำนี้

Wednesday, August 18, 2010

syslog: The system events logger

commands
ต่อจาก ตอนแรก ที่หนุดไว้ตรง แฟ้มเอกสาร ที่ควบคุมพฤติกรรมการทำงานของ syslogd ที่เปรียบเสมือนเอกสารกำกับยา ที่ทุกคนที่รับยา พึงอ่าน

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


จากท้ายตอนที่แล้วที่พูดถึงรูปแบบของแฟ้ม /etc/syslog.conf ที่เป็นแฟ้มเอกสารพื้นๆ, plain text, โดยอยู่ในรูป
selector<Tab>action
นั้น ได้ย้ำว่า <Tab> นั้น คือปุ่ม Tab บนแป้นพิมพ์เท่านั้น จะเป็น space หรืออย่างอื่นไม่ได้โดยเด็ดขาด ก็ขอให้ระมัดระวังในประเด็นนี้ให้มากด้วย มัน ปจฺจตฺตํ วิญฺญูหิ น่ะ ให้ลองดูเอง โดยเฉพาะพวกที่นิยม cut & paste นั้นแหละ ปวดหัวตายเอาง่ายๆ เพราะ หาที่ผิดพลาดไม่เจอ

ตัว selector เองนั้นจะมีไวยากรณ์เป็น facility.level ตัวอย่างเช่น
mail.info                /var/log/maillog
จะมีผลให้ข่าวสารจากระบบอีเล็กทรอนิคส์เมล์ ส่งไปเก็บไว้ที่แฟ้ม /var/log/maillog

นั่นคือ selector โดยเนื้อแท้แล้วก็คือ โปรแกรม, facility, ที่ส่งข้อมูลข่าวสาร และ ระดับความรุนแรงของข้อมูลข่าวสาร, level, ในรูปดังกล่าวมาแล้ว ซึ่ง ทั้งคู่นี้, facility & level ต้องเป็นชื่อที่กำหนดไว้แล้วเท่านั้นเอง จะเขียน หรือ ผลิตมาเอามิได้เลย แลพอแยก facility ออกเป็นกลุ่มได้ดังนี้
  • กุล่มของ kernel
  • กลุ่มของโปรแกรมอรรถประโยชน์ทั่วไป
  • กลุ่มของโปรแกรมที่เขียนขึ้นมาสำหรับใช้งานประจำเครื่องนั้นๆ
  • กลุ่มอื่นๆนอกไปจากนี้แล้ว รวมๆเรียกว่า user
นอกจากนี้ selector ยังสามารถใช้อีก ๒ คำ คือ * และ none ที่หมายถึง ทุกอย่าง หรือ ไม่เลยสักอย่าง

facility สามารถมีได้หลายตัว แต่ละตัว แยกกันด้วย comma ขณะเดียวกัน selector เอง ก็สามารถมีได้หลายตัวด้วยเช่นกัน โดยแยกกันด้วย semi-colon

ทุกสิ่ง ทุกอย่าง ล้วนแต่เอามา OR กันทั้งนั้น ข้อมูลข่าวสารใดใด ที่มี selector ตรง กับที่กำหนดไว้ ก็จะถูกนำไปยัง หรือ ส่งไปที่ action นั้นนั้น ตัวอย่างของ facility ก็ได้แก่
  • kern
  • mail
  • daemon
  • auth
  • cron
  • mark
  • fpt
และตัวอย่างของ severity levels ก็ได้แก่
  • emerg
  • alert
  • crit
  • err
  • warning
  • notice
  • info
  • debug
ความหมายของแต่ละคำ ใคร่ขอรบกวนให้ท่านไปศึกษาเอาเองจากระบบของท่าน ยกตัวอย่างเช่น mark นั้น เขาเอาไว้สำหรับบันทึกวันเดือนปีเวลา ที่ช่วงระยะใดๆที่กำหนดไว้ล่วงหน้า ซึ่งอันนี้ มีประโยชน์มาก เพราะอย่างน้อยก็ทราบว่า ปัญหาเกิดขึ้นในช่วงเวลาใด มันแคบลงมามาก ซึ่งยังดีกว่าที่จะรู้ว่า มันเกิดขึ้นเมื่อคืนนี้ หากเราสามารถกำหนดได้ว่า เมื่อคืนนี้ ที่เกิดเรื่อง อยู่ระหว่างชั่วโมงไหน ดั่งนี้ เป็นต้น

ตำราเขาเล่าเรื่องขำขำแบบฝรั่งเอาไว้ว่า หลาย sites ทีเดียว ที่เกิดปัญหาลึกลับ เพราะเครืองมันดับเอากลางดึก ทุกคืน ต่อเมื่อสืบทราบความจริงจึงทราบว่า เป็นเพราะแม่บ้านทำความสะอาด เธอนำเครื่องดูดฝุ่นมาเสียบเข้ากับเต้าเสียบไฟฟ้า ที่ใช้ร่วมกันกับคอมพิวเตอร์ ผลน่ะหรือ ไฟฟ้าก็กระเพื่อมน่ะซี แล้วอีทีนี้ คอมพิวเตอร์ หรืออุปกรณ์พ่วงอื่นๆ ก็พลอยดับ หรือ ล่ม ไป ก็เท่านั้นเอง, (อยู่ในหน้า ๒๐๙ เล่มแดง)

Tuesday, August 17, 2010

syslog: The system events logger

commands
ต่อจาก ตอนก่อนหน้านี้น่ะ ยกยอดมาเลย ดูดีกว่า

syslog เป็นโปรแกรมที่จัดการข้อมูลทั้งจาก kernel และ โปรแกรมอรรถประโยชน์ของระบบ เขียนโดย Eric Allman จาก Berkeley โปรแกรมนี้ มีข้อดีที่สำคัญ ๒ ประการคือ
  1. ทำให้ผู้พัฒนาโปรแกรม เป็นอิสระจากความจำเป็นที่ต้องมีการบันทึก log และ
  2. เอื้ออำนวยให้ ผู้บริหารระบบสามารถควบคุมการเก็บ log ได้
ก่อนหน้านี้ ต่างคน ต่างมีอิสระในการบันทึก log ของตัวของตัวไป ผู้บริหารระบบ ไม่สามารถควบคุมได้ว่าข้อมูลอันใดที่จะเก็บไว้ หรือ สมควรเก็บไว้ และ จะเก็บไว้ที่ไหน

syslog มีความหยืดหยุ่นพอสมควร กล่าวคือสามารถเรียงลำดับข่าวสารจากแหล่งกำเนิด และ ความสำคัญ(รวมๆเรียกแบบเหมาโหลว่า severity [security ขออภัย คำนี้ คัดลอกมาผิดครับ ที่ถูกคือ ซิเวียริตี้] level) ได้ และเปิดช่องทางของข่าวสารอันนั้น ไปยังจุดหมายปลายทางใดใดได้ เช่นลง log หรือ บน terminal ของผู้ใช้งานเอง หรือ เครื่องอื่นๆ ก้ยังได้

ความสามารถในการที่จะเป็นศูนย์กลางการ log ข่าวสารของเครือข่ายนี้เอง เป็นคุณสมบัติเด่นอันหนึ่งของเขา

syslog ประกอบด้วยสามองค์ใหญ่ๆคือ
  1. syslogd และ /etc/syslog.conf ตัวโปรแกรมที่ดำเนินการบันทึก และ แฟ้มที่บ่งบอกพฤติกรรมของเขา
  2. openlog, syslog,closelog รูทีนสำคัญๆที่อยู่ใน library ที่ผู้พัฒนาโปรแกรมใช้สำหรับส่งข้อมูลไปให้กับ syslogd และ
  3. logger คำสั่งในระดับผู้ใช้งาน ที่สามารถเรียกใช้เพื่อส่ง log ต่างๆ

syslogd อยู่ที่ /usr/sbin ส่วน logger อยุ่ที่ /usr/bin และ syslog เป็นรูทีนใน library ที่เป็นส่วนหนึ่งของ C standard library.

การทำงาน จะเป็นลักษณะนี้ โดยที่แรกเริ่ม syslogd จะวิ่งเมื่อเปิดระบบปฏิบัติการ โปรแกรมที่ทำงานร่วมกับ syslog จะเขียน log ลงไปยังแฟ้มพิเศษ ชื่อ /dev/log ส่วน syslogd จะอ่านข่าวสารจากแฟ้มนี้ ปรึกษาแฟ้มที่กำหนดพฤติกรรมของเขา แล้วแยกกระจายไปยังปลายทางต่างๆ ตามที่กำหนดไว้. syslogd จะอ่านข่าวสารต่างๆจาก kernel ด้วยเช่นกัน โดยอ่านจากอุปกรณ์ /dev/klog

สัญญาณควบคุม HUP จะทำให้ syslogd ปิดแฟ้ม log อ่านแฟ้มที่ควบคุมพฤติกรรมของเขาใหม่อีกครั้งหนึ่ง และ เริ่มต้นการบันทึกอีกระลอกใหม่ นั่นก็หมายความว่า หากมีการเปลี่ยนแปลงใดใดกับแฟ้มควบคุมพฤติกรรมของ syslogd แล้ว ท่านต้อง ส่งสัญญาณ HUP ให้กับ syslogd เพื่อว่า การเปลี่ยนแปลงนั้นๆ จะมีผลบังคับใช้ สัญญาณควบคุม TERM จะเป็นการสั่งยุติการทำงานของ syslogd

syslogd เขาจัเขียน process ID, PID, ไว้ที่แฟ้ม /var/run/syslog.pid ดังนั้น จึงสะดวกมาก สำหรับการสั่ง หรือ ส่งสัญญาณ ไปยัง process นั้นๆ ดังนี้ (โปรดใช้ความละเอียดถี่ถ้วนเป็นอย่างยิ่ง)
kill   -1   `/bin/cat /var/run/syslog.pid`
สัญญาณส่งผ่านคำสั่ง kill โดยเป็น option ของคำสั่ง ตามรูปแบบที่นำเสนอนี้ 1 หรือ HUP คือสัญญาณดังกล่าว

การบีบอัด และโยกย้ายแฟ้ม log จาก syslogd โดยพละการนั้น ไม่ดี และผลเสียมากเกินคาดคิดเลยทีเดียว ปกติระบบจะมีโปรแกรมเล็กๆช่วยงานลักษระนี้อยู่แล้ว

ในลำดับถัดไปจะนำเสนอส่วนของการควบคุมพฤติกรรมของ syslogd ซึ่งก็คือรายละเอียดของแฟ้ม /etc/syslog.conf ซึ่งสาระของแฟ้มนี้เขียนขึ้นด้วยอักษรธรรมดาๆ ไม่ต้องการอะไรมาก โดยมีข้อกำหนดว่า บรรทัดว่างๆ กับ บรรทัดที่ขึ้นต้นด้วย # นั้น มันจะไม่สนใจ มันจะสนใจก็ต่อเมื่อ บรรทัดนั้นๆ อยู่ในรูปแบบดังนี้
selector<Tab>action
โดยที่ <Tab> คือปุ่ม Tab บนแป้นพิมพ์ของท่าน และเป็นปุ่ม Tab เพียงเท่านั้น จะเป็นอย่างอื่นไปเสียไม่ได้ สำหรับ selector และ action นั้น จะได้นำมาเล่าต่อไป๚

Friday, August 6, 2010

syslog: the system event logger

commands
จะขอต่อเรื่องของ system logging ให้ได้ แต่ก็อย่าหวังอะไรมากนัก



ในการดู หรืออ่าน log files ที่แนะไว้ สามารถทำให้ท่านตรวจสอบผลงานได้เป็นเบื้องต้น ตัวอย่างที่เห็นได้ชัดเจนคือ เมื่อท่านลง apache แล้วนั้น ท่านจะทราบได้อย่างไรว่า apache จะวิ่งได้จริง เพราะบางครั้ง ลำพังแค่ message จากหน้าจอว่า Syntax OK นั้น ไม่ได้หมายความว่าเขาจะวิ่งได้จริง เพราะ Syntax OK ก็หมายเอาแค่ สิ่งที่ apache ต้องการนั้น เรากำหนดไว้ครบ และสามารถหาความหมายได้ ซึ่งข้อความหลังนี้ อาจจะหาได้ หรือ หาไม่ได้ ก็เป็นได้ แต่ว่า apache เพียงดูว่า เรากำหนดไว้ให้หรือเปล่า เท่านั้น

ในการที่จะดูว่า apache วิ่งได้จริง หรือไม่วิ่งนั้น ทำได้โดยการเข้าไปอ่าน log files ทั้ง ๒ แฟ้ม เท่านั้นเอง เอ้า บอกกันไว้เลยตรงนี้ว่า log files อยู่ที่ไหน ก็ลองสั่งดูน่ะ
# grep ^ErrorLog /usr/local/etc/apache22/httpd.conf
จะได้แฟ้มที่เก็บความผิดพลาด ส่วนแฟ้มที่บันทึกทั่วๆไป ก็น่าจะเดาชื่อฟ้มออกได้น่ะ

แต่ว่า ที่กล่าวมาทั้งหมดนั้น เป็นเพียงการอ่าน log files ของโปรแกรมหนึ่งเท่านั้น เรื่องราวของระบบปฏิบัติการ ยังมีอีก ซึง่จะกล่าวถึงต่อไปเท่าที่สามารถรวบรวมได้

เรื่องราวต่อไปนี้ รวบรวมจากหนังสือ
  1. UNIX System Administration Handbook; Evi N., Garth S., Scott S., Trent R. H.; second edition ซึ่งฝรั่งเรียกว่า the Red book ในบทของ Syslog and Log Files
  2. ส่วนเล่ม the white book นั้นไม่มีเร่องนี้แยกมาพิเศษ จึงไม่อ้างถึง
  3. กับ FreeBSD Handbook และ manual page ในเรื่องที่เกี่ยวข้อง
และอีกครั้ง อย่าคาดหวังอะไรมากนัก เพราะเขียนขึ้นมาเล่นๆ ระบายอารมณ์

ระบบปฏิบัติการ โดยทั่วๆไปจะบันทึกผลลัพธ์ บันทึกรายงานต่างๆไว้ ที่เกิดขึ้นจากอรรถประโยชน์ทั้งหลายของระบบ ข้อมูลเหล่านี้มีประโยชน์ ในช่วงระยะเวลาหนึ่งๆเท่านั้น ที่จำต้องสรุป รวบรวมมาบีบอัด นำเข้าเก็บในคลัง หรืออาจจะต้องถึงขั้น โยนทิ้งไปเสีย ก็มี สาเหตุ เพราะเนื้อที่ที่เก็บ มีประโยชน์ในทางอื่นมากกว่า พูดตรงๆ เปลืองเนื้อที่ hard disk

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

ซีงิต ก็เช่นนี้แล

แทรกน่ะ พี่น้อง ขอแทรกรูปภาพไว้ก่อนว่า ที่ชะงักไปน่ะ เพราะเรื่องราวอันเนื่องมาจากรูปทั้งหลายนี่เอง
ด้วงแมง จอมใจ ดวงใจ ดวงดาวประดับท้องฟ้า ณ เบื้องทิศตะวันออกเฉียงเหนือ คริคริ

๏ ขอขอบคุณคุณครูภาษาไทย ของรายการช่อง dltv 7 ที่สอนนักเรียนผ่านทีวี ซึ่ง มะไฟ เผอิญได้ฟัง และหยุดฟังจนทำให้ต้องปรับปรุงภาษาไทยขึ้น
....นำถ้อยคำมาเรียงกัน ให้สื่อความหมาย ได้ใจความ สละสลวย มีสัมพันธภาพ มีสารัตถภาพ...
ขอกราบแทบเท้าคุณครูภาษาไทย ไว้ ณ ที่นี้ด้วย ๚

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 ไว้ตรงนี้ก่อนชั่วคราว ขอบคุณทุกท่านที่สละเวลาอ่าน ๚

View My Stats