Saya menjalankan buruh pelabuhan di ubuntu 16.04 dan ingin melihat log. Namun, saya tidak dapat melihat log setelah apa yang saya tebak adalah semacam rotasi atau log tumbuh ke ukuran tertentu.
Saya belum membuat perubahan pada journald.conf saya, jadi saya menggunakan default di sana.
Contoh dari apa yang saya lihat:
systemctl docker status
mengonfirmasi layanan telah aktif since Thu 2016-10-13 18:56:28 UTC
.
Namun, ketika saya menjalankan sesuatu seperti journalctl -u docker.service --until "2016-10-13 22:00"
- satu-satunya output yang saya dapatkan adalah -- Logs begin at Fri 2016-10-14 01:18:49 UTC, end at Fri 2016-10-14 16:18:25 UTC. --
saya dapat melihat log dalam kisaran itu seperti yang diharapkan.
Pertanyaan saya adalah mengapa saya tidak bisa melihat log lama dengan journalctl, dan bagaimana saya bisa memperbaiki masalah ini sehingga saya bisa melihat log?
journalctl
output penuh tetapi tidak log unit. Ini diketahui terjadi pada masalah log tepat sebelum unit dimatikan. Log dikirim ke journald, dan kemudian journald mengeluarkan kueri untuk metadata. Kadang-kadang sementara itu proses itu ada. Itu juga tidak terdengar seperti itu sangat cocok untuk kasus Anda.Alasan ini terjadi adalah karena default pada ukuran file journald yang disimpan. Ada lebih banyak detail tentang ini dalam dokumen . Ada baiknya membaca seluruh bagian yang saya tautkan, tetapi defaultnya berfungsi seperti ini:
Untuk melihat log dari boot terakhir, dengan asumsi Anda ada
Storage=persistent
di journald.conf Anda, seperti yang dicatat oleh catatan lain, Anda dapat menggunakan--boot=-1
flag padajournalctl
perintah untuk mendapatkan log dari hanya boot sebelumnya.Dalam kasus OP di mana mereka yakin host tidak di-reboot, hilangnya log hanya disebabkan oleh
SystemMaxUse
dan / atauSystemKeepFree
default.Catatan: Saya OP dan pertanyaan ini masih memiliki upvotes yang masuk, jadi karena saya telah memperoleh lebih banyak pengalaman dengan journald (dan rtfm) saya memposting ini di sini dengan harapan membantu orang lain.
sumber