Rsyslog là một daemon hệ thống ghi nhật ký nguồn mở được sử dụng để thu thập, lọc, lưu trữ và chuyển tiếp các thông điệp nhật ký của hệ điều hành và ứng dụng. Đây là một hệ thống ghi nhật ký mạnh mẽ và linh hoạt hỗ trợ nhiều giao thức, bao gồm TCP, UDP và RELP (Giao thức ghi nhật ký sự kiện đáng tin cậy). Bạn có thể sử dụng Rsyslog để tập trung nhật ký cho máy chủ, ứng dụng và cơ sở dữ liệu của mình.
Hướng dẫn này sẽ chỉ cho bạn cách cài đặt rsyslog và thiết lập ghi nhật ký từ xa trên máy chủ Debian 12. Bạn cũng sẽ thiết lập một máy chủ Linux để gửi nhật ký từ xa đến máy chủ Rsyslog.
Trước tiên, hãy chạy lệnh bên dưới để cập nhật chỉ mục gói Debian và cài đặt Rsyslog vào hệ thống của bạn. Nhập 'Y' để xác nhận cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22345%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy chạy lệnh 'systemctl' bên dưới để khởi động và kích hoạt máy chủ 'rsyslog'. Sau đó, hãy xác minh để đảm bảo nó đang chạy.
Trong kết quả đầu ra sau, bạn có thể thấy Rsyslog đang chạy và được bật.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22231%22%3E%3C/svg%3E
Để cài đặt UFW, hãy chạy lệnh 'apt' sau. Nhập 'Y' để xác nhận cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22333%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy chạy lệnh 'ufw' sau để bật cấu hình 'OpenSSH' và cho phép truy cập vào cổng '514'. Hồ sơ 'OpenSSH' sẽ cho phép truy cập SSH và cổng '514' là cổng syslog.
Bây giờ hãy khởi động và kích hoạt UFW bằng lệnh bên dưới. Nhập 'y' để xác nhận và bạn sẽ nhận được kết quả như sau 'Tường lửa đang hoạt động và được bật khi khởi động hệ thống'.
Cuối cùng, hãy kiểm tra trạng thái UFW bằng lệnh sau.
Trong kết quả bên dưới, bạn có thể thấy UFW với trạng thái đang hoạt động, OpenSSH hồ sơ và cổng '514' được bật.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22383%22%3E%3C/svg%3E
Đầu tiên, hãy chỉnh sửa tệp '/etc/rsyslog.conf' bằng cách sử dụng 'nano' sau biên tập viên.
Bỏ chú thích các dòng sau để bật mô-đun 'imudp' và bật syslog để đăng nhập vào máy chủ Rsyslog.
Ngoài ra, nếu bạn cần bật syslog qua TCP, hãy bật mô-đun 'imtcp' như sau đây:
Bây giờ hãy thêm tùy chọn 'AllowedSender' và nhập mạng con được phép gửi tin nhắn Syslog đến máy chủ Rsyslog của bạn.
Nhập cấu hình sau để thiết lập mẫu cho tệp nhật ký từ máy chủ từ xa. Trong ví dụ này, các tệp nhật ký từ máy chủ từ xa sẽ được lưu trữ trong thư mục '/var/log/servers/server-ip'.
Lưu tệp và thoát khỏi trình chỉnh sửa khi hoàn tất.
Tiếp theo, chạy lệnh 'rsyslogd' bên dưới để kiểm tra cấu hình Rsyslog và đảm bảo bạn có đúng cấu hình.
Khi không có lỗi nào xảy ra, hãy chạy lệnh 'systemctl' bên dưới để khởi động lại dịch vụ 'rsyslog' và áp dụng các thay đổi của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22126%22%3E%3C/svg%3E
Cuối cùng, hãy kiểm tra trạng thái dịch vụ 'rsyslog' để đảm bảo dịch vụ đang chạy.
Trong kết quả đầu ra bên dưới, bạn có thể thấy 'rsyslog' đang chạy.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22248%22%3E%3C/svg%3E
Ngoài ra, hãy kiểm tra cổng '514' trên máy chủ của bạn để đảm bảo Rsyslog đang chạy.
Bạn có thể thấy bên dưới cổng UDP '514' được Rsyslog sử dụng.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22105%22%3E%3C/svg%3E
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22368%22%3E%3C/svg%3E
Bây giờ hãy mở tệp cấu hình mặc định '/etc/rsyslog.conf' có 'nano' biên tập viên.
Thêm cấu hình sau để gửi nhật ký đến máy chủ Rsyslog '192.168.10.10'. Trong trường hợp này, chúng tôi sẽ gửi nhật ký kernel, cron và authentication đến máy chủ Rsyslog.
Bây giờ hãy thêm nội dung sau để thiết lập bộ đệm hàng đợi cho Rsyslog.
Lưu tệp và thoát khỏi trình soạn thảo.
Tiếp theo, chạy lệnh 'rsyslogd' bên dưới để kiểm tra và xác minh cấu hình Rsyslog của bạn.
Khi không có lỗi nào xảy ra, hãy chạy lệnh 'systemctl' bên dưới để khởi động lại Rsyslog và xác minh để đảm bảo rằng nó đang chạy.
Bạn có thể thấy bên dưới rằng dịch vụ Rsyslog đang chạy và nhật ký của bạn sẽ được gửi đến máy chủ Rsyslog trên '192.168.10.10'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22328%22%3E%3C/svg%3E
Kiểm tra thư mục nhật ký '/var/log/servers' bằng lệnh bên dưới. Lệnh này sẽ hiển thị cho bạn thư mục của từng máy chủ.
Bây giờ hãy kiểm tra thư mục nhật ký của máy chủ, được lưu trữ trong thư mục '/var/log/servers/server-ip'. Bạn sẽ thấy nhiều tệp nhật ký có sẵn trên máy chủ Rsyslog.
Bây giờ bạn có thể kiểm tra các tệp nhật ký bằng lệnh 'cat' hoặc 'tail' để xem chi tiết các bản ghi.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22203%22%3E%3C/svg%3E
Hướng dẫn này sẽ chỉ cho bạn cách cài đặt rsyslog và thiết lập ghi nhật ký từ xa trên máy chủ Debian 12. Bạn cũng sẽ thiết lập một máy chủ Linux để gửi nhật ký từ xa đến máy chủ Rsyslog.
Điều kiện tiên quyết
Để bắt đầu với hướng dẫn này, bạn cần những thứ sau:- Máy chủ Debian 12
- Người dùng không phải root có quyền quản trị viên
- Máy Linux làm máy khách để thử nghiệm
Cài đặt Rsyslog
Trước khi bắt đầu, bạn cần cài đặt Rsyslog vào máy chủ Debian của mình. Ở bước này, bạn sẽ cài đặt Rsyslog thông qua APT, sau đó khởi động và kích hoạt dịch vụ Rsyslog.Trước tiên, hãy chạy lệnh bên dưới để cập nhật chỉ mục gói Debian và cài đặt Rsyslog vào hệ thống của bạn. Nhập 'Y' để xác nhận cài đặt.
Mã:
sudo apt update
sudo apt install rsyslog
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22345%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy chạy lệnh 'systemctl' bên dưới để khởi động và kích hoạt máy chủ 'rsyslog'. Sau đó, hãy xác minh để đảm bảo nó đang chạy.
Mã:
sudo systemctl enable --now rsyslog
sudo systemctl status rsyslog
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22231%22%3E%3C/svg%3E
Thiết lập UFW (Uncomplicated Firewall)
Sau khi Rsyslog được cài đặt, bạn sẽ cài đặt và cấu hình UFW (Uncomplicated Firewall). Bạn sẽ mở cổng '22' cho dịch vụ OpenSSH và cổng '514' cho Rsyslog. Sau đó, bạn sẽ khởi động và kích hoạt dịch vụ UFW.Để cài đặt UFW, hãy chạy lệnh 'apt' sau. Nhập 'Y' để xác nhận cài đặt.
Mã:
sudo apt install ufw
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22333%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy chạy lệnh 'ufw' sau để bật cấu hình 'OpenSSH' và cho phép truy cập vào cổng '514'. Hồ sơ 'OpenSSH' sẽ cho phép truy cập SSH và cổng '514' là cổng syslog.
Mã:
sudo ufw allow OpenSSH
sudo ufw allow 514
Mã:
sudo ufw enable
Mã:
sudo ufw status
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22383%22%3E%3C/svg%3E
Rsyslog để nhận nhật ký từ Máy chủ từ xa
Bây giờ bạn đã cài đặt Rsyslog và cấu hình UFW, bạn đã sẵn sàng thiết lập Rsyslog để nhận nhật ký từ máy chủ từ xa. Để thực hiện điều này, bạn cần sửa đổi tệp '/etc/rsyslog.conf' và cấu hình:- Bật mô-đun 'imudp' để nhận nhật ký từ máy chủ từ xa qua UDP
- Tùy chọn, bật 'imtcp' để nhận nhật ký qua TCP
- Bật tùy chọn 'AllowedSender' để cho phép các mạng con cụ thể gửi nhật ký từ xa
- Thêm mẫu tùy chỉnh cho Rsyslog
- Kiểm tra cấu hình Rsyslog
- Khởi động, bật và xác minh dịch vụ Rsyslog
Đầu tiên, hãy chỉnh sửa tệp '/etc/rsyslog.conf' bằng cách sử dụng 'nano' sau biên tập viên.
Mã:
sudo nano /etc/rsyslog.conf
Mã:
# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")
Mã:
# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="50514")
Mã:
# $AllowedSender - specifies which remote systems are allowed to send syslog messages to rsyslogd
$AllowedSender UDP, 192.168.10.0/24, [::1]/128, *.howtoforge.local, db.howtoforge.local
Mã:
#Custom template to generate the log filename dynamically based on the client's IP address.
$template RemInputLogs, "/var/log/servers/%FROMHOST-IP%/%PROGRAMNAME%.log"
*.?RemInputLogs
Tiếp theo, chạy lệnh 'rsyslogd' bên dưới để kiểm tra cấu hình Rsyslog và đảm bảo bạn có đúng cấu hình.
Mã:
rsyslogd -f /etc/rsyslog.conf -N1
Mã:
sudo systemctl restart rsyslog
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22126%22%3E%3C/svg%3E
Cuối cùng, hãy kiểm tra trạng thái dịch vụ 'rsyslog' để đảm bảo dịch vụ đang chạy.
Mã:
sudo systemctl status rsyslog
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22248%22%3E%3C/svg%3E
Ngoài ra, hãy kiểm tra cổng '514' trên máy chủ của bạn để đảm bảo Rsyslog đang chạy.
Mã:
ss -tulpn | grep 514
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22105%22%3E%3C/svg%3E
Gửi nhật ký đến máy chủ Rsyslog
Bây giờ bạn đã cấu hình ghi nhật ký từ xa bằng Rsyslog trên máy chủ Debian của mình, hãy thử gửi nhật ký từ '192.168.10.41' đến máy chủ '192.168.10.10'. Để thực hiện việc này, bạn cần những thứ sau:- Cài đặt gói Rsyslog trên máy của bạn
- Chỉnh sửa cấu hình Rsyslog và xác định nhật ký nào sẽ được gửi đến máy chủ Rsyslog đã xóa
- Tùy chọn, thiết lập bộ đệm hàng đợi đĩa cho Rsyslog
Mã:
sudo apt install rsyslog
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22368%22%3E%3C/svg%3E
Bây giờ hãy mở tệp cấu hình mặc định '/etc/rsyslog.conf' có 'nano' biên tập viên.
Mã:
sudo nano /etc/rsyslog.conf
Mã:
# Send logs to a remote syslog server over UDP
auth,[emailprotected]:514
[emailprotected]:514
[emailprotected]:514
Mã:
# Define Disk Queue Buffer in case the server goes down
$ActionQueueFileName queue # define a file name for disk assistance.
$ActionQueueMaxDiskSpace 1g # The maximum size that all queue files together will use on disk.
$ActionQueueSaveOnShutdown on # specifies that data should be saved at shutdown
$ActionQueueType LinkedList # holds enqueued messages in memory which makes the process very fast.
$ActionResumeRetryCount -1 # prevents rsyslog from dropping messages when retrying to connect if the server is not responding,
Tiếp theo, chạy lệnh 'rsyslogd' bên dưới để kiểm tra và xác minh cấu hình Rsyslog của bạn.
Mã:
rsyslogd -f /etc/rsyslog.conf -N1
Mã:
sudo systemctl restart rsyslogd
sudo systemctl status rsyslogd
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22328%22%3E%3C/svg%3E
Đang kiểm tra tệp nhật ký trên máy chủ Rsyslog
Để đảm bảo Rsyslog của bạn hoạt động, bạn cần kiểm tra thư mục nhật ký mà bạn đã cấu hình trong mẫu. Trong ví dụ này, các tệp nhật ký từ máy chủ từ xa sẽ được lưu trữ trong thư mục '/var/log/servers'.Kiểm tra thư mục nhật ký '/var/log/servers' bằng lệnh bên dưới. Lệnh này sẽ hiển thị cho bạn thư mục của từng máy chủ.
Mã:
ls /var/log/servers
Bây giờ bạn có thể kiểm tra các tệp nhật ký bằng lệnh 'cat' hoặc 'tail' để xem chi tiết các bản ghi.
Mã:
cat /var/log/servers/logfile.log
tail -f /var/log/servers/logfile.log
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22203%22%3E%3C/svg%3E