Logs rất hữu ích để phân tích và khắc phục mọi sự cố liên quan đến hệ thống và ứng dụng trong Linux. Theo mặc định, tất cả các tệp nhật ký được đặt trong thư mục / var / log trong các hệ điều hành dựa trên Linux. Có một số loại tệp nhật ký bao gồm, cron, kernel, người dùng, bảo mật và hầu hết các tệp này được kiểm soát bởi dịch vụ Rsyslog.
Rsyslog là một hệ thống mạnh mẽ và an toàn để xử lý nhật ký. Máy chủ Rsyslog nhận nhật ký qua mạng từ một số máy chủ vật lý hoặc ảo hóa và theo dõi sức khỏe của các dịch vụ khác nhau. Với máy chủ Rsyslog, bạn có thể theo dõi nhật ký cho các máy chủ, thiết bị mạng và ứng dụng từ xa khác từ vị trí tập trung.
Trong hướng dẫn này, chúng tôi sẽ giải thích cách định cấu hình máy chủ Rsyslog trên máy chủ Ubuntu 18.04.
Điều kiện tiên quyết
- Hai máy chủ chạy Ubuntu 18.04.
- Một địa chỉ IP tĩnh 192.168.0.101 được định cấu hình trên máy chủ Rupyslog và 192.168.0.102 được định cấu hình trên máy khách Rupyslog.
- Một mật khẩu gốc được cấu hình trên cả hai máy chủ.
Cài đặt Rsyslog
Theo mặc định, Rsyslog được cài đặt trong máy chủ Ubuntu 18.04. Nếu không được cài đặt, bạn có thể cài đặt nó bằng cách chạy lệnh sau:
apt-get install rsyslog -y
Sau khi cài đặt Rsyslog, bạn có thể kiểm tra phiên bản của Rupyslog bằng lệnh sau:
rsyslogd -v
Bạn sẽ nhận được đầu ra sau:
rsyslogd 8.32.0, compiled with: PLATFORM: x86_64-pc-linux-gnu PLATFORM (lsb_release -d): FEATURE_REGEXP: Yes GSSAPI Kerberos 5 support: Yes FEATURE_DEBUG (debug build, slow code): No 32bit Atomic operations supported: Yes 64bit Atomic operations supported: Yes memory allocator: system default Runtime Instrumentation (slow code): No uuid support: Yes systemd support: Yes Number of Bits in RainerScript integers: 64 See http://www.rsyslog.com for more information.
Bạn cũng có thể kiểm tra trạng thái của Rsyslog bằng lệnh sau:
systemctl status rsyslog
Bạn sẽ thấy đầu ra sau:
? rsyslog.service - System Logging Service Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2019-10-22 04:28:55 UTC; 1min 31s ago Docs: man:rsyslogd(8) http://www.rsyslog.com/doc/ Main PID: 724 (rsyslogd) Tasks: 4 (limit: 1114) CGroup: /system.slice/rsyslog.service ??724 /usr/sbin/rsyslogd -n Oct 22 04:28:53 ubuntu1804 systemd[1]: Starting System Logging Service... Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: imuxsock: Acquired UNIX socket '/run/systemd/journal/syslog' (fd 3) from systemd. [v8.32.0] Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: rsyslogd's groupid changed to 106 Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: rsyslogd's userid changed to 102 Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: [origin software="rsyslogd" swVersion="8.32.0" x-pid="724" x-info="http://www.rsyslog.com"] start Oct 22 04:28:55 ubuntu1804 systemd[1]: Started System Logging Service.
Cấu hình máy chủ Rsyslog
Rsyslog hiện đã được cài đặt và đang chạy. Tiếp theo, bạn sẽ cần cấu hình nó để chạy trong chế độ máy chủ. Bạn có thể làm điều đó bằng cách chỉnh sửa tệp /etc/rsyslog.conf.
nano /etc/rsyslog.conf
Trước tiên, bạn sẽ cần xác định giao thức là UDP hoặc TCP hoặc cả hai.
Để sử dụng cả kết nối UDP và TCP cùng lúc tìm kiếm và bỏ ghi chú các dòng dưới đây:
$ ModLoad imudp $ UDPServerRun 514 $ ModLoad imtcp $ InputTCPServerRun 514
Tiếp theo, xác định mạng con, IP hoặc tên miền cụ thể để giới hạn quyền truy cập như được hiển thị bên dưới:
$AllowedSender TCP, 127.0.0.1, 192.168.0.0/24, *.example.com $AllowedSender UDP, 127.0.0.1, 192.168.0.0/24, *.example.com
Tiếp theo, bạn sẽ cần tạo một mẫu để báo cho máy chủ Rsyslog cách lưu trữ các thông báo nhật ký hệ thống đến. Thêm các dòng sau ngay trước phần TRỰC TIẾP TOÀN CẦU:
$template remote-incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" *.* ?remote-incoming-logs & ~
Lưu và đóng tệp khi bạn hoàn thành. Sau đó, kiểm tra cấu hình Rsyslog xem có lỗi cú pháp nào không bằng lệnh sau:
rsyslogd -f /etc/rsyslog.conf -N1
Bạn sẽ thấy đầu ra sau:
rsyslogd: version 8.32.0, config validation run (level 1), master config /etc/rsyslog.conf rsyslogd: End of config validation run. Bye.
Cuối cùng, khởi động lại dịch vụ Rsyslog bằng lệnh sau:
systemctl restart rsyslog
Bây giờ, hãy xác minh rằng Rsyslog đang lắng nghe trên TCP / UDP bằng lệnh sau:
netstat -4altunp | grep 514
Bạn sẽ nhận được đầu ra sau:
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 1332/rsyslogd udp 0 0 0.0.0.0:514 0.0.0.0:* 1332/rsyslogd
Cấu hình máy khách Rupyslog
Máy chủ Rsyslog được cài đặt và cấu hình để nhận nhật ký từ các máy chủ từ xa.
Bây giờ, bạn sẽ cần phải định cấu hình máy khách Rsyslog để gửi tin nhắn nhật ký hệ thống đến máy chủ Rsyslog từ xa.
Đăng nhập vào máy khách và mở tệp cấu hình Rsyslog như hình dưới đây:
nano /etc/rsyslog.conf
Thêm các dòng sau vào cuối tập tin:
##Enable sending of logs over UDP add the following line: *.* @192.168.0.101:514 ##Enable sending of logs over TCP add the following line: *.* @@192.168.0.101:514 ##Set disk queue when rsyslog server will be down: $ActionQueueFileName queue $ActionQueueMaxDiskSpace 1g $ActionQueueSaveOnShutdown on $ActionQueueType LinkedList $ActionResumeRetryCount -1
Lưu và đóng tập tin. Sau đó, khởi động lại máy chủ Rsyslog để áp dụng các thay đổi cấu hình:
systemtcl restart rsyslog
Xem nhật ký khách hàng
Tại thời điểm này, ứng dụng khách Rupyslog được cấu hình để gửi nhật ký của họ đến máy chủ Rupyslog.
Bây giờ, đăng nhập vào máy chủ Rsyslog và kiểm tra thư mục / var / log. Bạn sẽ thấy mục nhập với tên máy chủ của máy khách của bạn bao gồm một số tệp nhật ký:
ls /var/log/rsyslog-client/
Đầu ra:
CRON.log kernel.log rsyslogd-2039.log rsyslogd.log sudo.log wpa_supplicant.log
Phần kết luận
Trong bài viết trên, chúng tôi đã tìm hiểu cách cài đặt và định cấu hình máy chủ Rsyslog trên máy chủ Ubuntu 18.04. Chúng tôi cũng đã tìm hiểu cách định cấu hình ứng dụng khách Rupyslog để gửi nhật ký đến máy chủ Rupyslog. Hãy hỏi tôi nếu bạn có bất kỳ câu hỏi nào.