File Log ในระบบ Linux
เราจะต้องมีไฟล์ที่จะบันทึกการทำงานเพื่อใช้ในการตรวจสอบการทำงานและใช้เพื่อหาความผิดปกติที่เกิดขึ้นจากระบบRsyslog มาจากคำว่า "The rocket-fast system for log processing"
Rsyslog เป็น Open Source ในระบบปฏิบัติการ UNIX และ Unix-like ใช้สำหรับส่งข้อมูล Log ผ่านทาง network
อ้างอิงจาก: https://www.rsyslog.com/, https://en.wikipedia.org/wiki/Rsyslog
Syslog
ใน syslog จะประกอบด้วย 3 ส่วน Facility, Priority และ Action โดยจากเขียนในรูปแบบตามนี้Facility.Priority;Facility.Priority Action (; แทน และ)
Facility,Facility.Priority Action (, แทน หรือ)
Facility จะระบบที่มาของ log ที่มาจาก subsystem มีตัวเลขกำกับด้วย เช่น
0 - kern (kernel messages)
1 - user (user-level message)
2 - mail (mail system)
3 - daemon (system daemons)
4 - auth (security/authorization message)
5 - syslog (messages generated internally by syslogd)
6 - lpr (line printer subsystem)
7 - news (network news subsystem)
8 - uucp (UUCP subsystem)
9 - cron (clock deamon)
10 - authpriv (security/authorization message)
11 - ftp (FTP daemon)
12 - ntp (NTP subsystem)
13 - logaudit (log audit)
14 - logalert (log alert)
15 - clock (clock daemon)
16 - 23 - local0 - local7 (local user 0 - local user 7)
Priority ระดับความสำคัญของ log
0 - emerg (Emergency)
1 - alert (Alert)
2 - crit (Critical)
3 - error (Error)
4 - warning (Warning)
5 - notice (Notice)
6 - info (Infomation)
7 - debug (Debug)
อ้างอิงจาก: https://wiki.archlinux.org/index.php/rsyslog
การ Select log จะอยู่ในรูปแบบ Facility.Priority และมีเครื่องหมายอื่น ๆ อยู่ด้วย เช่น
auth.* หมายถึงเอาทุก priority ของ facility auth (* หมายถึง any)
auth,mail.* หมายถึงเอา facility auth และ facility mail ทุก priority (, หมายถึง or)
*.info หมายถึงเอาทุก facility ที่ priority info และสูงกว่าจะได้ info ขึ้นไปถึง emerg
*.=info หมายถึงเอาทุก facility ที่ priority info เท่านั้น (= หมายถึง equal)
*.!=info หมายถึงเอาทุก facility ทุก priority ยกเว้น info เท่านั้น (!= หมายถึง not equal)
*.!info หมายถึงเอาทุก facility ที่ priority สูงกว่า info จะได้ notice ขึ้นไปถึง emerg (! หมายถึง not equal and not lower than)
Action ที่จะได้ทำอะไร
/path/of/some/file - เขียนลง File
/dev/console - แสดงยัง console
/dev/ttyX - แสดงยัง tty อื่น
username1[,username2 ...] - ส่งไปยัง user
* - ส่งไปทุก user
remote host - @log.example.com (ส่งไปที่ server ผ่าน UDP)
remote host - @@log.example.com (ส่งไปที่ server ผ่าน TCP)
ตัวอย่างการ Config
auth,authpriv.* /var/log/auth.log - เอาจาก auth หรือ authpriv เอามาทุก priority เก็บที่ File /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog เอาทุก facility ยกเว้น auth หรือ authpriv เก็บที่ File /var/log/syslog
- หมายถึง 'Don't sysnc after every write to the file'
การติดตั้ง rsyslog และเช็ค status การทำงาน
การ Config ค่า - Server
File ที่ใช้ในการ Config ชื่อ rsyslog.conf จะอยู่ที่ /etc/rsyslog.conf โดยจะทำการตั้งค่าให้สามารถส่งข้อมูล log เข้ามายังเครื่อง server ได้ทำการเปิดใช้งาน TCP Port 514 ให้สามารถรับ log ได้
โดยทำการลบ # เพื่อเปิดการทำงาน module(load="imtcp") และ input(type="imtcp" port="514")
เมื่อแก้ไขแล้วทำการบันทึกไฟล์ และ สั่ง restart rsylog และ ทำการตรวจสอบการทำงาน
การ Config ค่า - Client
ทดสอบ rsyslog สามารถเชื่อมต่อกับเครื่อง server ได้หรือไม่ โดยคำสั่ง telnet 172.168.0.10 514 (เครื่อง rsyslog server)หากเชื่อมต่อสำเร็จ จะขึ้นคำว่า Connected to 172.168.0.10 เรียบร้อยแล้วให้เรา ออกโดยการกดปุ่ม Ctrl + ] หรือ Ctrl + 5 และพิมพ์ quit เพือทำการออกจาก telnet
เปิดไฟล์ /etc/rsyslog.conf ทำการตั้งค่าการส่งเป็น *.debug ไปยังเครื่อง rsyslog-server บันทึกไฟล์และทำการ restart rsyslog
ตรวจสอบหา Log ที่ส่งมาจาก Client
เปิดอ่านไฟล์ /var/log/auth.log ที่เครื่อง server เพื่อหา log จากเครื่อง client ที่ส่งมายัง server ว่าสำเร็จหรือไม่ใน auth.log เราจะเห็นว่ามีทั้ง rsyslog-server และ rsyslog-client ในไฟล์เดียวกันแสดงว่า log จากเครื่อง client สามารถส่งเข้ามายัง server ได้สำเร็จ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น