Trang chủTin tứcLog là gì? Syslog là gì? Rsyslog là gì? Nó hoạt động như thế nào?
Log là gì? Syslog là gì? Rsyslog là gì? Nó hoạt động như thế nào?

Cùng tìm hiểu chi tiết Log là gì? Syslog là gì? Rsyslog là gì? cũng như các đặc điểm về module và phân tích file cấu hình trong bài viết ngay sau đây nhé.

Nếu các bạn là một người quản trị hệ thống hay có đam mê và có ý định tìm hiểu nó thì mình tin chắc rằng ít nhiều bạn đã từng nghe đến từ Log, Syslog và Rsyslog . Vậy Log, Syslog và Rsyslog là gì cũng như cách thức tạo ra log như thế nào. Nếu bạn đang có những thắc mắc này thì hãy cùng mình tìm hiểu thông qua bài viết này nhé!

1. Tìm hiểu về Log, Syslog, Rsyslog trên Linux

Log, Syslog, Rsyslog trên Linux
Log, Syslog, Rsyslog là gì?

1.1 Log là gì?

Log là một bộ sưu tập các ghi chép ghi lại thông tin quan trọng về các hoạt động, sự kiện, lỗi, hoặc trạng thái của một hệ thống, ứng dụng, hoặc quá trình cụ thể. Các bản ghi log liên tục theo dõi thông báo về hoạt động của cả hệ thống hoặc các dịch vụ đang chạy trên nó. 

File log có khả năng cung cấp thông tin chi tiết, giúp bạn giải quyết vấn đề mà bạn đang gặp phải, miễn là bạn biết ứng dụng hoặc tiến trình nào đang được ghi vào log cụ thể. Trong hệ thống Linux, thường thì /var/log là nơi lưu trữ tất cả các bản ghi log.

1.2 Syslog là gì?

Syslog là một giao thức tiêu chuẩn và một hệ thống logging (ghi nhật ký) được sử dụng trong hệ thống Unix và các hệ điều hành tương tự. Giao thức syslog giúp các thiết bị và ứng dụng gửi các thông điệp log đến một máy chủ log (syslog server) hoặc lưu trữ nó nơi mà người quản trị có thể theo dõi và phân tích.

Syslog được phát triển năm 1980 bởi Eric Allman. Ban đầu nó chỉ được sử dụng cho Sendmail nhưng sau khi thấy được lợi ích to lớn của nó thì nó đã được áp dụng cho hầu hết các hệ thống trên Unix-Linux. Các bạn có thể hiểu rằng Syslog sẽ lọc ra các thông điệp cần ghi lại và chỉ ra xem các thông điệp đó sẽ được lưu trữ ở đâu.

1.3 Rsyslog là gì?

Rsyslog được tạo ra như một dự án mở rộng và cải tiến từ syslog-ng, một phiên bản khác của syslog. Hiện nay Rsyslog là phần mềm được cài đặt sẵn trên hầu hết hệ thống Unix và các bản phân phối của Linux như : Fedora, openSUSE, Debian, Ubuntu, Red Hat Enterprise Linux, FreeBSD… 

Tương tự như Syslog thì Rsyslog có thể gửi dữ liệu bằng giao thức UDP và thêm TCP so với Syslog. Port mặc định của Rsyslog cũng là 514. Do Syslog đã cũ và ít được sử dụng hơn so với Rsyslog nên các bạn hãy cùng mình tìm hiểu về Rsyslog nhé.

2. Mô hình hoạt động của các file rsyslog là gì?

file rsyslog là gì? Mô hình hoạt động của file rsyslog
file rsyslog là gì? Mô hình hoạt động của file rsyslog

Mô hình Rsyslog bao gồm 4 thành phần chính:

  • Các file chứa các tệp cấu hình của Rsyslog
    • /etc/rsyslog.conf: Là file cấu hình
    • /etc/rsyslog.d: Dùng để chứa các tệp cấu hình bổ xung
  • Các file chứa các thư viện, module hỗ trợ cho Rsyslog. Các file cấu hình sẽ sử dụng các module này
    • /usr/lib64/rsyslog/
    • /usr/share/doc/rsyslog
  • Các file lưu giữ nội dung log được rsyslog chuyển đến
    • /var/log
  • Một vài file khác

3. Các module trong Rsyslog là gì?

Có thể nói là các module trong Rsyslog là một trong những phần cực kỳ quan trong. Nó quyết định xem Rsyslog có thể được những . Các module này sẽ định nghĩa công việc mà nó làm. Mỗi khi ta muốn sử dụng module nào thì sẽ khai báo ở file cấu hình.

module trong Rsyslog là gì?
module trong Rsyslog là gì?

Các module trong rsyslog thường được đặt trong thư mục /usr/lib64/rsyslog hoặc /lib64/rsyslog trên hệ thống Linux.

Để xem được các module ta có thể sử dụng lệnh locate.

  • Cài đặt locate nếu máy bạn chưa có

yum install mlocate -y

updatedb

  • Xem vị trí các file liên quan đến rsyslog

locate rsyslog

Hình ảnh vị trí các file trong Rsyslog
Hình ảnh vị trí các file trong Rsyslog

Rsyslog có thiết kế kiểu module cho phép chức năng được tải động. Trong Rsyslog có rất nhiều module nhưng các bạn có thể nhớ những module sau:

  • Input Modules: Xử lý việc thu thập log từ các nguồn khác nhau.
    • imuxsock.so: Thu thập log từ Unix socket.
    • imklog.so: Thu thập log từ Kernel.
    • imfile: Đọc log từ các tệp tin cụ thể.
    • imtcp, imudp: Thu thập log qua giao thức TCP hoặc UDP.
    • imrelp: Sử dụng RELP (Reliable Event Logging Protocol) để thu thập log.
  • Output Modules: Xử lý việc xuất log đến các đích khác nhau.
    • omfile.so: Xuất log ra file.
    • omstdout.so: Xuất log ra stdout.
    • omprog.so: Xuất log đến một chương trình khác.
    • omrelp.so: Xuất log qua RELP (Reliable Event Logging Protocol).
    • omudpspoof.so: Gửi log UDP với địa chỉ nguồn giả mạo.
  • Parser Modules: Giúp rsyslog hiểu các định dạng log cụ thể.
    • impstats.so: Thu thập thống kê về hoạt động của rsyslog.
    • imudp.so: Thu thập log qua giao thức UDP.
  • Queue Modules: Quản lý hàng đợi cho log, giúp đảm bảo log không bị mất khi máy chủ log không sẵn sàng.
    • omfile.so: Xuất log ra file với hỗ trợ hàng đợi.
  • Libraries: Các thư viện chung được sử dụng bởi các modules khác.
    • librelp.so: Thư viện RELP.
    • libgcry.so: Thư viện mã hóa.
    • libgpg-error.so: Thư viện xử lý lỗi mã hóa GPG.

4. Các nguồn sinh ra log và mức độ cảnh báo

Cảnh báo từ Log
Cảnh báo từ Log

Trong syslog, mỗi thông báo đều được dán nhãn và được gán các mức độ nghiêm trọng khác nhau. 

Bảng dưới đây là thông tin chi tiết về chúng:

Nguồn sinh ra log:

Facility Number

Nguồn tạo log

Ý nghĩa

0

kernel

Những log mà do kernel sinh ra

1

user

Log ghi lại cấp độ người dùng

2

mail

Log của hệ thống mail

3

daemon

Log của các tiến trình trên hệ thống

4

auth

Log từ quá trình đăng nhập hệ hoặc xác thực hệ thống

5

syslog

Log từ chương trình syslogd

6

lpr

Log từ quá trình in ấn

7

news

Thông tin từ hệ thống

8

uucp

Log UUCP subsystem

9

solaris-cron

Clock deamon

10

authpriv

Quá trình đăng nhập hoặc xác thực hệ thống

11

ftp

Log của FTP deamon

12

ntp

Log từ dịch vụ NTP của các subserver

13

security

Kiểm tra đăng nhập

14

console

Log cảnh báo hệ thống

15

cron

Log từ clock daemon

16-23

local 0 -local 7

Log dự trữ cho sử dụng nội bộ

Mức độ cảnh báo:

Code

Mức cảnh báo

Ý nghĩa

0

emerg

Thông báo tình trạng khẩn cấp

1

alert

Hệ thống cần can thiệp ngay

2

crit

Tình trạng nguy kịch

3

error

Thông báo lỗi đối với hệ thống

4

warn

Mức cảnh báo đối với hệ thống

5

notice

Chú ý đối với hệ thống

6

info

Thông tin của hệ thống

7

debug

Quá trình kiểm tra hệ thống

Định dạng hoàn chỉnh của một thông báo syslog gồm có 3 phần chính như sau và độ dài một thông báo không được vượt quá 1024 bytes:

<PRI> HEADER MSG

  • Số PRI được xác định bằng:  PRI = [Facility Number] x 8 + Code
  • Header: Chứa thời gian sinh ra log và hostname hoặc IP của máy
  • MSG:  chứa một số thông tin về quá trình tạo ra thông điệp đó

5. Phân tích file cấu hình của Rsyslog

File cấu hình của Rsyslog nằm ở thư mục /etc/rsyslog.conf

Để xem file cấu hình ta sử dụng lệnh

cat /etc/rsyslog.conf

file cấu hình Rsyslog
Kết quả hiển thị file cấu hình Rsyslog

Giải thích:

  • $ModLoad imuxsock:Sử dụng module imuxsock để thu thập các thông điệp từ các ứng dụng
  • $ModLoad imjournal: Sử dụng module imjournal để thu thập nhật ký hệ thống từ systemd
  • $RepeatedMsgReduction on: Chỉ lấy thông điệp mới và không lấy các thông điệp trùng
  • $WorkDirectory /var/lib/rsyslog: Xác định thư mục làm việc cho Rsyslog
  • $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat: Định dạng cho các thông điệp in ra log.(ta có thể chỉnh sửa ở chỗ này để thay đổi cấu trúc in ra thông điệp)
  • $IncludeConfig /etc/rsyslog.d/*.conf: Những file cấu hình thêm đươc phép tham gia (bắt buộc phải có đuôi .conf)
  • $OmitLocalLogging on: Tắt việc ghi log cục bộ
  • $IMJournalStateFile imjournal.state: Xác định tên tệp trạng thái cho imjournal
  • Những dòng còn lại sẽ xác định xem các thông điệp nào được ghi lại và được ghi ở đâu

6. Một số lưu ý cần nhớ

Lưu ý quan trọng về Rsyslog là gì
Lưu ý quan trọng về Rsyslog
  • File cấu hình /etc/rsyslog.conf là file chứa cấu hình chính của Rsyslog. Khi các bạn muốn thêm file cấu hình hãy thêm file vào thư mục /etc/rsyslog.d/ và yêu cầu bắt buộc là là phải có đuôi ".conf". Bạn chỉ nên sửa khi thực sự phải thay đổi chứ không phải thêm cấu hình.
  • Trong Rsyslog có rất nhiều module hỗ trợ, không bắt buộc ta phải dùng hết các module ấy nhưng mỗi khi dùng đến các tính năng ấy thì module đó bắt buộc phải cài đặt.
  • Thông thường các file log thường được lưu ở thư mục "/var/log". Để xem các file log ta có thể sử dụng các lệnh xem file thông thường như: cat ,head ,tail ,tail -f …
  • Mặc định file ghi log ban đầu có thể sử dụng 1 format chung để in ra log ta có thể thay đổi format in ra log bằng cách thay đổi biến $ActionFileDefaultTemplate trong file cấu hình  /etc/rsyslog.conf.

Tổng kết

Hy vọng bài viết đã cung cấp cho các bạn cái nhìn tổng quan về Log, Syslog và Rsyslog là gì? Rsyslog là một công cụ vô cùng mạnh mẽ để quản lý log. Nó không chỉ quản lý log và ghi log trên mỗi máy local mà nó có thể dùng để quản lý log tập trung trong một hệ thống nhất định. Đây mới chỉ là phần mở đầu về Log, Syslog và Rsyslog. Hãy cùng mình tìm hiểu thêm ở những bài viết sau trên suncloud.vn nhé.

>>> Có thể bạn quan tâm:

Tác giả:
author avatar
Mình là Huy, hiện mình đang là kỹ sư hệ thống tại SunCloud. Mình có nhiều năm kinh nghiệm, kiến thức chuyên môn về mạng, hệ thống, điện toán mây và an ninh bảo mật. Mình đã triển khai và vận hành rất nhiều dự án thực tế cho doanh nghiệp, cơ quan. Mình đã đạt được một số chứng chỉ quốc tế như CCNP, LPI, VCP, đồng thời mình vẫn đang tiếp tục học tập để trau dồi kiến thức mỗi ngày. Mình rất yêu thích công nghệ, đam mê chia sẻ những kiến thức, thông tin hữu ích cho mọi người.

Tin tức nổi bật