tl; dr
Trên CentOS 7, bạn phải kích hoạt lưu trữ thông điệp nhật ký liên tục:
# mkdir /var/log/journal
# systemd-tmpfiles --create --prefix /var/log/journal
# systemctl restart systemd-journald
Mặt khác, các thông điệp nhật ký không được giữ lại giữa các lần khởi động.
Chi tiết
Cho dù journald
giữ lại thông điệp tường trình từ các lần khởi động trước được cấu hình thông qua /etc/systemd/journald.conf
. Cài đặt mặc định trong CentOS 7 là:
[Journal]
Storage=auto
Trường hợp trang người đàn ông journald.conf giải thích auto
là:
Một trong những "dễ bay hơi", "dai dẳng", "tự động" và "không". Nếu "không ổn định", dữ liệu nhật ký nhật ký sẽ chỉ được lưu trữ trong bộ nhớ, tức là bên dưới hệ thống phân cấp / run / log / tạp chí (được tạo nếu cần). Nếu "liên tục", dữ liệu sẽ được lưu trữ tốt nhất trên đĩa, tức là bên dưới phân cấp / var / log / tạp chí (được tạo nếu cần), với dự phòng / run / log / tạp chí (được tạo nếu cần), trong khi khởi động sớm và nếu đĩa không thể ghi. "Tự động " tương tự như "liên tục" nhưng thư mục / var / log / tạp chí không được tạo nếu cần, để sự tồn tại của nó kiểm soát nơi dữ liệu nhật ký đi .
(nhấn mạnh của tôi)
Các trang người đàn ông systemd-journald.service do đó khẳng định rằng:
Theo mặc định, tạp chí lưu trữ dữ liệu nhật ký trong / run / log / tạp chí /. Vì / run / không ổn định, dữ liệu nhật ký sẽ bị mất khi khởi động lại. Để làm cho dữ liệu liên tục, việc tạo / var / log / tạp chí / nơi systemd-journald sẽ lưu trữ dữ liệu là đủ.
Rõ ràng, mặc định đã được thay đổi trong Fedora 19 (để lưu trữ liên tục) và vì CentOS 7 có nguồn gốc từ Fedora 18 - theo mặc định, nó vẫn không tồn tại ở đó. Tính bền bỉ được triển khai theo mặc định bên ngoài journald thông qua /var/log/messages
và các phiên bản xoay /var/log/messages-YYYYMMDD
được viết bởi rsyslogd (chạy theo mặc định và nhận đầu vào từ journald).
Do đó, để cho phép ghi nhật ký liên tục với journald trong RHEL / CentOS 7, người ta phải
# mkdir /var/log/journal
và sau đó sửa quyền và khởi động lại tạp chí, ví dụ thông qua
# systemd-tmpfiles --create --prefix /var/log/journal
# systemctl restart systemd-journald
systemctl restart systemd-journald
nên làm điều đó. Vì vậy, không cần khởi động lại.