Làm thế nào để xem nhật ký tạp chí cũ hơn (sau khi xoay có thể?)


23

Tôi đang chạy docker trên Ubuntu 16.04 và muốn xem nhật ký. Tuy nhiên, tôi không thể xem nhật ký sau những gì tôi đoán là một số vòng quay hoặc nhật ký phát triển đến một kích thước nhất định.

Tôi chưa thực hiện bất kỳ thay đổi nào đối với journald.conf của mình, vì vậy tôi đang sử dụng mặc định ở đó.

Ví dụ về những gì tôi đang thấy:

systemctl docker statusxác nhận dịch vụ đã hoạt động since Thu 2016-10-13 18:56:28 UTC.

Tuy nhiên, khi tôi chạy một cái gì đó như journalctl -u docker.service --until "2016-10-13 22:00"- đầu ra duy nhất tôi nhận được là -- Logs begin at Fri 2016-10-14 01:18:49 UTC, end at Fri 2016-10-14 16:18:25 UTC. --tôi có thể xem các bản ghi trong phạm vi đó như mong đợi.

Câu hỏi của tôi là tại sao tôi không thể xem nhật ký cũ bằng tạp chí và làm cách nào để khắc phục sự cố này để tôi có thể xem nhật ký?

Câu trả lời:


15

Có thể là do bạn đang cố gắng xem lại tạp chí kể từ lần khởi động cuối cùng, có vẻ như đó là trường hợp bên trong hình ảnh docker.

Trên Ubuntu 16.04, bộ lưu trữ tạp chí mặc định là trong bộ nhớ. Bạn có thể thay đổi mặc định thành liên tục bằng cách mở /etc/systemd/journald.confvà thay đổi Storage=dòng từ autosang persistent. Bạn có thể cần phải khởi động lại journald systemctl restart systemd-journaldsau khi chỉnh sửa tệp cấu hình.

Tôi nghĩ rằng tạp chí nên được liên tục theo mặc định , vì vậy tôi đã mở một lỗi về điều đó.


Tôi đồng ý với bạn rằng nó phải được duy trì theo mặc định (và sẽ thay đổi cài đặt đó), nhưng tôi chắc chắn rằng máy này chưa được khởi động lại, vì vậy tôi không tin chắc rằng 100% sẽ giải quyết vấn đề của tôi. Vẫn vui vì bạn đã nộp vấn đề đó.
jdf

Trong một số điều kiện nhất định, nhật ký có thể xuất hiện trong tạp chí với siêu dữ liệu không đầy đủ, do đó chúng có thể được tìm thấy khi xem xét toàn bộ journalctlđầu ra nhưng không phải là nhật ký đơn vị. Điều này đã được biết là xảy ra để ghi lại các vấn đề ngay trước khi một đơn vị ngừng hoạt động. Các nhật ký được gửi đến journald, và sau đó journald đưa ra một truy vấn cho siêu dữ liệu. Đôi khi trong quá trình đó tồn tại. Điều đó cũng không có vẻ như nó là một sự phù hợp hoàn hảo cho trường hợp của bạn, mặc dù.
Mark Stosberg

3

Lý do điều này xảy ra là do mặc định về kích thước của các tệp journald được lưu trữ. Có nhiều chi tiết hơn về điều này trong các tài liệu . Thật đáng để đọc toàn bộ phần tôi đã liên kết, nhưng mặc định hoạt động như vậy:

journald will use 10% of the disk or 4G, whichever is smaller.

journald will leave free 15% of the disk or 4G, whichever is larger.

Để xem nhật ký từ lần khởi động cuối cùng, giả sử bạn có Storage=persistenttrong journald.conf, như các ghi chú trả lời khác, bạn có thể sử dụng --boot=-1cờ trên journalctlcác lệnh để nhận nhật ký từ lần khởi động trước.

Trong trường hợp của OP nơi họ chắc chắn rằng máy chủ chưa được khởi động lại, việc mất nhật ký chỉ đơn giản là do SystemMaxUsevà / hoặc SystemKeepFreemặc định.

Lưu ý: Tôi là OP và câu hỏi này vẫn còn gây khó khăn, vì tôi đã có thêm kinh nghiệm với journald (và rtfm), tôi sẽ đăng bài này lên đây với hy vọng nó sẽ giúp người khác.

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.