Jurnal dizaynı üç suala cavab verir: hansı proses qeyd yaratdı, o qeyd harada yer alır və nə qədər yaşayır. OpenVPN fayla yaza, mesajları sistem jurnalçısına verə və ya onları xidmət idarəçisinin tutduğuna buraxa bilər və bunlar bir axının üç surəti deyil. Hər seçim rotasiyanın kimə aid olduğunu, hansı istifadəçinin nəticəni oxuya bildiyini və başlanğıc zamanı nə baş verdiyini dəyişir. Cavabları hadisədən əvvəl müəyyənləşdirin, çünki sonra konfiqurasiya olunanı miras alırsınız.

Daemon direktivlə əslində nə edir

Direktivlər abstraksiya deyil; hər biri prosesin mesajlarını hara yazacağını müəyyən edir. log /path həmin faylı açır, log-append /path onu əlavə etmək üçün açır, syslog isə mesajları öz soketi vasitəsilə yerli sistem jurnalçısına verir. Heç biri olmadan çıxış standart çıxışa gedir və bundan sonra nə olacağını xidmət idarəçisi qərarlaşdırır. Daemonun konfiqurasiyanızı görməzliyə vurduğu qənaətinə gəlməzdən əvvəl qüvvədə olan uniti və profili birlikdə oxuyun.

Son hal paket quraşdırmasında geniş yayılmışdır və iki administratorun jurnalın harada yaşadığı barədə niyə razılaşmadığını izah edir. Biri unitin journal-ını oxuyur, digəri daemonun heç vaxt yazmadığı faylı.

Diskdəki faylı deyil, işləyən konfiqurasiyanı yoxlayın. Drop-in unit əvəzləməsi və ya mühit faylı oxuduğunuz profila toxunmadan qüvvədə olan direktivi dəyişə bilər.

log kəsir, log-append kəsmir

log direktiv qüvvəyə mindikdə mövcud faylı kəsir, buna görə yenidən başlatma ondan əvvəlki dəlilləri silir. log-append mövcudu saxlayır və əlavə edir. Heç bir variant heç nəyi rotasiya etmir və heç biri faylı sonradan özü yenidən açmır, buna görə rotasiya əməkdaşlıq tələb edir.

Əgər rotasiya faylı yenidən adlandırarkən daemon hələ köhnə deskriptora yazırsa, yeni fayl boş qalır və disk istifadəsi adlandırılmış faylda artmağa davam edir. Prosesə yenidən açmaq üçün siqnal göndərin və ya kopyala-və-kəs strategiyası ilə rotasiya edin və kopyalama pəncərəsini qəbul edin.

Qovluq, sahiblik və icazələr dizaynın bir hissəsidir. Daemon başladıqdan sonra imtiyazsız istifadəçi kimi işləyə bilər və quraşdırma zamanı root tərəfindən yaradılan qovluq o zaman yazıla bilməz. İcazələri hadisə zamanı düzəltmək əvəzinə onu paketləmə və ya yerləşdirmə prosesi ilə hazırlayın.

Xidmət idarəçisi ikinci surət saxlayır

systemd standart çıxışı və standart xətanı ilkin olaraq tutur, buna görə açıq yönləndirməsi olmayan unitin artıq jurnalı var. Fayl direktivi əlavə etmək saxlama, oxucu və zaman damğaları fərqli iki axın verir.

Bu avtomatik olaraq yanlış deyil, amma bir qərar olmalıdır. Başlanğıc qeydini journal-da saxlayın, çünki konfiqurasiya olunmuş fayl yaranmazdan əvvəlki nasazlıqlar başqa heç yerdə görünmür. Sonra faylı sabit vəziyyət hadisələri üçün səlahiyyətli edin və bunu runbook-da yazın. İki səlahiyyətli axın hər suala iki cavab deməkdir.

Seçimi qəsdən uğursuz olan bir testlə təsdiqləyin. Daemonu oxunmayan sertifikatla başladın və xətanı hansı axının qeyd etdiyinə baxın.

Ətraflılıq istifadə oluna bilən detalla eyni şey deyil

Daha yüksək verb səviyyəsi daha çox sətir əlavə edir və müəyyən nöqtədən sonra heç kimin oxumadığı sətirlər. Səviyyə 3 əksər yerləşdirmələr üçün məqbul sabit vəziyyətdir, səviyyə 4 və yuxarısı isə məlum sualla məhdud araşdırmaya uyğundur. Təkrarların boğulması səsi azaldır, lakin hadisənin nə qədər tez-tez təkrarlandığını gizlətməməlidir. Davam etdirə bildiyiniz səviyyəni təyin edin və onu yalnız sonu olan adlandırılmış araşdırma üçün qaldırın.

Qeyddə instans kimliyini və zaman damğalarını saxlayın. Fayl aylarla əlavə olunub və instans adı yoxdursa, yenidən qoşulma ilk qoşulma kimi görünür.

Həmin fayla başqa nələrin düşdüyünə diqqət edin. Yönləndirilmiş çıxış çağırılan skriptlərin mətnini ehtiva edə bilər və öz mühitini çap edən köməkçi proqram etimad məlumatlarını və açar yollarını oxunaqlı jurnala qoyur. Daemon özü həssas heç nə çap etməsə də jurnala girişi təhlükəsizlik qərarı kimi qəbul edin.

Rotasiya, saxlama və yenidən yükləyən siqnallar

Saxlama müddətini diskin sahibi ilə birlikdə qərarlaşdırın və həcm sizin əvəzinizə qərar verməmişdən əvvəl təyin edin. Yenidən yükləmə siqnalı jurnal baxımı əmri deyil: səhv siqnal tuneli yenidən başladır və hər istifadəçinin bağlantısını kəsir. Yenidən açma prosedurunu rotasiya qaydasının yanına yazın ki, ikisi bir-birindən uzaqlaşmasın.

Nəticə operatorun təsvir edə biləcəyi bir xidmət olmalıdır: bir səlahiyyətli axın, hər hadisə həyat dövrünə yerləşdirilib və hostdakı hər sirr daşıyan fayl toplanmadan əldə edilə bilən qeyd. Bu təsvir dizaynın qəbul testidir və onu növbəti hadisədən əvvəl yoxlamaq ucuzdur.

Əlaqəli məqalələr