Tại sao dấu thời gian nhật ký hệ thống không bao gồm một năm?


9

Tôi dự định lưu trữ một số thông điệp tường trình của mình trong hơn một năm, nhưng mô tả dấu thời gian nhật ký hệ thống từ RFC3164 không bao gồm một năm trong phần dấu thời gian của mục nhật ký. Một dấu thời gian ví dụ mà tôi tìm thấy trong các thông điệp nhật ký CentOS của mình là Mar 16 07:46:24.

RFC5424 được cho là làm cho RFC3164 trở nên lỗi thời, nhưng dường như rất phổ biến trên các hệ điều hành để sử dụng một mmm ddngày trong nhật ký. RFC5424 đã sáu tuổi, vì vậy tôi ngạc nhiên khi nó không chuẩn. Tại sao một năm không có trong RFC3164? Là nhật ký có nghĩa là rất tạm thời? Lý do cho việc không bao gồm một năm trong nhật ký ngày hôm nay là gì?


Từ quan điểm thực tế, nếu bạn xoay logfiles, thông tin bổ sung có sẵn từ tên tệp hoặc siêu dữ liệu tệp của tệp được xoay.
Ulrich Schwarz

ngày tạo tệp nhật ký sẽ không giúp đỡ?
Milind Dumbare

5
Tôi nghi ngờ "khả năng tương thích với nhật ký nhật ký hệ thống BSD theo giá trị 35 năm" là lý do, nhưng không có bằng chứng tài liệu. Cuối cùng, khi bạn chuyển sang systemd(kháng là vô ích), bạn có thể sử dụng tùy chọn journalctlcủa mình -o short-isođể có được dấu thời gian ISO 8601 thực.
Đánh dấu Plotnick

@MilindDumbare than ôi, ngày tạo tệp nhật ký không đáng tin cậy. Các tệp nhật ký có thể được sao chép trước khi phân tích. Ngoài ra, syslog cho phép các tin nhắn được chuyển từ máy này sang máy khác, vì vậy ngày tạo trên máy nơi các thông điệp nhật ký hệ thống được thu thập có thể không liên quan gì đến nơi chúng được gửi. Chúng thậm chí có thể được thu thập trong cơ sở dữ liệu, và không phải trong một tệp.
vy32

Bất cứ ai đang tìm kiếm một tài liệu tham khảo chắc chắn có thể sử dụng @MarkPlotnick làm tài liệu tham khảo. Ông được khoảng một thời gian, quá ... Xem: books.google.com/...
vy32

Câu trả lời:


4

Nếu bạn muốn thêm dấu thời gian tùy chỉnh vào đầu ra nhật ký hệ thống của mình, có lẽ tốt nhất nên sử dụng syslog-ng.

Theo bài đăng này, bạn có thể sử dụng ts_format()để chỉ định năm trong syslog-ng.

Theo syslog-ng.conf(5)trang người đàn ông:

Ứng dụng syslog-ng có một số tùy chọn toàn cầu điều chỉnh việc sử dụng DNS, định dạng dấu thời gian được sử dụng và các điểm chung khác. Mỗi tùy chọn có thể có các tham số, tương tự như thông số kỹ thuật của trình điều khiển. Để đặt tùy chọn chung, hãy thêm một câu lệnh tùy chọn vào tệp cấu hình syslog-ng bằng cú pháp sau:

options { option1(params); option2(params); ... };


0

Nó không bao gồm năm vì định dạng nhật ký hệ thống có từ những năm 1980 và các lập trình viên trước đó ít cẩn thận hơn. Hầu hết các tệp nhật ký được viết cho con người đọc, không được tự động phân tích cú pháp và mọi người đều biết đó là năm nào.


1
Bạn có một tài liệu tham khảo cho điều đó, với một ngày cụ thể hơn so với "những năm 1980"? (Phần 5.1 của RFC3164 sẽ là một nơi tốt để bắt đầu.) Vì hiện tại, câu trả lời này khá mơ hồ và trông giống như một phỏng đoán hoặc ý kiến.
JigglyNaga

Chà, tôi bắt đầu sử dụng BSD 4.2 Unix vào năm 1984. Syslog xuất hiện trong BSD 4.2 và đó là khi quyết định được đưa ra trong tháng và ngày chứ không phải năm. ( webcache.googleusercontent.com/ từ )
vy32

Xem bình luận ở trên về Mark Poltnick.
vy32
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.