CentOS/RHEL 7 এ রুপিস্লগ সহ একটি কেন্দ্রীভূত লগ সার্ভার তৈরি করবেন


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

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

সেন্টোস/আরএইচইএল On সিস্টেমে রুপিস্লগ ডেমন মূল লগ সার্ভার, যার পরে সিস্টেমড জার্নাল ডেমন (জার্নাল্ড) থাকে।

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

যখন rsyslog ক্লায়েন্ট হিসাবে কনফিগার করা থাকে তখন লগগুলি স্থানীয় ফাইল সিস্টেমে স্থানীয়ভাবে সংরক্ষণ করা যেতে পারে বা মেশিনে সঞ্চিত ফাইলগুলিতে স্থানীয়ভাবে লিখতে বা স্থানীয়ভাবে ইভেন্ট লগ ফাইলগুলি লেখার পরিবর্তে দূরবর্তীভাবে প্রেরণ করা যায় এবং এগুলি একটি রিমোট সিসলগ সার্ভারে প্রেরণ করা যায় একই সময়.

সিসলগ সার্ভার নিম্নলিখিত স্কিমটি ব্যবহার করে যে কোনও লগ বার্তা পরিচালনা করে:

type (facility).priority (severity)  destination(where to send the log)

উ: সুবিধা বা প্রকারের ডেটাগুলি অভ্যন্তরীণ সিস্টেম প্রক্রিয়াগুলি দ্বারা বার্তা উত্পন্ন করে উপস্থাপন করে। লিনাক্সের অভ্যন্তরীণ প্রক্রিয়াগুলিতে (সুবিধাগুলি) যা লগগুলি উত্পন্ন করে সেগুলি নিম্নরূপিত হয়:

  • প্রমাণীকরণ প্রক্রিয়া (লগইন) দ্বারা উত্পন্ন বার্তাগুলি
  • ক্রোন = বার্তা নির্ধারিত প্রক্রিয়া (ক্রন্টব) দ্বারা উত্পন্ন।
  • ডেমন = ডেমনগুলি (অভ্যন্তরীণ পরিষেবাগুলি) দ্বারা উত্পন্ন বার্তা
  • কার্নেল = লিনাক্স কার্নেল নিজেই উত্পন্ন বার্তা
  • মেল = একটি মেল সার্ভারের দ্বারা উত্পন্ন বার্তা li
  • syslog = বার্তাগুলি নিজেই rsyslog ডেমন দ্বারা উত্পাদিত
  • স্থানীয় প্রিন্টার বা একটি মুদ্রণ সার্ভার দ্বারা উত্পাদিত বার্তা
  • স্থানীয়0 - লোকাল 7 = প্রশাসক দ্বারা সংজ্ঞায়িত কাস্টম বার্তা (লোকাল 7 সাধারণত সিসকো বা উইন্ডোজের জন্য নির্ধারিত হয়)

খ। অগ্রাধিকার (তীব্রতা) স্তরগুলিও মানক করা হয়। প্রতিটি অগ্রাধিকারটি একটি স্ট্যান্ডার্ড সংক্ষেপণ এবং নীচে বর্ণিত হিসাবে একটি সংখ্যার সাথে বরাদ্দ করা হয়। 7th ম অগ্রাধিকার হ'ল সকলের উচ্চতর স্তর।

  • emerg = জরুরী - 0
  • সতর্কতা = সতর্কতা - 1
  • ত্রুটি - ত্রুটি - 3
  • সতর্কতা = সতর্কতা - 4
  • বিজ্ঞপ্তি = বিজ্ঞপ্তি - 5
  • তথ্য = তথ্য - 6
  • ডিবাগ = ডিবাগিং - 7

বিশেষ রাইস্লগ কীওয়ার্ড:

  • * = সমস্ত সুবিধা বা অগ্রাধিকার
  • কোনওটি নয় = সুবিধাগুলির কোনও অগ্রাধিকার নেই উদাহরণ: মেল.নোন

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

সেন্ট্রোস/আরএইচএল 7 কে কেন্দ্রীয় লগ সার্ভার হিসাবে কনফিগার করার জন্য, প্রথমে আমাদের পরীক্ষা করে নিশ্চিত করতে হবে যে সমস্ত লগ ফাইল রেকর্ড করা আছে/var পার্টিশনটি যথেষ্ট পরিমাণে (কয়েকটি জিবি ন্যূনতম) সমস্ত সংরক্ষণ করতে সক্ষম হবে লগ ফাইলগুলি যা অন্যান্য ডিভাইস দ্বারা প্রেরণ করা হবে।/Var/লগ/ডিরেক্টরিটি মাউন্ট করতে একটি পৃথক ড্রাইভ (LVM, RAID) ব্যবহার করা ভাল সিদ্ধান্ত।

  1. CentOS 7.3 ইনস্টলেশন পদ্ধতি
  2. RHEL 7.3 ইনস্টলেশন প্রক্রিয়া
  3. li

CentOS/RHEL 7 সার্ভারে রুপিস্লগ কীভাবে কনফিগার করবেন

১. ডিফল্টরূপে রাইস্লগ সার্ভিস স্বয়ংক্রিয়ভাবে ইনস্টল হয়ে গেছে এবং সেন্টোস/আরএইচএল-তে চালিত হওয়া উচিত 7.. সিস্টেমে ডেমোনটি চালু হয়েছে কিনা তা পরীক্ষা করতে, রুট সুবিধার সাথে নিম্নলিখিত কমান্ডটি জারি করুন issue

# systemctl status rsyslog.service

যদি সার্ভিসটি ডিফল্টরূপে চলমান না হয় তবে rsyslog ডেমন শুরু করতে নীচের কমান্ডটি প্রয়োগ করুন।

# systemctl start rsyslog.service

২. আপনি যদি সেন্ট্রালাইজড লগিং সার্ভার হিসাবে ব্যবহার করতে চান সেই সিস্টেমে আরএসস্লগ প্যাকেজটি ইনস্টল না করা হয়, তবে আরএসস্লগ প্যাকেজ ইনস্টল করার জন্য নিম্নলিখিত কমান্ডটি প্রেরণ করুন।

# yum install rsyslog

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

# vi /etc/rsyslog.conf

আরএসস্লগ মূল কনফিগারেশন ফাইলে, 514 পোর্টের মাধ্যমে রাইস্লগ সার্ভারে ইউডিপি পরিবহন সংবর্ধনা প্রদানের জন্য নিম্নলিখিত লাইনগুলি অনুসন্ধান করুন এবং অবিচ্ছিন্ন করুন (লাইনের শুরুতে হ্যাশট্যাগ # সাইনটি সরিয়ে দিন) U ইউডিপি রুপিস্লগ দ্বারা লগ সংক্রমণের জন্য ব্যবহৃত প্রমিত প্রোটোকল।

$ModLoad imudp 
$UDPServerRun 514

৪. ইউডিপি প্রোটোকলে টিসিপি ওভারহেড নেই, যা এটি টিসিপি প্রোটোকলের চেয়ে ডেটা প্রেরণের জন্য দ্রুততর করে তোলে। অন্যদিকে, ইউডিপি প্রোটোকল সংক্রমণিত ডেটার নির্ভরযোগ্যতার নিশ্চয়তা দেয় না।

তবে, আপনাকে যদি লগ অভ্যর্থনার জন্য টিসিপি প্রোটোকল ব্যবহার করতে হয় তবে আপনাকে 514 পোর্টে একটি টিসিপি সকেট বাঁধতে এবং শোনার জন্য Rsyslog ডিমন কনফিগার করতে /etc/rsyslog.conf ফাইল থেকে নিম্নলিখিত লাইনগুলি সন্ধান করতে হবে এবং সঙ্কলিত করতে হবে। সংবর্ধনার জন্য টিসিপি এবং ইউডিপি শোনার সকেট একসাথে একটি রাইস্লগ সার্ভারে কনফিগার করা যায়।

$ModLoad imtcp 
$InputTCPServerRun 514 

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

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

উপরের $টেমপ্লেট রিমোটলগস নির্দেশিকা রাইস্লগ ডেমনকে ক্লায়েন্ট মেশিনের নাম এবং রিমোট ক্লায়েন্ট সুবিধা (অ্যাপ্লিকেশন) এর উপর ভিত্তি করে প্রাপ্ত সমস্ত লগ বার্তা আলাদা আলাদা ফাইলগুলিতে সংগ্রহ এবং লেখার নির্দেশ দেয় যা টেম্পলেট কনফিগারেশনে সংজ্ঞায়িত বৈশিষ্ট্য উপস্থাপনার ভিত্তিতে বার্তা উত্পন্ন করে :% HOSTNAME% এবং% PROGRAMNAME%।

এই সমস্ত লগ ফাইলগুলি স্থানীয় ফাইল সিস্টেমে ক্লায়েন্ট মেশিনের হোস্টনামের নাম অনুসারে একটি ডেডিকেটেড ফাইলে লেখা হবে এবং/var/লগ/ডিরেক্টরিতে সঞ্চিত হবে।

& ~ পুনর্নির্দেশের নিয়ম স্থানীয় রাইস্প্লগ সার্ভারকে প্রাপ্ত লগ বার্তাটি আরও প্রক্রিয়া বন্ধ করতে এবং বার্তাগুলি বাতিল করতে (তাদের অভ্যন্তরীণ লগ ফাইলগুলিতে লিখবেন না) নির্দেশ দেয়।

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

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

$template FromIp,"/var/log/%FROMHOST-IP%.log" 
. ?FromIp & ~ 

একটি টেমপ্লেটের আরও একটি উদাহরণ যেখানে প্রমাণীকরণের পতাকাযুক্ত সমস্ত বার্তা "TmplAuth" নামে একটি টেমপ্লেটে লগ করা হবে।

$template TmplAuth, "/var/log/%HOSTNAME%/%PROGRAMNAME%.log" 
authpriv.*   ?TmplAuth

নীচে রাইস্লগ 7 সার্ভার থেকে একটি টেমপ্লেট সংজ্ঞা রূপরেখার নীচে দেওয়া হয়েছে:

template(name="TmplMsg" type="string"
         string="/var/log/remote/msg/%HOSTNAME%/%PROGRAMNAME:::secpath-replace%.log"
        )

উপরের টেম্পলেট অংশটিও এইভাবে লেখা যেতে পারে:

template(name="TmplMsg" type="list") {
    constant(value="/var/log/remote/msg/")
    property(name="hostname")
    constant(value="/")
    property(name="programname" SecurePath="replace")
    constant(value=".log")
    }

জটিল রাইস্লগ টেমপ্লেটগুলি লিখতে, manysyslog.conf কমান্ড জারি করে Rsyslog কনফিগারেশন ফাইল ম্যানুয়াল পড়ুন বা Rsyslog অনলাইন ডকুমেন্টেশনের পরামর্শ নিন।

Above. উপরে বর্ণিত অনুসারে আপনি নিজের সেটিংসে রাইস্লগ কনফিগারেশন ফাইল সম্পাদনা করার পরে, নিম্নলিখিত কমান্ডটি দিয়ে পরিবর্তনগুলি প্রয়োগ করতে রাইস্লগ ডিমন পুনরায় চালু করুন:

# service rsyslog restart

Now. এখন অবধি, রাইস্লগ সার্ভারটি সেন্ট্রালাইজড লগ সার্ভারের জন্য এবং সিলেগ ক্লায়েন্টের বার্তাগুলি রেকর্ড করার জন্য কনফিগার করা উচিত। রাইস্লগ নেটওয়ার্ক সকেট যাচাই করতে, রুট সুবিধাগুলি সহ নেটস্ট্যাট কমান্ডটি চালান এবং আরএসস্লগ স্ট্রিং ফিল্টার করতে গ্রেপ ব্যবহার করুন।

# netstat -tulpn | grep rsyslog 

৮. আপনার যদি সেন্টোস/আরএইচইএল 7 এ সিলিনাক্স সক্ষম করা থাকে তবে নেটওয়ার্ক সকেটের ধরণের উপর নির্ভর করে আরএসস্লগ ট্র্যাফিকের অনুমতি দেওয়ার জন্য SELinux কনফিগার করতে নিম্নলিখিত কমান্ডটি জারি করুন।

# semanage -a -t syslogd_port_t -p udp 514
# semanage -a -t syslogd_port_t -p tcp 514 

৯. ফায়ারওয়াল যদি সক্ষম ও সক্রিয় থাকে তবে ফায়ারওয়াল্ডে আরএসস্লগ পোর্ট খোলার জন্য প্রয়োজনীয় বিধি যুক্ত করতে নীচের কমান্ডটি চালান run

# firewall-cmd --permanent --add-port=514/tcp
# firewall-cmd --permanent --add-port=514/udp
# firewall-cmd –reload

এখানেই শেষ! Rsyslog এখন সার্ভার মোডে কনফিগার করা হয়েছে এবং দূরবর্তী ক্লায়েন্টদের লগগুলি কেন্দ্রিয় করতে পারে। পরের নিবন্ধে, আমরা কীভাবে CentOS/RHEL 7 সার্ভারে রাইস্লগ ক্লায়েন্ট কনফিগার করতে হয় তা দেখতে পাব।

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