Saya punya satu layanan khusus, yang log jarang, tetapi informasi penting. Saya telah mengaturnya beberapa bulan yang lalu, dan hari ini saya journalctl -n 50 --unit=my-service
hanya menjalankan untuk menemukan tidak ada entri.
Saya sangat senang dengan perilaku ini untuk sebagian besar unit - Saya juga perlu sesuatu yang terjadi segera (atau paling tidak beberapa hari yang lalu), dan saya tidak peduli dengan catatan lama.
Namun, adakah cara untuk memastikan journald
memiliki kebijakan penyimpanan dan penyimpanan yang independen untuk catatan satu unit tertentu? Saya ingin tetap menggunakan log itu selama 5 tahun - berapa pun ukurannya. Log unit lain harus tidak terpengaruh oleh ini, dan mempertahankan perilaku mereka yang ada.
Saya agak kehilangan pemahaman journald.conf(5)
, dan tidak bisa mencari tahu kapan konfigurasi per-unit mungkin sama sekali. Jika ya - akan menghargai contoh konkret singkat - file mana yang harus saya edit / buat dan apa yang harus saya tulis. Atau, jika Anda tahu pasti itu tidak mungkin dilakukan - itu akan menjadi jawaban yang baik juga.
CATATAN: Kasus khusus saya melibatkan host Arch Linux, tapi saya kira ini tidak terlalu menjadi masalah.
sumber
Jawaban:
Sepertinya saya kemungkinan besar kurang beruntung dengan journald. Kecuali saya akan mencari cara untuk menelurkan jurnal "penyimpanan jangka panjang" independen (seperti saat ini ada jurnal per pengguna yang berbeda), tapi saya tidak yakin itu adalah pendekatan yang masuk akal dan waras. Saya kira, pengaturan syslogd (dan logrotate) akan lebih mudah.
Fitur ini tidak hadir pada akhir 2014 , seperti yang dikonfirmasi oleh Lennart sendiri.
Dan sepertinya belum ada di sini. Setidaknya, baris "journald: memungkinkan waktu retensi per-prioritas dan per-layanan saat memutar / menyedot debu" masih ada dalam file TODO (tautan ke revisi dari 2016-07-11).
sumber
Sangat sederhana untuk menghasilkan file log. Secara default, semua logging ke journald juga masuk ke syslog dan default ini harus ada. Rsyslog.conf mengontrol bagaimana entri yang diteruskan ke syslog ditangani. Selain itu
SyslogFacility
defaultnyadaemon
jadi entri log untuk layanan apa pun biasanya berakhir didaemon.log
file dalam/var/log
.Di file layanan Anda, tambahkan ke bagian [layanan]
(jumlahnya bisa antara 0 & 7) https://www.freedesktop.org/software/systemd/man/systemd.exec.html
Ubah /etc/rsyslog.conf (temukan baris yang ada untuk dimodifikasi) sehingga local2 dicatat ke file tertentu (baris pertama) dan idealnya tidak masuk ke syslog dengan menambahkan
local2.none
seperti yang ditunjukkan (ini sudah ada dalam jurnal).[sunting] Anda juga harus mengubah tangkapan semua
Tentu saja retensi yang sebenarnya perlu dilakukan dengan logrotate.
HTH
sumber