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 مقادیر ۰ تا ۱۰ یا واژههای Low و Med و High را میپذیرد. و تفاوت بسیار بزرگ است: در High گزارش هر اتصال و هر درخواست را دربر میگیرد؛ در Low تنها جمعها و ناهنجاریها را.
رویه چنین است: Low در کل، با بالابردن گزینشی جزئیات برای سرویسهایی که واقعاً برایتان مهماند. تنظیمات هر سرویس به /etc/logwatch/conf/services/ میرود — برای نمونه فایلی به نام sshd.conf با سطر Detail = High.
معیاری برای بررسی: گزارش باید در یک صفحه نمایش یا یک و نیم جا شود. هر چه بلندتر باشد خواندنش رها خواهد شد — نه از تنبلی بلکه از آن رو که انحراف میان سیصد سطر روزمرگی نادیدنی است.
برای دیدن نتیجه بیآنکه تا بامداد صبر کنید:
sudo logwatch --detail Low --range today --output stdout
بخش SSH تهی روی Debian 12
تلهای جداگانه روی سامانههای تازه. 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. جهش در پاسخهای ۴۰۴ معمولاً یعنی وارسی مسیرها؛ و جهش در ۵۰۰ یعنی چیزی از آنِ شما شکسته است؛
- postfix، اگر سرور ایمیل میفرستد: صف خروجی رو به رشد نشانهای معمول از آن است که سرور را همچون رله هرزنامه به کار گرفتهاند.
مرزهایش
Logwatch خلاصه شبانهروز گذشته است نه هشدار. شما را شب بیدار نمیکند و بنا بر تعریف عقب است: از وظیفهای روزانه در ساعتهای نخست بامداد اجرا میشود و دیروز را پوشش میدهد. و برای «هماکنون چیزی در جریان است» نه مناسب است و نه ساخته شده.
نیرویش جای دیگری است — شکل یک روز عادی را به شما نشان میدهد. پس از یک ماه خواندن میدانید در حالت عادی چند ورود ناموفق دارید، سایت چند درخواست میگیرد و چقدر ایمیل بیرون میرود؛ و وقتی یکی از این عددها دو برابر شود، بیدرنگ دیده میشود، بدون هیچ آستانه و هیچ قاعدهای. به همین سبب ارزش دارد گزارش را جایی نگه دارید که به چشمتان بیاید نه در پوشهای از ایمیل. شکل این در یک صفحه را نمایش پایین نشان میدهد.