কীভাবে সিস্টেম লগগুলি পরিচালনা করবেন (কনফিগার করুন, ঘোরান এবং ডেটাবেসগুলিতে আমদানি করুন) - পার্ট 5


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

আরএইচএল In-তে, সিস্টেম লগ করার জন্য আরএসআইস্লগড ডিমন দায়বদ্ধ এবং এটির কনফিগারেশনটি /etc/rsyslog.conf থেকে পড়ে (এই ফাইলটি সমস্ত সিস্টেম লগের জন্য ডিফল্ট অবস্থান নির্দিষ্ট করে) এবং /etc/rsyslog.d এর ভিতরে থাকা ফাইলগুলি থেকে, যদি থাকে তবে।

Rsyslogd কনফিগারেশন

Rsyslog.conf এর একটি দ্রুত পরিদর্শন শুরু করতে সহায়ক হবে। এই ফাইলটি 3 টি প্রধান বিভাগে বিভক্ত করা হয়েছে: মডিউলগুলি (যেহেতু rsyslog একটি মডিউল ডিজাইন অনুসরণ করে), গ্লোবাল নির্দেশিকা (আরএসস্লগড ডেমনের বিশ্বব্যাপী বৈশিষ্ট্য নির্ধারণ করতে ব্যবহৃত হয়) এবং বিধিগুলি। আপনি সম্ভবত অনুমান করবেন, এই শেষ বিভাগটি লগড বা প্রদর্শিত (যা নির্বাচক হিসাবে পরিচিত) এবং কোথায় রয়েছে তাও নির্দেশ করে এবং এই নিবন্ধ জুড়ে আমাদের দৃষ্টি নিবদ্ধ থাকবে।

Rsyslog.conf এ একটি সাধারণ লাইন নিম্নরূপ:

উপরের চিত্রটিতে আমরা দেখতে পাচ্ছি যে কোনও নির্বাচক এক বা একাধিক জুটি সমন্বিত করে থাকে সুবিধা: সেমিকোলন দ্বারা পৃথকীকৃত অগ্রাধিকার, যেখানে সুবিধাটি বার্তার প্রকারের বর্ণনা দেয় (এর জন্য উপলব্ধ সুবিধাগুলির সম্পূর্ণ তালিকা দেখতে আরএফসি 3164 এর বিভাগ 4.1.1 দেখুন। rsyslog) এবং অগ্রাধিকার তার তীব্রতা নির্দেশ করে, যা নিম্নলিখিত স্ব-ব্যাখ্যামূলক শব্দগুলির মধ্যে একটি হতে পারে:

  1. ডিবাগ
  2. তথ্য
  3. বিজ্ঞপ্তি
  4. সতর্কতা
  5. ভুল
  6. সমালোচক
  7. সতর্কতা
  8. উদীয়মান

যদিও এটি নিজেই একটি অগ্রাধিকার নয়, মূলশব্দটির অর্থ কোনওটিই প্রদত্ত সুবিধাদিতে অগ্রাধিকার নয়।

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

তাদের সবার জন্য একই অগ্রাধিকার প্রয়োগ করতে আপনি কোলন চিহ্ন ব্যবহার করে একাধিক সুবিধাও গোষ্ঠীভুক্ত করতে পারেন। সুতরাং, লাইন:

*.info;mail.none;authpriv.none;cron.none                /var/log/messages

হিসাবে আবার লিখতে পারে

*.info;mail,authpriv,cron.none                /var/log/messages

অন্য কথায়, সুবিধাগুলি মেল, অথপ্রিভ এবং ক্রোন গোষ্ঠীভুক্ত করা হয়েছে এবং কীওয়ার্ড কিছুই তাদের তিনটির ক্ষেত্রে প্রয়োগ করা হয়নি।

সমস্ত ডিমন মেসেজগুলি /var/log/tecmint.log- এ লগ করতে আমাদের নীচের লাইনটি হয় আরএসিসলগ.কনফ অথবা /etc/rsyslog.d এর মধ্যে একটি পৃথক ফাইলে (পরিচালনা করা সহজ) যুক্ত করতে হবে:

daemon.*    /var/log/tecmint.log

চলুন ডেমন পুনরায় চালু করা যাক (নোট করুন যে পরিষেবার নামটি ডি দিয়ে শেষ হবে না):

# systemctl restart rsyslog

এবং দুটি এলোমেলো ডেমন পুনরায় চালু করার আগে এবং পরে আমাদের কাস্টম লগের সামগ্রীগুলি পরীক্ষা করুন:

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

লোগ্রোটেট ব্যবহার করে লগগুলি ঘোরানো

লগ ফাইলগুলি অবিরাম বর্ধমান থেকে রোধ করতে লোগ্রোটেট ইউটিলিটিটি লগগুলি ঘোরানো, সংক্ষেপণ, অপসারণ এবং মেল করতে ব্যবহৃত হয়, ফলে প্রচুর সংখ্যক লগ ফাইল উত্পন্ন সিস্টেমগুলির পরিচালনা সহজ হয়।

লোগ্রোটেট ক্রোন জব (/etc/cron.daily/logrotate) হিসাবে প্রতিদিন চলে এবং এর কনফিগারেশনটি /etc/logrotate.conf থেকে এবং /etc/logrotate.d এ থাকা ফাইলগুলি থেকে পড়তে পারে, যদি থাকে তবে।

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

আসুন আমরা একটি সাধারণ লোগ্রোটেট.কমকে একবার দেখে নিই:

উপরের উদাহরণে লোগ্রোটেট/var/loh/wtmp এর জন্য নিম্নলিখিত ক্রিয়া সম্পাদন করবে: মাসে মাত্র একবার ঘোরানোর চেষ্টা করা হবে তবে কেবল ফাইলটি কমপক্ষে 1 এমবি আকারের হলেই অনুমতি সেট করে একটি ব্র্যান্ড নতুন লগ ফাইল তৈরি করুন 0664 এ এবং মালিকানা ব্যবহারকারী রুট এবং গোষ্ঠী utmp এ দেওয়া। এরপরে, ঘোরানো নির্দেশ অনুসারে কেবল একটি সংরক্ষণাগারযুক্ত লগ রাখুন:

আসুন এখন /etc/logrotate.d/httpd তে পাওয়া অন্য উদাহরণটি বিবেচনা করুন:

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

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

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

টিউটোরিয়ালটির এই বিভাগটি ধরে নেওয়া হয়েছে যে আপনি ইতিমধ্যে একই RHEL 7 বাক্সে মারিয়াডিবি সার্ভার এবং ক্লায়েন্ট ইনস্টল করেছেন যেখানে লগগুলি পরিচালনা করা হচ্ছে:

# yum update && yum install mariadb mariadb-server mariadb-client rsyslog-mysql
# systemctl enable mariadb && systemctl start mariadb

তারপরে মূল ব্যবহারকারী এবং অন্যান্য সুরক্ষার বিবেচনার জন্য পাসওয়ার্ড সেট করতে mysql_secure_installation ইউটিলিটিটি ব্যবহার করুন:

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

এরপরে, গিটহাব থেকে createDB.sql স্ক্রিপ্টটি ডাউনলোড করুন এবং এটি আপনার ডাটাবেস সার্ভারে আমদানি করুন:

# mysql -u root -p < createDB.sql

অবশেষে, /etc/rsyslog.conf এ নিম্নলিখিত লাইনগুলি যুক্ত করুন:

$ModLoad ommysql
$ActionOmmysqlServerPort 3306
*.* :ommysql:localhost,Syslog,root,YourPasswordHere

আরএসএসলগ এবং ডাটাবেস সার্ভার পুনরায় চালু করুন:

# systemctl restart rsyslog 
# systemctl restart mariadb

এখন এমন কিছু কার্য সম্পাদন করুন যা লগগুলিকে সংশোধন করবে (উদাহরণস্বরূপ পরিষেবাগুলি থামানো এবং শুরু করা), তারপরে আপনার ডিবি সার্ভারে লগ ইন করুন এবং লগগুলিতে প্রদর্শন এবং অনুসন্ধানের জন্য স্ট্যান্ডার্ড এসকিউএল আদেশগুলি ব্যবহার করুন:

USE Syslog;
SELECT ReceivedAt, Message FROM SystemEvents;

সারসংক্ষেপ

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

সর্বদা হিসাবে, আপনার মতামত স্বাগত চেয়ে বেশি। আমাদের কাছে পৌঁছানোর জন্য নিচের ফর্মটি নির্দ্বিধায় ব্যবহার করুন।