rsyslog คือ syslog ทีได้รับการปรับปรุงให้มีประสิทธิภาพในการทํางานทีมากขึน มี
รูปแบบการใช้งานทีหลากหลาย อีกทังยังสามารถใช้โปรโตคอล TCP ในการรับส่งข้อมูล log files และรองรับการส่งข้อมูล log files แบบเข้ารหัส ซีงระบบปฏิบัติการลินุกซ์รุ่นใหม่ๆ เช่น Redhat, Fedora และ Centos เปลียนใช้ rsyslog แทน syslogd เดิม โดย rsyslog เป็นโปรแกรมทีพัฒนาจาก syslogd ซึงเป็นกลไกในการเก็บข้อมูล log files ของ kernel และ application บนระบบยูนิกซ์และลิ- นุกซ์ เป็น daemon ทีถูกติดตังมาให้พร้อมกับระบบปฏิบัติการในเกือบทุกระบบ โดยผู้ดูแลระบบ สามารถปรับแต่งไฟล์ กําหนดค่าเพือควบคุมการทํางานของ rsyslog ได้ เช่น ให้ rsyslog เก็บข้อมูล ไปไว้ทีไฟล์ใดหรือให้ส่งข้อมูล log files ไปเก็บไว้ยังเครืองคอมพิวเตอร์อืนในเครือข่าย สําหรับ
ข้อมูล log files ทีควบคุมโดย rsyslog หรือ syslogd นันจะถูกกําหนดให้มีค่า facility และ Severity โดยส่วนของค่า facility นันเป็นข้อมูลทีอธิบายถึงแหล่งกําเนิดของข้อมูล log files นันๆ เช่น ข้อมูล log files ทีส่งมาจากระบบเมล์มีค่า Facility เป็น mail ส่วนค่า Severity นันแสดงถึงระดับ ความสําคัญของเหตุการณ์ทีเกิดขึน ข้อมูล log files ทุกชุดจําเป็นต้องมีค่า Severity และ Facility [13] เสนอดังตารางที 2.2 และ ตารางที 2.3
ตารางที 2.2 แสดงค่า Severity [13]
Severity
Numerical Code Severity Description
0 emerg system is unusable
1 alert action must be taken immediately
2 crit critical conditions
3 error error conditions
4 warning warning conditions
5 notice normal but significant condition
6 info informational messages
7 debug debug-level messages
ตารางที 2.3 แสดงค่า Facility [13]
Numerical Code Facility Description
0 kern kernel messages
1 user user-level messages
2 mail mail system
3 daemon system daemons
4 auth security/authorization messages
5 syslog messages generated internally by syslogd
6 lpr line printer subsystem
7 news network news subsystem
ตารางที 2.3 แสดงค่า Facility (ต่อ)
Numerical Code Facility Description
8 uucp UUCP subsystem
9 cron clock daemon
10 security security/authorization messages
11 ftp FTP daemon
12 ntp NTP subsystem
13 logaudit log audit
14 logalert log alert
15 clock clock daemon (note 2)
16-23 Local 0-7 local use 0-7 (local0-7)
การทํางานของ rsyslog นันจะขึนอยู่กับไฟล์ /etc/rsyslog.conf เป็นหลัก การแก้ไขค่า config ทีเกิดกับไฟล์นี จะยังไม่มีผลจนกว่าจะทําการ restart rsyslogd service รูปแบบคําสังมีดังนี
facility.level action
facility, facility.level action
facility1.level1; facility2.level2 action
*.level action
*.level;badfaility.none action
หมายความว่า เมือมีข้อมูล log files ทีมีค่า Facility และ level ทีตรงหรือมากกว่ากับค่าที
กําหนด ระบบจะกระทํา action ตามทีกําหนดไว้ ทังนี เพราะ level ทีตังไว้นันเป็นค่า minimum ซึง หมายความว่า หากกําหนด level เป็น debug ก็จะครอบคลุมทุก level ของ facility นัน ๆ ด้วย สามารถใช้เครืองหมาย * แทนทุก ๆ ค่าใน Facility หรือ Severity level นัน เช่น auth.*
/var/log/auth หมายความว่า ให้ rsyslog เก็บข้อมูลของ auth ทุก level ไฟยังไฟล์ /var/log/auth ในขณะทีค่า level ทีเป็น none นัน หมายความว่าไม่สนใจค่า Facility ทีประกาศค่า level เป็น none เช่น *.emerg;mail.none /var/log/emer.log คือให้เก็บข้อมูล logs file ทีมี level เป็น emerg ทุกกรณี
ยกเว้น mail facility สําหรับ action นันสามารถเลือกได้ดังนี คือ filename: เก็บข้อมูลล็อกลงในไฟล์ทีกําหนด
@hostname : ส่งต่อข้อมูล log filesไปยัง rsyslog บน host ทีกําหนด @ipaddress: ส่งต่อข้อมูล log files ไปยัง host ทีมี IP Address ทีกําหนด
rsyslog สามารถแก้ไขข้อบกพร่องส่วนใหญ่ของ syslog โดย rsyslog สามารถทํางานได้
ทังโปรโตคอล TCP และ UDP และลักษณะรูปแบบการทํางานทีอ้างอิงค่า Severity/ Facility ได้
ดังนันจึงสามารถใช้งานแทน syslog ได้ นอกจากนี rsyslog ยังสนับสนุน log forwarding ซึงทําให้
สามารถทราบว่าต้นทางของ log files ถูกส่งมาจากเครืองใด โดยสรุป rsyslog เป็นโปรแกรมทีมี
ความยืดหยุ่นในการทํางาน เหมาะสําหรับนํามาติดตังเป็น Syslog Server เพราะสามารถเก็บข้อมูล log files แยกตามเครืองทีส่ง log files นอกจากนียังทํางานร่วมกับโปรแกรม rsyslog-mysql เพือนํา ข้อมูล log files บันทึกลงฐานข้อมูลได้ [12]