Log tập trung là quá trình tập trung, thu thập, phân tích… các log cần thiết từ nhiều nguồn khác nhau về một nơi an toàn để thuận lợi cho việc phân tích, theo dõi hệ thống. Ở bài viết này mình sẽ hướng dẫn cấu hình rsyslog để chuyển tiếp log đến máy chủ log tập trung.

Mô hình:

IP Planning:

Triển khai

Cấu hình Rsyslog Server:

Bước 1: Chỉnh sửa trong file cấu hình /etc/rsyslog.conf của máy chủ Syslog-server để nó có thể nhận các bản tin log từ các client gửi về.

Bỏ comment 2 dòng sau: bạn có thể lựa chọn sử dụng UDP hoặc TCP để cho phép server nhận các bản tin log thông qua giao thức UDP. Mặc định syslog sử dụng port 514 để gửi và nhận thông tin log. Ở đây mình sử dụng UDP.

Để máy chủ log tạo thành các thư mục lưu riêng log đối với từng máy Client gửi về thêm dòng này vào cuối file cấu hình:

  • Cách 1: Thư mục lưu log client trả về sẽ là Ip-client
$template RemoteServer, "/var/log/%fromhost-ip%/%SYSLOGFACILITY-TEXT%.log"
*.* ?RemoteServer
  • Cách 2: Thư mục lưu log client trả về sẽ là tên máy client
$template RemoteServer, "/var/log/%HOSTNAME%/%SYSLOGFACILITY-TEXT%.log"
*.* ?RemoteServer

Ngoài ra bạn có thể sử dụng cấu hình sau để lưu các file log với tên các chương trình:

$template TmplAuth,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" #hostname
*.*     ?TmplAuth
$template TmplAuth,"/var/log/%fromhost-ip%/%PROGRAMNAME%.log" #ip-server
*.*     ?TmplAuth

Ở đây mình sẽ sử dụng cách 1. Với cú pháp này, các tệp cập nhật sẽ được nhóm theo Ip-client gửi log và sau đó theo cơ sở syslog (kern, user, auth, v.v.)

Bước 2: Mở port 514
firewall-cmd --permanent --add-port=514/udp
firewall-cmd --permanent --add-port=514/tcp
firewall-cmd --reload
Bước 3: Khởi động lại Rsyslog-server của bạn và đảm bảo rằng nó hiện đang lắng nghe trên cổng 514 cho UDP hoặc TCP
[root@vqmanh ~]# systemctl restart rsyslog
[root@vqmanh ~]# netstat -una | grep 514
udp        0      0 0.0.0.0:514             0.0.0.0:*
udp6       0      0 :::514                  :::*

Nếu bạn sử dụng TCP có thể sử dụng lệnh:

netstat -tna | grep 514

Đây là cấu trúc thư mục ở phía máy chủ:

Cấu hình Rsyslog Client

Lưu ý trên client cũng phải truyền đúng với giao thức như trên server:

  • *.* @IPserver:514 : Đối với giao thức UDP
  • *.* @@IPserver:514 : Đối với giao thức TCP

VD:

  • *.* @66.0.0.199:514
  • *.* @@66.0.0.199:514
Đối với client CentOS7

Bước 1: Khai báo IP của Rsyslog-server (dưới mục Rule)

[root@client01 ~]# vi /etc/rsyslog.conf

Bước 2: Restart service Rsyslog

systemctl restart rsyslog
Đối với client Ubuntu

Bước 1: Khai báo IP của Rsyslog-server

[root@client02 ~]# vi /etc/rsyslog.d/50-default.conf 

Bước 2: Restart service Rsyslog

systemctl restart rsyslog

Sau khi restart rsyslog, các bạn có thể đứng trên Rsyslog Server dùng tcpdump để bắt và kiểm chứng các gói tin từ 2 client gửi về.

Như các bạn đã thấy, các log messages như daemon, syslog,authpriv,.. sẽ được đẩy từ client về server qua port 514

Sau đó, đứng trên Rsyslog-server kiểm tra thư mục đẩy về trên /var/log

Thư mục 127.0.0.1 là thư mục chứa file log tại local. Xuất hiện thêm 2 thư mục chứa log của 2 client đẩy về. Trên mỗi thư mục sẽ chứa những file log dựa trên cơ sở sinh ra log. VD: trên thư mục 66.0.0.200

Tham khảo: https://news.cloud365.vn/tag/log/

CHÚC CÁC BẠN THÀNH CÔNG!!!