Logwatch সেই সমস্যা মেটায় যা নইলে মেটেই না: সে আপনার হয়ে সার্ভারের সব লগ পড়ে আর গত দিনের সারাংশ পাঠায়। রোজ auth.log আর ওয়েব সার্ভারের লগ কেউ দেখে না, অথচ সকালে একটা ইমেইল পড়া সম্ভব।

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

স্থাপন এবং সেটিংস কোথায় বদলাবেন

sudo apt install logwatch

আপনি নিজের মান কোথায় রাখছেন তা গুরুত্বপূর্ণ। /usr/share/logwatch/default.conf/logwatch.conf ফাইলটি ছোঁয়া যাবে না — প্যাকেজ হালনাগাদে সেটি উপর দিয়ে লেখা হয়। আপনার ফাইল হলো /etc/logwatch/conf/logwatch.conf। সেটি ফাঁকাও হতে পারে; কেবল যা বদলাচ্ছেন তাই যোগ করলেই যথেষ্ট।

Output = mail
Format = html
MailTo = admin@example.com
Detail = Low
Range = yesterday

বিশদের মাত্রাই সব ঠিক করে

Detail 0 থেকে 10 পর্যন্ত মান বা Low, Med, High শব্দ নেয়। পার্থক্য বিশাল: High-এ রিপোর্টে প্রতিটি সংযোগ ও প্রতিটি অনুরোধ থাকে; Low-তে কেবল যোগফল আর অস্বাভাবিকতা।

ব্যবহারিক উপায় এই: সামগ্রিকভাবে Low, আর যেসব সেবা সত্যিই আপনার কাছে গুরুত্বপূর্ণ তাদের জন্য বেছে বিশদ বাড়ান। সেবাপ্রতি সেটিংস যায় /etc/logwatch/conf/services/-তে — যেমন Detail = High লাইনসহ sshd.conf ফাইল।

যাচাইয়ের মানদণ্ড: রিপোর্ট এক বা দেড় পর্দায় আঁটা উচিত। এর চেয়ে লম্বা কিছু পড়া বন্ধ হয়ে যাবে — আলস্যে নয়, বরং তিনশো লাইনের রোজকার ব্যাপারে কোনো বিচ্যুতি দেখাই যায় না বলে।

সকালের অপেক্ষা না করে ফল দেখতে:

sudo logwatch --detail Low --range today --output stdout

Debian 12-এ ফাঁকা SSH অংশ

নতুন সিস্টেমে আলাদা একটা ফাঁদ। Logwatch /var/log-এ পাঠ্য ফাইল পড়ে, আর Debian 12 ও Ubuntu 24.04 আর ডিফল্টে rsyslog বসায় না — /var/log/auth.log ফাইলটি থাকেই না আর সব যায় systemd-র জার্নালে। রিপোর্ট তবু নিয়মিত আসে, কিন্তু সবচেয়ে গুরুত্বপূর্ণ অংশ — SSH লগইন — ফাঁকা আসে বা থাকে না।

যাচাই এক সেকেন্ড নেয়:

ls -l /var/log/auth.log

ফাইল না থাকলে হয় rsyslog বসান, নয়তো মেনে নিন যে এই যন্ত্রে Logwatch অসম্পূর্ণ ছবি দেখাচ্ছে। আর ফাঁকা অংশকে «কিছুই ঘটেনি» বলে পড়া সহজ, আর এটাই সবচেয়ে বিপজ্জনক পরিণতি।

মেইল কোথায় যায়

«রিপোর্ট আসে না»-র দ্বিতীয় প্রচলিত কারণ: সার্ভারে মেইল বিতরণ সাজানোই নেই। Logwatch বার্তাটি সিস্টেমের এজেন্টকে দেয়, সে সেটি কোথাও পাঠায় না, আর বার্তাটি root-এর স্থানীয় মেইলবক্সে বসে থাকে যেখানে কেউ কখনও উঁকি দেয় না:

sudo cat /var/mail/root | tail -50

দুটি পথ আছে। হয় বাইরের SMTP রিলে দিয়ে বিতরণ সাজান, নয়তো মেইল ব্যবহারই করবেন না আর রিপোর্ট কোনো ফাইলে লিখুন:

Output = file
Filename = /var/log/logwatch/report.txt

দ্বিতীয়টি বেশি সৎ: যে ইমেইল কেউ পৌঁছাতেই পারে না, তা নজরদারির বিভ্রম তৈরি করে, অথচ ডিস্কে থাকা ফাইল অন্তত খোলা তো যায়।

রিপোর্টে কী পড়বেন

উপযোগিতার অবরোহী ক্রমে:

  • sshd। সফল লগইন — কে আর কোথা থেকে। বিশেষভাবে সফলগুলো, হাজার হাজার ব্যর্থতা নয়: ব্যর্থতা পটভূমি, অথচ অচেনা ঠিকানা থেকে লগইন ব্যাখ্যা চায়;
  • sudo ও pam_unix। কে ক্ষমতা বাড়িয়েছে আর কে ব্যবহারকারী তৈরি করেছে;
  • Disk Space। একটি লাইন যা ভরতে থাকা ডিস্ক নিয়ে আগেভাগে সতর্ক করে;
  • cron যেসব কাজ দেখা দিয়েছে আর যেগুলো ব্যর্থ হয়েছে;
  • http। 404 উত্তরে হঠাৎ বৃদ্ধি সাধারণত পথ ঘাঁটার মানে বহন করে; আর 500-তে বৃদ্ধি মানে আপনার কিছু ভেঙেছে;
  • postfix, যদি সার্ভার মেইল পাঠায়: বাইরে যাওয়া সারির বৃদ্ধি হলো সার্ভারকে স্প্যামের রিলে হিসেবে ব্যবহার করার আদর্শ লক্ষণ।

এর সীমা

Logwatch গত দিনের সারাংশ, সতর্কবার্তা নয়। সে আপনাকে রাতে জাগাবে না আর সংজ্ঞা অনুযায়ীই পিছিয়ে থাকে: সে ভোরে দৈনিক কাজ থেকে চলে আর গতকাল ঢাকে। আর «এই মুহূর্তে কিছু ঘটছে»-র জন্য সে না উপযুক্ত না তার জন্য বানানো।

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