Trường hợp một / opt gói ghi nhật ký?


13

Tôi đang cài đặt một gói tùy chỉnh để /opt/package_name, lưu trữ các tệp cấu hình trong /etc/opt/package_namevà các tệp tĩnh trong /var/opt/package_name/static/- tất cả đều tuân theo các quy ước được đề xuất bởi FHS. [ 1 ] [ 2 ] [ 3 ]

Tôi cũng cần lưu trữ một số logfiles. Tôi muốn chúng có thể được khám phá bằng các công cụ phân tích, vì vậy chúng cũng nên ở một vị trí thông thường. Những thứ này nên đi vào:

  • /var/log/package_name (giống như gói hệ thống, mặc dù đây là gói tùy chỉnh)
  • /var/opt/package_name/log(theo /var/optquy ước - nhưng điều này có thể khám phá được không?)
  • thứ gì khác?

Bạn có một ví dụ về một công cụ phân tích trong tâm trí quét / var / log không?
nguồn

5
Tại sao không phải là câu trả lời syslog?
Joshua

Câu trả lời:


19

Tôi sẽ đặt chúng vào /var/log/package_name; nó thỏa mãn nguyên tắc ít bất ngờ tốt hơn /var/opt/package_name/log. Tôi không có một trích dẫn nào cho việc này; nó chỉ đơn giản phù hợp với nơi tôi muốn tìm nhật ký.

Tôi cũng có thể từ bỏ việc viết các tệp nhật ký của riêng mình, và thay vào đó đăng nhập syslogbằng một thẻ và phương tiện thích hợp; nếu tôi đang tìm kiếm sự tích hợp sạch với các công cụ phân tích đã được thiết lập, tôi không tin rằng tôi có thể làm tốt hơn cho một kênh truyền thông:

  • Mọi công cụ chung với "phân tích nhật ký" là một tính năng được liệt kê đã xem syslog.
  • Nhật ký phát hành tệp và ngữ nghĩa xoay được xử lý cho tôi; Tôi không phải thiết lập một cơ chế logrotateđể bảo tôi bỏ tập tin và mở một cái mới. Tôi thậm chí không phải nói logrotatevề các tập tin mới để xoay!
  • Việc giảm tải nhật ký đến các máy chủ ghi nhật ký trung tâm được xử lý cho tôi, nếu trang web yêu cầu; Các công cụ đã được thiết lập hiện có như rsyslogsẽ được sử dụng nếu cần, vì vậy tôi không phải tự mình suy nghĩ về việc thực hiện tính năng đó.
  • Kiểm soát truy cập (POSIX và, ví dụ: SELinux) xung quanh các tệp nhật ký đã được xử lý, vì vậy tôi không cần quan tâm nhiều đến ngữ nghĩa bảo mật dành riêng cho phân phối.

Trừ khi tôi đang thực hiện một số định dạng nhị phân tùy chỉnh cho nhật ký của mình và thậm chí sau đó, tôi thích các định dạng văn bản có thể phân tích cú pháp thân thiện với hệ thống như JSON. Tôi có một thời gian khó khăn để chứng minh các tệp nhật ký riêng của mình; công cụ phân tích đã xem syslognhư một con chim ưng.


8

Khi bạn tuân theo các quy ước FHS cho các tệp cấu hình gói của mình, bạn nên nhất quán và lưu trữ các tệp nhật ký /var/opt/package_name/log.

FHS tuyên bố:

Dữ liệu biến của các gói trong / opt phải được cài đặt trong / var / opt /

và cũng nói

Không có tệp gói nào khác có thể tồn tại bên ngoài phân cấp / opt, / var / opt và / etc / opt ngoại trừ các tệp gói phải nằm trong các vị trí cụ thể trong cây hệ thống tệp để hoạt động chính xác. Ví dụ: các tệp khóa thiết bị phải được đặt trong / var / lock và các thiết bị phải được đặt trong / dev.

Có các tệp nhật ký bên dưới /var/optkhông ngăn gói hoạt động đúng, vì vậy sử dụng /var/logthay vào đó rõ ràng vi phạm tiêu chuẩn.

Không rõ ý của bạn là "điều này có thể khám phá được không?" vì các nhật ký tùy chỉnh của bạn có khả năng được xử lý bởi các công cụ tùy chỉnh nhưng giả sử một công cụ chung được thiết kế để xử lý chúng, nó sẽ khám phá vị trí tiêu chuẩn cho các gói không được đóng gói như của bạn.

Lưu ý rằng đó sysloglà một phương tiện hữu ích để tập trung và điều chỉnh cấu hình ghi nhật ký nhưng không giải quyết được hoàn toàn vấn đề về nơi lưu trữ nhật ký khi bạn phải thực hiện nó trong các tệp đơn giản với đường dẫn nổi tiếng. Một số tệp đôi khi được lưu trữ trong thư mục nhật ký ứng dụng được thiết kế để có thể truy cập bằng đường dẫn dự kiến ​​của chúng bởi chính ứng dụng hoặc các chương trình liên quan, ví dụ: tệp lưu trữ ID tiến trình, vì vậy syslogsẽ không hoạt động đối với chúng.

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.