Logwatch giải quyết một vấn đề mà nếu không thì chẳng được giải quyết: nó đọc thay bạn toàn bộ nhật ký của máy chủ và gửi bản tóm tắt ngày qua. Chẳng ai lướt qua auth.log và nhật ký máy chủ web mỗi ngày, trong khi đọc một email vào buổi sáng thì làm được.

Vấn đề đã biết: bức thư đầu tiên đến với vài trăm dòng, bức thứ hai được lướt qua, một tuần sau một quy tắc trong trình thư đẩy chúng vào thư mục riêng, và việc theo dõi kết thúc ở đó. Nguyên nhân gần như luôn là cấu hình mặc định, và việc sửa mất mười phút.

Cài đặt và sửa cấu hình ở đâu

sudo apt install logwatch

Bạn đặt các giá trị của mình ở đâu là điều quan trọng. Tệp /usr/share/logwatch/default.conf/logwatch.conf không được động vào — khi cập nhật gói nó bị ghi đè. Tệp của bạn là /etc/logwatch/conf/logwatch.conf. Nó có thể rỗng; chỉ cần thêm những gì bạn đang thay đổi.

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

Mức chi tiết quyết định tất cả

Detail nhận giá trị từ 0 đến 10 hoặc các từ Low, Med, High. Khác biệt là khổng lồ: ở High báo cáo gồm mọi kết nối và mọi yêu cầu; ở Low chỉ có tổng số và các bất thường.

Cách làm thực tế là thế này: Low cho tổng thể, và nâng mức chi tiết một cách chọn lọc cho những dịch vụ bạn thực sự quan tâm. Cấu hình theo từng dịch vụ đi vào /etc/logwatch/conf/services/ — ví dụ một tệp sshd.conf chứa dòng Detail = High.

Thước đo để kiểm tra: báo cáo nên vừa một màn hình hoặc một màn hình rưỡi. Bất cứ thứ gì dài hơn sẽ thôi được đọc — không phải vì lười mà vì giữa ba trăm dòng thường nhật thì một sai lệch chẳng nhìn ra được.

Để xem kết quả mà không phải chờ đến sáng:

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

Mục SSH trống rỗng trên Debian 12

Một cái bẫy riêng trên các hệ thống mới. Logwatch đọc các tệp văn bản trong /var/log, còn Debian 12 và Ubuntu 24.04 không còn cài rsyslog theo mặc định — tệp /var/log/auth.log đơn giản là không tồn tại và mọi thứ đi vào nhật ký của systemd. Báo cáo vẫn đến đều đặn, nhưng mục quan trọng nhất — các lần đăng nhập SSH — lại ra trống rỗng hoặc biến mất.

Việc kiểm tra mất một giây:

ls -l /var/log/auth.log

Không có tệp thì hoặc cài rsyslog, hoặc chấp nhận rằng trên máy này Logwatch cho một bức tranh không đầy đủ. Và việc đọc một mục trống rỗng thành «chẳng có gì xảy ra» là rất dễ, và đó chính là hệ quả nguy hiểm nhất.

Thư đi đâu

Nguyên nhân phổ biến thứ hai của «báo cáo không đến»: máy chủ chưa được cấu hình để gửi thư. Logwatch trao bức thư cho agent của hệ thống, agent chẳng gửi nó đi đâu, và bức thư nằm lại trong hộp thư cục bộ của root nơi chẳng ai bao giờ ngó tới:

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

Có hai cách. Hoặc cấu hình việc gửi qua một SMTP relay bên ngoài, hoặc đừng dùng thư và ghi báo cáo vào một tệp:

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

Cách thứ hai trung thực hơn: một email chẳng ai gửi đi được tạo ra ảo giác về việc theo dõi, trong khi một tệp trên đĩa thì ít nhất còn mở ra được.

Nên đọc gì trong báo cáo

Theo thứ tự hữu ích giảm dần:

  • sshd. Các lần đăng nhập thành công — ai và từ đâu. Chính là những lần thành công, không phải hàng nghìn lần thất bại: thất bại là nền nhiễu, trong khi một lần đăng nhập từ địa chỉ lạ thì cần lời giải thích;
  • sudo và pam_unix. Ai nâng quyền và ai tạo người dùng;
  • Disk Space. Một dòng cảnh báo trước về việc đĩa đang đầy dần;
  • cron. Những tác vụ xuất hiện và những tác vụ thất bại;
  • http. Một đợt tăng vọt phản hồi 404 thường nghĩa là có ai đó dò dẫm đường dẫn; còn tăng vọt 500 nghĩa là có thứ gì đó của bạn đã hỏng;
  • postfix, nếu máy chủ gửi thư: hàng đợi đi ra phình lên là dấu hiệu điển hình cho thấy máy chủ đã bị dùng làm relay phát tán thư rác.

Giới hạn của nó

Logwatch là bản tóm tắt của ngày hôm qua, không phải một cảnh báo. Nó sẽ không đánh thức bạn giữa đêm và theo định nghĩa là đi sau: nó chạy từ một tác vụ hằng ngày vào lúc sáng sớm và bao phủ hôm qua. Với «ngay lúc này đang xảy ra chuyện gì» thì nó không phù hợp và cũng chẳng được tạo ra để làm việc đó.

Sức mạnh của nó nằm ở chỗ khác — nó cho bạn thấy hình dáng của một ngày bình thường. Sau một tháng đọc, bạn biết bình thường có bao nhiêu lần đăng nhập thất bại, trang web nhận bao nhiêu yêu cầu và bao nhiêu thư đi ra; và khi một trong các con số đó tăng gấp đôi thì nó lộ ra ngay lập tức, chẳng cần ngưỡng và chẳng cần quy tắc nào. Chính vì thế báo cáo nên được đặt ở nơi nó đập vào mắt, chứ không phải trong một thư mục thư. Trên một trang thì nó trông ra sao — xem ở demo bên dưới.