Configuring RSYSLOG Server on RHEL6

Configuring RSYSLOG Server on RHEL6

একটি প্রোডাকশন নেটওয়ার্কে অসংখ্য নেটওয়ার্ক ডিভাইস যেমনঃ সুইচ, রাউটার, সার্ভার টার্মিনাল ওপেন করে এদের Log মনিটর করা ভাল কোন সমাধানও নয়। এই ধরণের সমস্যার সমাধান হিসেবে ব্যবহার করা যেতে পারে RSYSLOG সার্ভার। Syslog এমন এক ধরণের সার্ভার যার কাছে নেটওয়ার্কের সকল RSYSLOG ক্লায়েন্ট ডিভাইসসমূহ এদের নিজস্ব Log পাঠায়। RSYSLOG সার্ভার প্রাপ্ত Log সমূহ নিজের টার্মিনালে দেখায় এবং ভবিষ্যতের রেকর্ড হিসেবে সংরক্ষনও করে থাকে।

যখন Cisco ডিভাইসসমূহে Console/VTY পোর্টের মাধ্যমে কানেক্ট হয়ে কাজ করা হয় তখন ডিভাইসসমূহ বিভিন্ন সময়ে Log জেনারেট করে যা আমরা টার্মিনালে দেখতে পাই। এই Log সমূহ ডিভাইসের বাফারে জমা থাকে, এগুলোকে স্থায়ীভাবে সংরক্ষণ করা যায় না। কোন কারণে ডিভাইস রিবুট হলে Log গুলো হারিয়ে যায়। কিন্তু এক্ষেত্রে যদি আমরা RSYSLOG সার্ভার ব্যবহার করি তাহলে Log সমূহ সংরক্ষন করা সম্ভব এবং প্রয়োজনে পরবর্তীতে এ্যানালাইজ করা সম্ভব।
জেনারেট হওয়া Log সমূহের আটটি লেভেল রয়েছে। যেমনঃ
i.      Level 0: Emergencies
ii.     Level 1: Alerts
iii.     Level 2: Critical
iv.     Level 3: Errors
v.      Level 4: Warning
vi.    Level 5: Notification
vii.    Level 6: Informational
viii.   Level 7: Debugging
এই লেভেলসমূহকে Severity Level বলা হয়ে থাকে। লেভেলের ভ্যালু যত কম হবে লেভেলের গুরুত্ব তত বেশি হবে।

একটি Log Message এর তিনটি অংশ রয়েছে।
i. Timestamp
ii. Log Message Name and Severity Level
iii. Message Text
উদাহরণস্বরূপ একটি Syslog Message নিম্নরূপঃ

 

Configuring RSYSLOG Server

Red Hat 6 মেশিনে আমরা RSYSLOG সার্ভার ইন্সটল করবো। RSYSLOG এর পূর্ণরূপ হলো Rocket-fast System for Log Processing । এই RSYSLOG সার্ভারের মাধ্যমে বিভিন্ন ধরণের ডিভাইস থেকে Log রিসিভ করা যায়।
প্রথমে Red Hat মেশিনটিতে আমরা rsyslog প্যাকেজটি ইনস্টল করবো।
[root@rsyslog ~]# yum install rsyslog* -y
প্যাকেজ ইন্সটল করা শেষ হলে আমরা /etc/rsyslog.conf ফাইলের মধ্যে কয়েকটি লাইনকে নিচের মতো করে এডিট করবো। লাইনগুলো ফাইলের মধ্যে লেখাই থাকে, শুধুমাত্র লাইনের শুরুতে # ক্যারেক্টারটি তুলে দিতে হবে।
[root@rsyslog ~]# vi /etc/rsyslog.conf
# Provides UDP syslog reception
$ModLoad imudp.so
$UDPServerRun 514

# Provides TCP syslog reception
$ModLoad imtcp.so
$InputTCPServerRun 514
অতঃপর আমরা /etc/sysconfig/rsyslog ফাইলটিতে নিচের মতো করে একটি লাইন লিখে ফাইলটি সেভ করবো।
[root@rsyslog ~]# vi /etc/sysconfig/rsyslog
SYSLOGD_OPTIONS="-r -m 0"
ফাইলটি এডিট করা শেষ হলে আমরা rsyslog সার্ভিসটি স্টার্ট করবো
[root@rsyslog ~]# /etc/init.d/rsyslog start
Starting system logger: [ OK ]
[root@syslog ~]# chkconfig rsyslog on
যদি সার্ভারটিতে iptables সার্ভিস চলমান থাকে তাহলে সার্ভারটি যেন ক্লায়েন্ট ডিভাইসসমূহ থেকে Syslog Message গ্রহন করতে পারে সেজন্য আমরা TCP ও UDP 514 নম্বর পোর্টটিকে iptables এ Allow করবো এবং iptables সার্ভিসটি রিস্টার্ট দিব।
[root@rsyslog ~]# iptables -I INPUT -p tcp --dport 514 -j ACCEPT
[root@syslog ~]# iptables -I INPUT -p udp --dport 514 -j ACCEPT
[root@syslog ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
সবশেষে যে ক্লায়েন্ট ডিভাইসসমূহ সার্ভারের কাছে Log পাঠাবে সেই ডিভাইসসমূহের আই.পি এবং হোষ্টনেমগুলো আমরা সার্ভার মেশিনের /etc/hosts ফাইলের মধ্যে এন্ট্রি দিব। ফাইলটির মধ্যে সার্ভারের নিজের আই.পি এবং হোষ্টনেমও থাকবে।
[root@rsyslog ~]# vi /etc/hosts
192.168.10.5    rsyslog.example.com    server
192.168.10.11 router1.example.com router1
192.168.10.12 router2.example.com router2
192.168.10.13 www.example.com www
Cisco ডিভাইসসমূহকে কিভাবে RSYSLOG ক্লায়েন্ট হিসেবে কনফিগার করতে হয় তার একটি টিউটোরিয়াল নিচের লিংকে দেওয়া হলো।

 Configuring RSYSLOG Client on Cisco Devices

আমরা যখন নেটওয়ার্কে একটি RSYSLOG সার্ভার ও একটি RSYSLOG ক্লায়েন্ট কনফিগার করবো তখন ক্লায়েন্ট ডিভাইসটি এর জেনারেট হওয়া Log গুলো সার্ভারের কাছে পাঠাবে। এখন আমরা RSYSLOG সার্ভারের টার্মিনাল থেকে ক্লায়েন্টের বিভিন্ন Log দেখতে পারবো। এই Log গুলো বাই ডিফল্ট RSYSLOG সার্ভারের /var/log/message ফাইলের মধ্যে জমা হয়। আমরা যদি পুরো ফাইলের কনটেন্ট দেখতে চাই তাহলে cat /var/log/message কমান্ডটি ব্যবহার করতে হবে। আর যদি ফাইলে শেষ দশটি লাইন দেখতে চাই তাহলে নিচের কমান্ডটি দিতে হবে।
[root@rsyslog ~]# tail -f /var/log/messages
Sep 11 23:01:13 server rsyslogd: Warning: backward compatibility layer added to
following directive to rsyslog.conf: UDPServerRun (null)
Sep 11 23:01:13 server rsyslogd: Name or service not known
Sep 11 23:01:13 server rsyslogd: UDP message reception disabled due to error
logged in last message.
Sep 11 23:01:13 server rsyslogd: Warning: backward compatibility layer added to
following directive to rsyslog.conf: ModLoad imuxsock
Sep 11 23:03:14 router1.example.com 14: *Mar 1 00:09:07.747: %SYS-5-CONFIG_I:
Configured from console by console
Sep 11 23:03:47 router1.example.com 15: *Mar 1 00:09:40.563: %LINK-5-CHANGED:
Interface FastEthernet0/1, changed state to administratively down
Sep 11 23:03:47 router1.example.com 16: *Mar 1 00:09:41.563: %LINEPROTO-5-UPDOWN:
Line protocol on Interface FastEthernet0/1, changed state to down
Sep 11 23:04:06 router1.example.com 17: *Mar 1 00:10:00.215: %SYS-5-CONFIG_I:
Configured from console by console
Sep 11 23:08:11 router1.example.com 9: *Mar 1 00:00:14.651:
%SYS-6-LOGGINGHOST_STARTSTOP: Logging to host 192.168.10.5 started - CLI initiated
Sep 11 23:08:12 router1.example.com 10: *Mar 1 00:00:14.719: %LINK-3-UPDOWN:
Interface FastEthernet0/1, changed state to up
Sep 11 23:08:13 router1.example.com 11: *Mar 1 00:00:15.367: %LINEPROTO-5-UPDOWN:
Line protocol on Interface FastEthernet0/0, changed state to up
Sep 11 23:08:13 router1.example.com 12: *Mar 1 00:00:15.723: %LINEPROTO-5-UPDOWN:
Line protocol on Interface FastEthernet0/1, changed state to up
Sep 11 23:32:35 router1.example.com 13: *Mar 1 00:24:37.191: %SYS-5-CONFIG_I:
Configured from console by console
নেটওয়ার্কে যতগুলো RSYSLOG ক্লায়েন্ট ডিভাইস থাকবে ততগুলো ডিভাইসের Log ই FIFO এর ভিত্তিতে RSYSLOG সার্ভারের /var/log/message ফাইলের মধ্যে একের পর এক জমা হবে এবং আমরা তা দেখতে পারবো।
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s