Rsyslog là phần mềm ghi nhật ký miễn phí và mã nguồn mở, chuyển tiếp tất cả các tệp nhật ký đến máy chủ nhật ký tập trung thông qua mạng IP. Nó giúp quản trị viên hệ thống theo dõi tất cả các máy chủ từ điểm trung tâm. Rsyslog hoạt động theo mô hình máy khách/máy chủ, nó nhận nhật ký từ máy khách từ xa trên cổng 514 qua giao thức TCP/UDP.
Trong bài đăng này, chúng tôi sẽ chỉ cho bạn cách thiết lập máy chủ Rsyslog trên Debian 11.
Sau khi cài đặt, hãy xác minh trạng thái Rsyslog bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Bỏ chú thích các dòng sau:
Tiếp theo, thêm các dòng sau để xác định mẫu lưu trữ nhật ký đến từ hệ thống máy khách:
Lưu và đóng tệp, sau đó khởi động lại dịch vụ Rsyslog để áp dụng các thay đổi:
Lúc này, Rsyslog được khởi động và lắng nghe trên cổng 514. Bạn có thể kiểm tra bằng lệnh sau:
Bạn sẽ thấy kết quả sau:
Tiếp theo, tải lại tường lửa để áp dụng các thay đổi:
Thêm các dòng sau vào cuối tệp:
Ngoài ra, hãy thêm các dòng sau để thiết lập hàng đợi đĩa khi máy chủ rsyslog ngừng hoạt động:
Lưu và đóng tệp, sau đó khởi động lại dịch vụ Rsyslog để áp dụng các thay đổi:
Bạn có thể kiểm tra bằng lệnh sau:
Bạn sẽ thấy tệp nhật ký của máy khách tương ứng với tên máy chủ của hệ thống máy khách:
Như bạn thấy, clientpc là thư mục nhật ký của hệ thống máy khách.
Trong bài đăng này, chúng tôi sẽ chỉ cho bạn cách thiết lập máy chủ Rsyslog trên Debian 11.
Điều kiện tiên quyết
- Hai máy chủ chạy Debian 11.
- Mật khẩu gốc được cấu hình trên máy chủ.
Cài đặt Rsyslog
Đầu tiên, bạn sẽ cần cài đặt gói máy chủ Rsyslog trên máy chủ. Bạn có thể cài đặt bằng lệnh sau:
Mã:
apt-get install rsyslog -y
Mã:
systemctl status rsyslog
Mã:
? rsyslog.service - Dịch vụ ghi nhật ký hệ thống Đã tải: đã tải (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled) Đang hoạt động: đang hoạt động (đang chạy) kể từ CN 2021-10-03 13:35:32 UTC; 1 giờ 44 phút trướcTriggeredBy: ? syslog.socket Tài liệu: man:rsyslogd(8) man:rsyslog.conf(5) https://www.rsyslog.com/doc/ PID chính: 283 (rsyslogd) Nhiệm vụ: 4 (giới hạn: 2341) Bộ nhớ: 5,0M CPU: 90ms CGroup: /system.slice/rsyslog.service ??283 /usr/sbin/rsyslogd -n -iNONE03 tháng 10 13:35:32 debian11 systemd[1]: Đang khởi động Dịch vụ ghi nhật ký hệ thống...03 tháng 10 13:35:32 debian11 rsyslogd[283]: imuxsock: Đã lấy được socket UNIX '/run/systemd/journal/syslog' (fd 3) từ systemd. [v8.2102.0]03/10 13:35:32 debian11 rsyslogd[283]: [origin software="rsyslogd" swVersion="8.2102.0" x-pid="283" x-info="https://www.rsyslog.com"] start03/10 13:35:32 debian11 systemd[1]: Đã khởi động Dịch vụ ghi nhật ký hệ thống.03/10 13:35:34 debian11 systemd[1]: rsyslog.service: Đã gửi tín hiệu SIGHUP đến tiến trình chính 283 (rsyslogd) theo yêu cầu của máy khách.03/10 13:45:33 debian11 rsyslogd[283]: [origin software="rsyslogd" swVersion="8.2102.0" x-pid="283" x-info="https://www.rsyslog.com"] rsyslog>
Cấu hình Rsyslog
Tiếp theo, bạn sẽ cần cấu hình Rsyslog để chạy ở chế độ máy chủ. Bạn có thể thực hiện bằng cách chỉnh sửa tệp cấu hình chính của Rsyslog:
Mã:
nano /etc/rsyslog.conf
Mã:
# provides UDP syslog receptionmodule(load="imudp")input(type="imudp" port="514")# provides TCP syslog receptionmodule(load="imtcp")input(type="imtcp" port="514")
Mã:
$template remote-incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log"*.* ?remote-incoming-logs
Mã:
systemctl restart rsyslog
Mã:
ss -tunlp | grep 514
Mã:
udp UNCONN 0 0 0.0.0.0:514 0.0.0.0:* users:(("rsyslogd",pid=26276,fd=6))udp UNCONN 0 0 [::]:514 [::]:* users:(("rsyslogd",pid=26276,fd=7))tcp LISTEN 0 25 0.0.0.0:514 0.0.0.0:* users:(("rsyslogd",pid=26276,fd=8))tcp LISTEN 0 25 [::]:514 [::]:* users:(("rsyslogd",pid=26276,fd=9))
Cấu hình Tường lửa cho Rsyslog
Tiếp theo, bạn sẽ cần cho phép cổng 514 đi qua tường lửa UFW. Bạn có thể cho phép bằng lệnh sau:
Mã:
ufw allow 514/tcp
ufw allow 514/udp
Mã:
ufw reload
Cấu hình Máy khách Rsyslog
Tiếp theo, bạn sẽ cần cấu hình máy khách Rsyslog để gửi các tệp nhật ký đến máy chủ Rsyslog. Bạn có thể thực hiện bằng cách chỉnh sửa tệp cấu hình chính của Rsyslog.
Mã:
nano /etc/rsyslog.conf
Mã:
#Enable sending system logs over UDP to rsyslog server*.* @rsyslog-server-ip:514#Enable sending system logs over TCP to rsyslog server*.* @@rsyslog-server-ip:514
Mã:
$ActionQueueFileName queue$ActionQueueMaxDiskSpace 1g$ActionQueueSaveOnShutdown on$ActionQueueType LinkedList$ActionResumeRetryCount -1
Mã:
systemctl restart rsyslog
Xác minh tệp nhật ký của máy khách
Tất cả các tệp nhật ký của máy khách được lưu trữ trong thư mục /var/log trên máy chủ.Bạn có thể kiểm tra bằng lệnh sau:
Mã:
ls -l /var/log/
Mã:
alternatives.log auth.log.2.gz daemon.log debian11 dpkg.log kern.log.1 messages.1 private syslog.3.gzclientpc auth.log.3.gz daemon.log.1 debug dpkg.log.1 kern.log.2.gz messages.2.gz runit syslog.4.gzapt btmp daemon.log.3.gz debug.2.gz icinga2 kern.log.4.gz messages.4.gz syslogauth.log.1 csm.log dbconfig-common debug.4.gz kern.log messages ntpstats syslog.2.gz