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
0 Nhận xét