Putaran log rosak secara boleh dijangka: tiga komponen masing-masing percaya mereka memiliki fail itu, dan hasilnya ialah log yang diputar terus membesar manakala yang baharu kekal kosong. Daemon memegang deskriptor, logrotate menamakan semula laluan, dan rsyslog menulis di tempat yang sama sekali lain. Pilih satu penulis dan satu pemutar sebelum menambah satu lagi peraturan pada longgokan. Senarai semak di bawah bergerak dalam urutan itu kerana setiap langkah seterusnya bergantung padanya.

Tentukan siapa yang menulis fail itu

Dua reka bentuk adalah sah. Dalam yang pertama, proses VPN menulis fail sendiri melalui pilihan log atau log-append miliknya. Dalam yang kedua, ia menghantar rekod kepada pencatat sistem dan rsyslog atau journald menentukan di mana ia mendarat.

Kedua-duanya alternatif, bukan lapisan. Hos yang mengaktifkan kedua-duanya berakhir dengan dua fail yang tidak sepadan, dan fail yang anda baca selalunya yang sudah usang. Pilih laluan itu dengan sengaja, kemudian buang penulis yang lain.

Baca konfigurasi perkhidmatan yang berkesan sebelum mengubah apa-apa, termasuk fail drop-in yang mungkin mengatasi fail unit. Arahan yang ada dalam profil yang anda sunting bukan bukti bahawa itulah yang dimuatkan oleh proses yang sedang berjalan. Bandingkan unit dengan argumen proses, kemudian dengan fail yang benar-benar dibukanya.

Namakan daemon supaya penapis boleh menjadi sempit

Pada laluan syslog, beri daemon identiti tersendiri dan tapis mengikutnya. Peraturan yang sepadan dengan nama program instans VPN ini menyimpan rekodnya di luar fail kongsi yang dasar pengekalannya milik sesuatu yang lain.

Peraturan sempit juga menjadikan soalan berikutnya boleh dijawab: perkhidmatan mana yang menghasilkan baris ini? Penapis yang sepadan dengan segala-galanya yang mengandungi perkataan VPN akan dengan senang hati mengumpul trafik terowong kedua dan mengaburkan kedua-duanya. Padankan dengan pengecam tepat yang dihantar oleh unit kepada pencatat.

Tutup peraturan selepas tindakan supaya rekod tidak juga jatuh ke destinasi lalai. Baris berganda dalam dua fail kelihatan seperti pepijat pencatatan dan sebenarnya ialah hentian yang hilang. Ketinggalan yang satu itu juga menggandakan kos cakera dasar pengekalan.

Putar tanpa kehilangan deskriptor

Apabila daemon menulis fail itu, logrotate menamakan semula laluan tetapi proses itu mengekalkan deskriptor terbukanya. Rekod baharu terus masuk ke fail yang dinamakan semula sehingga sesuatu memaksa proses membuka semula laluan asal; sebab itulah putaran boleh kelihatan berjaya manakala fail baharu kekal kosong.

Penyelesaiannya ialah tindakan postrotate yang mencetuskan tingkah laku muat semula atau mula semula perkhidmatan yang didokumenkan. Menghantar isyarat kepada pencatat ialah tindakan yang sama sekali berbeza dan tidak melakukan apa-apa untuk daemon yang memegang failnya sendiri.

Di mana pembukaan semula mustahil, copytruncate ialah sandaran: salin fail itu, kemudian potong di tempatnya. Ia mengekalkan deskriptor sah dengan kos kehilangan segala yang ditulis antara salinan dan potongan, jadi ia pertukaran, bukan penyelesaian. Di bawah beban, jurang itu boleh menelan kegagalan yang cuba anda tangkap.

Pilih satu daripada dua bagi setiap fail dan catat pilihannya, kerana mencampurkannya pada laluan yang sama menghasilkan jurang yang sangat sukar dikaitkan kemudian. Pembaca yang menemui kedua-dua corak dalam satu direktori tidak dapat mengatakan yang mana berwibawa.

Tetapkan pengekalan daripada tetingkap insiden

Pengekalan, pemampatan dan saiz maksimum sepatutnya berpunca daripada sejauh mana anda benar-benar menyiasat. Tetingkap tujuh hari dengan pemampatan dan had saiz ialah titik permulaan yang wajar bagi banyak penggunaan; nombor yang disalin daripada tutorial bukan.

Simpan dasar di satu tempat. Jika logrotate memutar fail itu dan rsyslog juga memutarnya, putaran kedua menang dan skema penamaan yang pertama kekal sebagai kekacauan. Pilih pemiliknya, lumpuhkan putaran yang lain, dan catat keputusan itu di sebelah dasar.

Dokumentasi rsyslog merangkumi model penghalaan dan tindakannya, manakala dokumentasi perkhidmatan OpenVPN kekal berwibawa untuk pilihan pencatatan daemon itu sendiri. Kedua-duanya tidak menentukan dasar pengekalan anda untuk anda.

Uji satu putaran dan satu peristiwa baharu

Paksa satu putaran tunggal kemudian jana satu peristiwa baharu, seperti pengesahan yang gagal. Sahkan bahawa rekod baharu muncul dalam fail baharu dan fail lama berhenti membesar.

Periksa juga kebenaran pada fail baharu, kerana putaran yang menciptanya semula dengan pemilik berbeza mematahkan penulis pada penulisan seterusnya dan menghasilkan jurang yang kelihatan seperti ranap. Bandingkan pemilik dan mod dengan akaun perkhidmatan sebelum anda beredar. Kemudian sahkan bahawa arkib termampat boleh dibaca, kerana arkib yang tiada siapa boleh buka bukan pengekalan. Bacaan pantas rekod terbaharu dalam fail lama membuktikan pemampatan dan kebenaran sekali gus.

Akhiri dengan merekod pemilik setiap langkah: komponen mana yang menulis, mana yang memutar, dan di mana dasar pengekalan tinggal. Catatan itulah yang menjadikan insiden pencatatan seterusnya sebagai pemeriksaan lima minit dan bukan satu petang meneka lapisan mana yang menjatuhkan baris itu.

Artikel berkaitan