Saya menjalankan apa yang dimaksud dengan server vanilla Ubuntu 16.04, dan saya mencoba membungkus kepala saya bagaimana logging diatur secara default. Saya dapat melihat keduanya journald
dan rsyslog
sudah diinstal dan dijalankan, tetapi sama sekali tidak jelas bagi saya bagaimana pesan log sedang diproses.
Sebagian besar pesan tampaknya muncul baik di dalam /var/log/syslog
maupun melalui journalctl
, tetapi saya tidak dapat melihat konfigurasi eksplisit untuk meneruskan antara keduanya di /etc/systemd/journald.conf
(yang pada dasarnya semua dikomentari secara default), /etc/rsyslog.conf
atau /etc/rsyslog.d/50-default.conf
. Saya mencoba mencari dokumentasi resmi, atau bahkan sebuah posting blog yang menjelaskan bagaimana keduanya diatur di Ubuntu, tetapi belum berhasil menemukan apa pun.
Untuk menambah kebingungan saya, saya telah mengeksekusi logger -p local1.info Test
di host, dan menemukan bahwa tidak ada yang ditulis /var/log/syslog
, sementara pesan itu muncul di bawah journalctl
.
Pertanyaan saya adalah:
- Bagaimana tepatnya cara kerja journal dan rsyslog di Ubuntu 16.04 (secara default)?
Kenapa pesan yang dikirim darilogger
tampaknya berakhir di jurnal, tetapi tidak di syslog?
Pembaruan: Ternyata logger
tidak berfungsi seperti yang diharapkan adalah kesalahan pada saya, jadi tidak relevan dengan pertanyaan utama.
logger -p .info hello
tidak valid. Anda belum memberikan nama fasilitas apa pun.logger
tidak berfungsi adalah kesalahan saya, jadi itu sudah diperbaiki sekarang (terima kasih untuk tipsnya). Adapun log muncul di dua tempat, catatan Anda padaimuxsock
tampaknya menjadi kuncinya: tampaknya baik rsyslog dan journald mendengarkan pesan syslog lokal, karenanya mengapa entri tersebut masuk ke dua log terpisah.Systemd adalah sistem init yang digunakan untuk memulai layanan ketika sistem dinyalakan. Journald bertanggung jawab untuk membuat log untuk layanan yang dimulai oleh systemd. Dengan mengintegrasikan journald dengan systemd, bahkan pesan proses booting paling awal tersedia untuk journald.
Rsyslog adalah daemon yang dibuat khusus untuk pemrosesan log, tidak ada hubungannya dengan journald. Ia dapat mengambil log dengan banyak cara dan menampilkannya dengan banyak cara. Ini tidak diaktifkan secara default yang juga mengambil pesan log dari journald. Untuk itu, Anda harus menulis di file /etc/rsyslog.conf,
Sekarang, ia akan menerima log dari m journald juga. Tapi saya sarankan Anda tidak mengubah file /etc/rsyslog.conf Anda.
Di akhir file /etc/rsyslog.conf, ada baris yang ditulis,
Ini berarti bahwa semua file yang memiliki .conf di sana berakhir di folder /etc/rsyslog.d/ harus dimasukkan selama pemuatan rsyslog. Jadi, semua konfigurasi khusus Anda harus ada dalam file-file ini
Saya menyarankan Anda untuk membuat file /etc/rsyslog.d/journald.conf dan tempelkan cuplikan di bawah ini.
Di bawah ini adalah cuplikan dari halaman resmi rsyslog imjournal
Baris 1 - memuat modul imjournal untuk menerima log dari journald
2 - Modul mmjsonparse dimuat digunakan dalam penguraian log
3 - Mereka terstruktur ke dalam format yang dijelaskan dalam template
4 - Ini mem-parsing log tersebut menggunakan modul mmjsonparse.
5 - Ia mengirimkan log-log tersebut ke file yaitu / var / log / ceelog sesuai dengan struktur yang disediakan dalam template yang diberikan, menggunakan modul omfile (file output modul - output ke file).
Buat perubahan pada konfigurasi sesuai dengan kebutuhan Anda.
sumber