লিনাক্সে রাইস্লগ সহ সেন্ট্রাল লগিং সার্ভার কীভাবে সেটআপ করবেন


লগগুলি কোনও সফ্টওয়্যার বা অপারেটিং সিস্টেমের একটি গুরুত্বপূর্ণ উপাদান। লগগুলি সাধারণত ব্যবহারকারীগুলির ক্রিয়া, সিস্টেম ইভেন্টগুলি, নেটওয়ার্ক ক্রিয়াকলাপ এবং আরও অনেক কিছু রেকর্ড করে, যার জন্য তার উদ্দেশ্য on লিনাক্স সিস্টেমে সর্বাধিক ব্যবহৃত লগিং সিস্টেমগুলির মধ্যে একটি হ'ল আরএসল্লগ।

রাইস্লগ একটি শক্তিশালী, সুরক্ষিত এবং উচ্চ-পারফরম্যান্স লগ প্রসেসিং সিস্টেম যা বিভিন্ন ধরণের উত্স (সিস্টেমস/অ্যাপ্লিকেশন) থেকে ডেটা গ্রহণ করে এবং এটিকে একাধিক ফর্ম্যাটে আউটপুট করে।

এটি নিয়মিত সিসলগ ডেমন থেকে সম্পূর্ণ বৈশিষ্ট্যযুক্ত, এন্টারপ্রাইজ স্তর লগিং সিস্টেমে বিবর্তিত হয়েছে। এটি একটি ক্লায়েন্ট/সার্ভার মডেলটিতে ডিজাইন করা হয়েছে, অতএব এটি ক্লায়েন্ট হিসাবে এবং/অথবা অন্যান্য সার্ভার, নেটওয়ার্ক ডিভাইস এবং দূরবর্তী অ্যাপ্লিকেশনগুলির জন্য কেন্দ্রীয় লগিং সার্ভার হিসাবে কনফিগার করা যায়।

এই গাইডের উদ্দেশ্যে, আমরা নিম্নলিখিত হোস্টগুলি ব্যবহার করব:

  • সার্ভার: 192.168.241.140
  • ক্লায়েন্ট: 172.31.21.58

রাইস্লাইগ সার্ভারটি কীভাবে ইনস্টল ও কনফিগার করবেন

বেশিরভাগ লিনাক্স ডিস্ট্রিবিউশনগুলি ইনস্টল করা আরএসস্লগ প্যাকেজ সহ আসে। যদি এটি ইনস্টল না করা থাকে তবে আপনি এটি প্রদর্শিত হিসাবে আপনার লিনাক্স প্যাকেজ ম্যানেজার সরঞ্জামটি ব্যবহার করে ইনস্টল করতে পারেন।

$ sudo yum update && yum install rsyslog 	#CentOS 7
$ sudo apt update && apt install rsyslog	#Ubuntu 16.04, 18.04

একবার rsyslog ইনস্টল হয়ে গেলে, আপনাকে এখনই পরিষেবাটি শুরু করতে হবে, এটি বুট-এ অটো-স্টার্ট করতে সক্ষম করতে হবে এবং এটি সিস্টেমটিটিএল কমান্ডের সাথে তার স্থিতি পরীক্ষা করবে।

$ sudo systemctl start rsyslog
$ sudo systemctl enable rsyslog
$ sudo systemctl status rsyslog

মূল rsyslog কনফিগারেশন ফাইলটি /etc/rsyslog.conf এ অবস্থিত, যা মডিউলগুলি লোড করে, বিশ্বব্যাপী নির্দেশিকা নির্ধারণ করে, লগ বার্তাগুলি প্রক্রিয়াকরণের নিয়ম ধারণ করে এবং এতে বিভিন্ন অ্যাপ্লিকেশন/পরিষেবাদির জন্য /etc/rsyslog.d/ এ সমস্ত কনফিগারেশন ফাইল অন্তর্ভুক্ত থাকে ।

$ sudo vim /etc/rsyslog.conf

ডিফল্টরূপে, সিস্টেমড জার্নাল থেকে কাঠামোগত লগ বার্তা আমদানি করার জন্য এবং ইউনিক্স সকেটের মাধ্যমে স্থানীয় সিস্টেমে চলমান অ্যাপ্লিকেশনগুলি থেকে যথাক্রমে সিসলগ বার্তাগুলি গ্রহণের জন্য আরএসজলগ ইজজার্নাল এবং ইমাসক মডিউলগুলি ব্যবহার করে।

নেটওয়ার্ক/সেন্ট্রাল লগিং সার্ভার হিসাবে আরএসস্লগকে কনফিগার করতে আপনাকে প্রোটোকল সেট করতে হবে (ইউডিপি বা টিসিপি বা উভয়ই) এটি রিমোট সিসলগ অভ্যর্থনার পাশাপাশি পোর্ট যা শুনবে তার জন্য ব্যবহার করবে।

আপনি যদি ইউডিপি সংযোগটি ব্যবহার করতে চান যা দ্রুত তবে অবিশ্বাস্য, নীচের লাইনগুলি অনুসন্ধান করুন এবং শঙ্কিত করুন (আপনি যে পোর্টটি শুনতে চান তার সাথে এটি 514 প্রতিস্থাপন করুন), এই পোর্টের ঠিকানার সাথে ক্লায়েন্টরা যে বার্তাগুলি প্রেরণ করবে এটি মিলবে, আমরা সন্ধান করব আরএসএসলগ ক্লায়েন্ট কনফিগার করার সময় এটিতে আরও)।

$ModLoad imudp
$UDPServerRun 514

টিসিপি সংযোগ (যা ধীর তবে আরও নির্ভরযোগ্য) ব্যবহার করতে, নীচের লাইনগুলি অনুসন্ধান করুন এবং অবিরাম করুন।

$ModLoad imtcp
$InputTCPServerRun 514

এই ক্ষেত্রে, আমরা একই সময়ে ইউডিপি এবং টিসিপি উভয় সংযোগ ব্যবহার করতে চাই।

এরপরে, আপনাকে নীচের ফর্ম্যাটে রিমোট লগগুলি প্রক্রিয়াকরণের জন্য নিয়ম সংজ্ঞা দিতে হবে।

facility.severity_level	destination (where to store log)

কোথায়:

  • সুবিধা: প্রসেস/অ্যাপ্লিকেশন উত্পন্ন বার্তার প্রকার, এগুলিতে অথ, ক্রোন, ডিমন, কার্নেল, স্থানীয়0..local7 অন্তর্ভুক্ত। * ব্যবহারের অর্থ সমস্ত সুবিধা
  • তীব্রতা_সীমা: লগ বার্তার প্রকার: ইমার্গ -0, সতর্কতা -1, সমালোচক -2, ত্রুটি -3, সতর্কতা -4, নোটিশ -5, তথ্য -6, ডিবাগ -7। * ব্যবহারের অর্থ সমস্ত তীব্রতা স্তর এবং কোনওটিই তীব্রতার স্তরকে বোঝায় না
  • গন্তব্য: হয় স্থানীয় ফাইল বা রিমোট আরএসল্লগ সার্ভার (ফর্ম আইপি: পোর্টে সংজ্ঞায়িত)

আমরা রিমোটলগস টেম্পলেট ব্যবহার করে দূরবর্তী হোস্টগুলি থেকে লগ সংগ্রহ করার জন্য নিম্নলিখিত নিয়মকোষটি ব্যবহার করব। নোট করুন যে স্থানীয় বার্তাগুলি প্রক্রিয়াকরণের জন্য কোনও নিয়মের আগে এই নিয়মগুলি অবশ্যই আসবে, স্ক্রিনশটে দেখানো হয়েছে।

$template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log"
*.* ?RemoteLogs 
& ~

উপরের রুলসেটটি দেখে প্রথম নিয়মটি হ'ল "$টেমপ্লেট রিমোটলগস,"/ভের/লগ /% হোস্টনেম% /% প্রোগ্রামনাম% .লগ ""।

নির্দেশিকা $টেমপ্লেটটি হোস্টনেম (ক্লায়েন্ট মেশিনের নাম) এবং রিমোট ক্লায়েন্ট সুবিধা (প্রোগ্রাম/অ্যাপ্লিকেশন) এর উপর ভিত্তি করে প্রাপ্ত সমস্ত রিমোট বার্তাগুলি/var/লগের অধীনে স্বতন্ত্র লগগুলিতে সংগ্রহ এবং লিখতে বলে যা বার্তা সংজ্ঞায়িত হিসাবে তৈরি করে টেমপ্লেট রিমোটলগগুলিতে উপস্থিত সেটিংস দ্বারা।

দ্বিতীয় লাইনটি "*। *? রিমোটলগস" এর অর্থ রিমোটলগস টেম্পলেট কনফিগারেশন ব্যবহার করে সমস্ত তীব্রতার স্তরে সমস্ত সুবিধা থেকে রেকর্ড বার্তা।

চূড়ান্ত লাইন "& ~" বার্তাটি কোনও ফাইলে লেখা হয়ে গেলে প্রক্রিয়া বন্ধ করতে রাইস্লগকে নির্দেশ দেয়। আপনি যদি "& ~" অন্তর্ভুক্ত না করেন তবে বার্তাটি স্থানীয় ফাইলগুলিতে লেখা হবে।

আরও অনেক টেম্পলেট রয়েছে যা আপনি ব্যবহার করতে পারেন আরও তথ্যের জন্য, rsyslog কনফিগারেশন ম্যান পৃষ্ঠা (man rsyslog.conf) দেখুন বা Rsyslog অনলাইন ডকুমেন্টেশন দেখুন।

আরএসএসলগ সার্ভারটি কনফিগার করার সাথে এটিই। কনফিগারেশন ফাইলটি সংরক্ষণ এবং বন্ধ করুন। সাম্প্রতিক পরিবর্তনগুলি প্রয়োগ করতে, নিম্নলিখিত কমান্ডটি দিয়ে আরএসস্লগ ডেমন পুনরায় চালু করুন।

$ sudo systemctl restart rsyslog

এখন আরএসল্লগ নেটওয়ার্ক সকেট যাচাই করুন। এস এস কমান্ডটি ব্যবহার করুন (বা আরএসএসলগড সংযোগগুলি ফিল্টার করার জন্য গ্রেপ)।

$ sudo ss -tulnp | grep "rsyslog"

এরপরে, CentOS 7 এ, আপনি যদি সেলইনাক্স সক্ষম করে থাকেন তবে, সকেট টাইপের উপর ভিত্তি করে আরএসস্লগ ট্র্যাফিকের অনুমতি দেওয়ার জন্য নিম্নলিখিত কমান্ডগুলি চালান।

$ sudo semanage -a -t syslogd_port_t -p udp 514
$ sudo semanage -a -t syslogd_port_t -p tcp 514 

যদি সিস্টেমে ফায়ারওয়াল সক্ষম করা থাকে তবে চলমান হয়ে, আরএসস্লগ সার্ভারে ইউডিপি/টিসিপি উভয় সংযোগের অনুমতি দেওয়ার জন্য আপনাকে 514 পোর্টটি খুলতে হবে।

------------- On CentOS ------------- 
$ sudo firewall-cmd --permanent --add-port=514/udp
$ sudo firewall-cmd --permanent --add-port=514/tcp
$ sudo firewall-cmd --reload

------------- On Ubuntu -------------
$ sudo ufw allow 514/udp
$ sudo ufw allow 514/tcp
$ sudo ufw reload 

রাইস্লাইগ সার্ভারে লগগুলি প্রেরণে রাইস্লাইগ ক্লায়েন্ট কীভাবে কনফিগার করবেন

এখন ক্লায়েন্ট সিস্টেমে, নিম্নলিখিত কমান্ডটি দিয়ে আরএসস্লগ পরিষেবা চলছে কিনা তা পরীক্ষা করে দেখুন।

$ sudo systemctl status rsyslog

যদি এটি ইনস্টল না করা থাকে তবে এটি ইনস্টল করুন এবং পূর্বে প্রদর্শিত হিসাবে পরিষেবাটি শুরু করুন।

$ sudo yum update && yum install rsyslog 	#CentOS 7
$ sudo apt update && apt install rsyslog	#Ubuntu 16.04, 18.04
$ sudo systemctl start rsyslog
$ sudo systemctl enable rsyslog
$ sudo systemctl status rsyslog

একবার rsyslog পরিষেবা চালু হয়ে চলে যাওয়ার পরে, মূল কনফিগারেশন ফাইলটি খুলুন যেখানে আপনি ডিফল্ট কনফিগারেশনটিতে পরিবর্তনগুলি সম্পাদন করবেন।

$ sudo vim /etc/rsyslog.conf

আরএসস্লগ ডেমনকে একটি লগ ক্লায়েন্ট হিসাবে কাজ করতে এবং স্থানীয়ভাবে উত্পন্ন সমস্ত লগ বার্তাগুলি দূরবর্তী আরএসস্লগ সার্ভারে ফরওয়ার্ড করার জন্য, নিম্নলিখিত স্ক্রিনশটটিতে প্রদর্শিত ফাইলের শেষে এই ফরোয়ার্ডিং বিধি যুক্ত করুন।

*. *  @@192.168.100.10:514

উপরের নিয়মটি সমস্ত সুবিধা থেকে এবং সমস্ত তীব্রতার স্তরে বার্তা প্রেরণ করবে। উদাহরণস্বরূপ লেখকের জন্য একটি নির্দিষ্ট সুবিধা থেকে বার্তা প্রেরণ করতে, নীচের নিয়মটি ব্যবহার করুন।

auth. *  @@192.168.100.10:514

পরিবর্তনগুলি সংরক্ষণ করুন এবং কনফিগারেশন ফাইলটি বন্ধ করুন। উপরের সেটিংস প্রয়োগ করতে, আরএসস্লগ ডেমন পুনরায় চালু করুন।

$ sudo systemctl restart rsyslog

কিভাবে রাইস্লগ সার্ভারে রিমোট লগিং পর্যবেক্ষণ করবেন

চূড়ান্ত পদক্ষেপটি হ'ল নেম/প্রোগ্রামনাম.লগ ফর্মের মধ্যে, আরএসএসলগটি ক্লায়েন্টের থেকে/var/লগের অধীনে, বার্তা প্রাপ্ত এবং লগ করছে কিনা তা যাচাই করা।

প্যারেন্ট লগ ডিরেক্টরিতে দীর্ঘ তালিকাতে একটি ls কমান্ড চালান এবং ip-172.31.21.58 (বা আপনার ক্লায়েন্ট মেশিনের হোস্টনাম যাই হোক না কেন) নামে কোনও ডিরেক্টরি আছে কিনা তা পরীক্ষা করুন।

 
$ ls -l /var/log/

ডিরেক্টরি যদি বিদ্যমান থাকে তবে চালিয়ে এইটির ভিতরে থাকা লগ ফাইলগুলি পরীক্ষা করে দেখুন।

$ sudo ls -l /var/log/ip-172-31-21-58/

রাইস্প্লগ একটি উচ্চ-পারফরম্যান্স লগ প্রসেসিং সিস্টেম যা ক্লায়েন্ট/সার্ভার আর্কিটেকচারে নকশাকৃত। আমরা আশা করি আপনি কেন্দ্রীয়/নেটওয়ার্ক লগিং সার্ভার এবং এই নির্দেশিকাতে প্রদর্শিত গ্রাহক হিসাবে রাইস্লগ ইনস্টল ও কনফিগার করতে সক্ষম হবেন।

আপনি আরও সহায়তার জন্য প্রাসঙ্গিক rsyslog ম্যানুয়াল পৃষ্ঠাগুলি উল্লেখ করতে চাইতে পারেন। আমাদের কোনও মতামত দিতে বা প্রশ্ন জিজ্ঞাসা করতে নির্দ্বিধায়।