Bagaimana cara menonaktifkan spam pesan systemd "Time telah berubah" di jurnal systemd saat menggunakan sdwdate?

10

Karena penggunaan gabungan peregangan Debian, yang menggunakan systemd secara default, dan sdwdate (yang menggunakan Adjuster Clock Lambat ( gh )), jam sistem saya sering berubah.

Sebagai hasilnya journalctl -fakan terus-menerus di-spam oleh.

[...]
Nov 07 13:46:49 host systemd[766]: Time has been changed
Nov 07 13:46:50 host systemd[766]: Time has been changed
Nov 07 13:46:51 host systemd[766]: Time has been changed
[...]

Ini bukan masalah Debee wheezy yang menggunakan sysvinit.

Bagaimana systemd dapat dikonfigurasi untuk tidak mengirim Time has been changedpesan ke jurnal?

Sebuah pertanyaan terkait Bagaimana cara menonaktifkan spam pesan "Systemd telah berubah" di / var / log / syslog di Debian jessie? telah dipecahkan, tetapi solusi itu tidak akan berfungsi di sini.

adrelanos
sumber
systemdsangat peduli tentang timer. Ini tampaknya dipicu oleh memperbarui jam perangkat keras misalnya hwclock --systohc, apakah Anda memanggilnya setiap detik?
mr.spuratic
@ mr.spuratic melihat sumber yang ditautkan, yang tampaknya persis seperti yang terjadi.
Dan Getz
Ya, itulah yang dilakukan penyesuaian jam lambat (sclockadj). @ mr.spuratic
adrelanos
1
permintaan fitur systemd: option to disable systemd's “Time has been changed” message spam in journal log github.com/systemd/systemd/issues/5207
adrelanos

Jawaban:

10

Pesan tersebut berasal dari src/core/manager.cdalam sumber sistemd. Hardcoded untuk menggunakan level logging sistem INFO.

Secara default systemd mencatat pesan yang memiliki level INFO, jika Anda dapat mengubahnya dengan mengubah /etc/systemd/system.confke:

LogLevel=notice

tetapi Anda juga akan kehilangan beberapa pesan informasi lainnya.

Mungkin lebih baik menambal src/core/manager.cuntuk membaca:

 log_struct(LOG_DEBUG,
            MESSAGE_ID(SD_MESSAGE_TIME_CHANGE),
            "MESSAGE=Time has been changed",
            NULL);

( LOG_DEBUGdidefinisikan sebagai level selanjutnya yang lebih tinggi, dan tertinggi sys/syslog.h), atau komentar seluruh pesan.

Saya belum menemukan cara untuk hanya melaporkan perubahan timer yang memiliki ukuran minimum X detik. Tetapi jika itu mungkin, tidak diragukan lagi akan membuat patch yang lebih kompleks dan rawan kesalahan.

Anthon
sumber