Syslog là viết tắt của System Logging Protocol (tạm dịch sang tiếng Việt là Giao thức ghi nhật ký hệ thống) và là một giao thức tiêu chuẩn được sử dụng để gửi nhật ký hệ thống hoặc thông báo sự kiện đến một máy chủ cụ thể, máy chủ này được gọi là máy chủ nhật ký hệ thống “Syslog server”. Nó chủ yếu được sử dụng để thu thập các bản ghi nhật ký thiết bị “device logs” khác nhau từ một số máy khác nhau ở một vị trí trung tâm để theo dõi và xem xét.
Syslog là một giao thức client/server là giao thức dùng để chuyển log và thông điệp đến máy nhận log. Máy nhận log thường được gọi là syslogd, syslog daemon hoặc syslog server. Syslog có thể gửi qua UDP hoặc TCP. Các dữ liệu được gửi dạng cleartext. Syslog dùng port 514.
Syslog được phát triển năm 1980 bởi Eric Allman, nó là một phần của dự án Sendmail, và ban đầu chỉ được sử dụng duy nhất cho Sendmail. Nó đã thể hiện giá trị của mình và các ứng dụng khác cũng bắt đầu sử dụng nó. Syslog hiện nay trở thành giải pháp khai thác log tiêu chuẩn trên Unix-Linux cũng như trên hàng loạt các hệ điều hành khác và thường được tìm thấy trong các thiết bị mạng như router .
Trong năm 2009, Internet Engineering Task Forec (IETF) đưa ra chuẩn syslog trong RFC 5424. Trong chuẩn 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. Các loại phần mềm sau có thể sinh ra thông báo: auth, authPriv, daemon, cron, ftp, dhcp, kern, mail, syslog, user,… Với các mức độ nghiêm trọng từ cao nhất trở xuống Emergency, Alert, Critical, Error, Warning, Notice, Info, and Debug.

Mục đích của Syslog
Syslog được sử dụng như một tiêu chuẩn, chuyển tiếp và thu thập log được sử dụng trên một phiên bản Linux. Syslog xác định mức độ nghiêm trọng (severity levels) cũng như mức độ cơ sở (facility levels) giúp người dùng hiểu rõ hơn về nhật ký được sinh ra trên máy tính của họ. Log (nhật ký) có thể được phân tích và hiển thị trên các máy chủ được gọi là máy chủ Syslog.Giao thức syslog có những yếu tố sau:
Defining an architecture (xác định kiến trúc): Syslog là một giao thức, nó là một phần của kiến trúc mạng hoàn chỉnh, với nhiều máy khách và máy chủ.
Message format (định dạng tin nhắn): syslog xác định cách định dạng tin nhắn. Điều này rõ ràng cần phải được chuẩn hóa vì các bản ghi thường được phân tích cú pháp và lưu trữ vào các công cụ lưu trữ khác nhau. Do đó, chúng ta cần xác định những gì một máy khách syslog có thể tạo ra và những gì một máy chủ nhật ký hệ thống có thể nhận được.
Specifying reliability (chỉ định độ tin cậy): syslog cần xác định cách xử lý các tin nhắn không thể gửi được. Là một phần của TCP/IP, syslog rõ ràng sẽ bị thay đổi trên giao thức mạng cơ bản (TCP hoặc UDP) để lựa chọn.
Dealing with authentication or message authenticity (xử lý xác thực hoặc xác thực thư): syslog cần một cách đáng tin cậy để đảm bảo rằng máy khách và máy chủ đang nói chuyện một cách an toàn và tin nhắn nhận được không bị thay đổi.
Kiến trúc của Syslog
Một máy Linux độc lập hoạt động như một máy chủ syslog của riêng mình. Nó tạo ra dữ liệu nhật ký, nó được thu thập bởi rsyslog và được lưu trữ ngay vào hệ thống tệp.
Đây là một tập hợp các ví dụ kiến trúc xung quanh nguyên tắc này:
Syslog gửi tin nhắn hoạt động như thế nào?
– Chuyển tiếp nhật ký hệ thống (syslog forwarding) bao gồm gửi log máy khách đến một máy chủ từ xa để chúng được tập trung hóa, giúp phân tích log dễ dàng hơn.
– Hầu hết thời gian, quản trị viên hệ thống không giám sát một máy duy nhất, nhưng họ phải giám sát hàng chục máy, tại chỗ và ngoài trang web.
– Kết quả là, việc gửi nhật ký đến một máy ở xa, được gọi là máy chủ ghi log tập trung, sử dụng các giao thức truyền thông khác nhau như UDP hoặc TCP
Syslog Server và tại sao phải sử dụng log tập trung:
– Máy chủ nhật ký hệ thống “Syslog Server” còn được gọi là bộ thu nhật ký hệ thống “syslog collector” hoặc bộ nhận nhật ký hệ thống “syslog receiver”.
– Các thông báo nhật ký hệ thống “Syslog messages” được gửi từ thiết bị tạo đến bộ thu. Địa chỉ IP của Syslog Server đích phải được định cấu hình trên chính thiết bị, bằng dòng lệnh Command Line hoặc thông qua tệp conf. Sau khi được cấu hình, tất cả dữ liệu Syslog sẽ được gửi đến máy chủ đó. Không có cơ chế nào trong giao thức Syslog Protocol để một máy chủ khác yêu cầu dữ liệu nhật ký hệ thống.
– Trong khi hầu hết các triển khai Unix và các nhà cung cấp mạng, như Cisco, có bộ thu thập Syslog collectors, của riêng họ, thì cũng có một số công cụ khác.
– Phần mềm giám sát PRTG của Paessler cung cấp cảm biến nhận Syslog Receiver Sensor được tích hợp sẵn. Cảm biến này thu thập tất cả các thông báo Syslog Messages được gửi. Để sử dụng chức năng này, quản trị viên cần thêm Bộ thu Syslog Receiver và sau đó định cấu hình địa chỉ IP của máy chủ đó làm máy chủ đích cho dữ liệu nhật ký hệ thống trên tất cả các thiết bị cần giám sát.
– Sau khi tập hợp, bảng điều khiển hiển thị:
Số lượng thông báo nhật ký hệ thống Syslog messages nhận được mỗi giây.
Số lượng thông báo được phân loại là cảnh báo “Warning” mỗi giây.
Số lượng thông báo được phân loại là lỗi “Error” trên giây.
Số lượng gói tin bị rớt “dropped messages” mỗi giây.
– Giao thức nhật ký hệ thống Syslog Protocol có thể tạo ra rất nhiều thông báo. Syslog chỉ đơn giản là chuyển tiếp các thông báo nhanh nhất khi nó tạo ra chúng. Do đó, khả năng quan trọng nhất đối với máy chủ nhật ký hệ thống Syslog Server là khả năng lọc và phản ứng đúng cách với dữ liệu nhật ký hệ thống đến.
– Bộ cảm biến nhận “PRTG Syslog Receiver Sensor” cung cấp khả năng thiết lập các quy tắc lọc. Các quy tắc này cho phép các thông báo nhật ký hệ thống được bao gồm hoặc loại trừ dưới dạng cảnh báo “Warning” hoặc lỗi “Error”, bất kể chúng được tạo ban đầu như thế nào trên thiết bị. Bộ lọc này đảm bảo rằng quản trị viên nhận được thông báo về tất cả các lỗi mà họ muốn biết mà không bị choáng ngợp bởi các lỗi ít quan trọng hơn.