Thứ bảy, ngày 15 tháng 8 năm 2020
Trang chủ Sys-Ops

Monitor System Logs với Logwatch

Logwatch là một phần mềm phân tích và tạo các báo cáo hàng ngày trên các hệ thống Log. Mặc dù Logwatch không cung cấp những cảnh báo thời gian thực, nhưng thay vào đó nó sẽ tạo một bản report rút gọn được tổ chức cụ thể giúp ta dễ dàng review lại. Với bản report rút gọn này, người dùng có thể ghép nối Logwatch với các script của họ để tùy chỉnh các report này sao cho phù hợp với mục đích sử dụng.

Mặc định thì Logwatch sử dụng Sendmail để gửi các Report.

Chú ý: Từng bước trong bài hướng dẫn này yêu cầu quyền root. Chắc chắn rằng các bước sau đây được chạy với quyền root.

1. Cài Đặt Logwatch và Sendmail

1.1. Cài đặt

Ubuntu

- Update hệ thống

#apt-get update && apt-get upgrade

- Cài đặt Logwatch và Sendmail

#apt-get install logwatch sendmail

Centos

- Update hệ thống

#yum update

- Cài đặt Logwatch và Sendmail

#yum install logwatch sendmail

- Khởi động Sendmail

#systemctl start sendmail

1.2. Chỉnh sửa cấu hình postfix cần thiết

Sau khi cài đặt xong Logwatch và sendmail cần chỉnh sửa một số cấu hình sau đây:

- Chỉnh sửa trong /etc/postfix/main.cf để thêm thông về domain của bạn, và cho phép send-only mail, thay thế hostname.example.com với hostname và domain của bạn:

Trong file /etc/postfix/main.cf thay thế hostname và domain của bạn:

myhostname = hostname.example.com

inet_interfaces = loopback-only

Chú ý: Cần cấu hình 2 bản ghi A/AAAA và MX trỏ tới domain của bạn

- Chỉnh sửa trong tập tin /etc/postfix/aliases uncomment root sửa nó thành root@hostname.example.com với hostname.example là hostname và domain của bạn:

Ta sẽ thay đổi như sau:

root: root@hostname.example.com

- Chạy newalias sau khi chỉnh sửa aliases list

- Cuối cùng là start postfix

systemctl start postfix

2. Cấu hình Logwatch

Tập tin cấu hình mặc định cho Logwatch được đặt tại /usr/share/logwatch/default.conf/logwatch.conf. Trong tập tin này chứa đầy đủ các cấu hình ví dụ như cấu hình để logwatch có thể theo dỗi tập tin log nào…

Ta cần cấu hình những phần sau:

Log Directories

Mặc định thì logwatch sẽ tóm lược lại tất cả mội thông tin chứa trong thư mục /var/log nhưng nếu bạn có bất kỳ một thư mục log nào khác cần được logwatch theo dõi ví dụ như thư mục website thì bạn chỉ cần thêm các dòng LogDir và trỏ đường dẫn tới thư mục đó như ví dụ dưới đây:

LogDir = /var/log

LogDir = /var/www/example.com/logs

Cấu hình hiển thị tóm lược log ra Console

Mặc định thì logwatch cấu hình output = stdout. Lựa chọn này cũng chỉ phù hợp đối với các trường hợp bạn muốn xem một cách thủ công không cần lưu lại các bản tóm lực và gửi logs cho bạn để xem sau.

Cấu hình Email Logwatch Digest ( Gửi bản tóm lược log ra email)

Logwatch có cơ chế gửi bản tóm lược Logs tới các User Local hoặc một địa chỉ email, nội dung được truyền đi có thể là plaintext hoặc định dạng html. Để làm được việc này ta cấu hình như sau:

- Trước tiên ta cần chỉnh sửa giá trị Output = mail. Nếu bạn muốn nhận tin nhắn với định dạng HTML thì thay giá trị format = html còn mặc định thì là text.

- Sau đó ta cần thay đổi giá trị MailTo bằng một địa chỉ email hợp lệ hoặc một user local. Ở ví dụ này ta sẽ cấu hình gửi mail tới user root như sau:

MailTo = root

- Tiếp theo ta cần sửa cấu hình MailForm với một địa chỉ email hợp lệ hoặc một user local.

Cấu hình lưu bản tóm lược log ra một tập tin

Cũng giống như thao tác cấu hình gửi bản tóm lược ra mail ta cần chỉnh sửa giá trị Output tới một tập tin

Sau khi cấu hình các thông số tùy chỉnh ở trên ta cần khởi chạy Logwatch.

Running Manual

Chạy câu lệnh logwacth với các options sau:

--detail: Có thể set về low, med, high để chỉ định thông báo chị tiết sẽ hiển thị như thế nào

--logdir: Thư mục mà bạn muốn nhận thông báo

--services: chỉ định dịch vụ mà bạn muốn nó report

--output: chỉ định phương thức hiển thị: stdout, mail, hoặc file

--format: plain text hoặc html

--mailto: gửi report local user hoặc địa chỉ email

Running với Crontab

Mở crontab

crontab -e

Thêm một dòng để chạy logwatch vào 00:30 hàng ngày

Cấu hình /etc/crontab

30 0  * * *          /usr/sbin/logwatch

>> Tham khảo thêm: Hướng dẫn cài đặt Nginx sử dụng Ansible