การติดตั้ง RSYSLOG บน CentOS 8

RSYSLOG เป็น Log Server ฟรีตัวหนึ่งที่นิยมใช้กันอย่างแพร่หลายในการทำ Log Server ในบทความนี้ เราจะมาดูวิธีการติดตั้ง RSYSLOG บน CentOS 8 กัน แต่ก่อนอื่น ต้อง Setup LAMP Stack ให้เรียบร้อยก่อน สามารถเข้าไปดูวิธีการได้ที่ลิ้งนี้ได้เลย http://www.ablenet.co.th/2021/06/28/lamp-stack/

ถ้าติดตั้งเรียบร้อยแล้ว มาลุยกันได้เลย

Step 0 : ติดตั้ง package nettool เพื่อใช้งานคำสั่งเบื้องต้น เช่น  netstat , ifconfig

yum install net-tools*

Step 1 : ติดตั้ง rsyslog

yum install rsyslog

Step 2 : Restart และ สั่งให้ rsyslog ทำงานเมื่อ CentOS Power ON

systemctl restart rsyslog
systemctl enable rsyslog

Step 4 : ทดสอบ ส่ง Log ไปที่ rsyslog โดย Default ไฟล์ จะถูกเก็บอยู่ที่ /var/log/messages

** tail -f คือ การเปิดอ่านไฟล์แบบ Railtime

cd /var/log/messages
logger "test rsyslog"
tail -f /var/log/messages

Step 5 : เปิด Port TCP/UDP เพื่อรับไฟล์จากเครื่อง Client

เข้าไปแก้ที่ไฟล์ rsyslog.conf -> /etc/rsyslog.conf

vi /etc/rsyslog.conf

ลบ Comment ที่บรรทัดที่ 19,20,24,25

Restart rsyslog

systemctl restart rsyslog

Step 6 : ตรวจสอบ Port ที่เราเปิด ใน Step ที่ 5

netstat -tuanp | grep rsyslog

Step 7 : ทดสอบส่ง Log มาที่ rsyslog โดยใช้ Kiwi syslog generator

สามารถดาวน์โหลดได้ที่ > Link <

Step 7.1 สั่งอ่านไฟล์ messages แบบ Rail Time

tail -f /var/log/messages 

Step 7.2 เปิดโปรแกรม Kiwi Syslog Genterator และตั้งค่าและกด ส่ง Log มาที่ rsyslog

Step 7.3 ตรวจสอบค่าบนไฟล์ messages

Step 8 : Connect rsyslog with database

Step 8.1 ติดตั้ง Package : rsyslog-mysql

yum install rsyslog-mysql

Step 8.2 ทำการ Copy database template to MariaDB database

cd /usr/share/doc/rsyslog/
mysql -u root -p < mysql-createDB.sql 

Step 8.3 : ตรวจสอบ Database และสร้าง User ในการเข้าถึง Database rsyslog

mysql -u root - p
show databases;
GRANT ALL ON Syslog.* TO 'rsyslog'@'%' IDENTIFIED BY 'Password';

Step 9 : Import syslog data  to Database

Step 9.1 : เข้าไปเพิิ่ม Config ในไฟล์ rsyslog.conf

vi /etc/rsyslog.conf

เพิ่มข้อมูลที่บรรทัด 38 , 39

module(load="ommysql")
*.* :ommysql:localhost,Syslog,rsyslog,Password

Step 9.2 : การตรวจสอบ Database

mysql -u rsyslog -p
show databases;
use Syslog
show tables;
desc SystemEvents;
select ReceivedAt,Facility,Priority,FromHost,Message from SystemEvents;

จะเห็นว่า Data จาก rsyslog ถูก import เข้ามาที่ Database เรียบร้อย