Bir günlük tasarımı üç soruyu yanıtlar: kaydı hangi süreç üretti, kayıt nereye düşüyor ve ne kadar yaşıyor. OpenVPN bir dosyaya yazabilir, iletileri sistem günlükçüsüne verebilir veya bunları hizmet yöneticisinin yakaladığı şeye bırakabilir ve bunlar tek bir akışın üç kopyası değildir. Her seçim döndürmenin kime ait olduğunu, hangi kullanıcının sonucu okuyabildiğini ve başlatma sırasında ne olduğunu değiştirir. Yanıtları bir olaydan önce netleştirin, çünkü sonrasında yapılandırılmış olanı devralırsınız.

Daemon yönergeyle gerçekte ne yapar

Yönergeler soyutlama değildir; her biri sürecin iletilerini nereye yazacağına karar verir. log /path o dosyayı açar, log-append /path onu ekleme için açar ve syslog iletileri soketi üzerinden yerel sistem günlükçüsüne verir. Hiçbiri yoksa çıktı standart çıktıya gider ve sırada ne olacağına hizmet yöneticisi karar verir. Daemon yapılandırmanızı yok sayıyor sonucuna varmadan önce yürürlükteki unit ile profili birlikte okuyun.

Son durum paket kurulumunda yaygındır ve iki yöneticinin günlüğün nerede yaşadığı konusunda neden anlaşamadığını açıklar. Biri unitin journal'ını okur, diğeri daemonun hiç yazmadığı bir dosyayı.

Diskteki dosya yerine çalışan yapılandırmayı denetleyin. Drop-in bir unit geçersiz kılması veya ortam dosyası, okuduğunuz profile dokunmadan yürürlükteki yönergeyi değiştirebilir.

log keser, log-append kesmez

log yönerge yürürlüğe girdiğinde var olan dosyayı keser, bu yüzden yeniden başlatma öncesine ait kanıtları siler. log-append var olanı korur ve ekler. İki seçenek de hiçbir şeyi döndürmez ve ikisi de dosyayı sonradan kendi başına yeniden açmaz, bu yüzden döndürme işbirliği gerektirir.

Döndürme dosyayı yeniden adlandırırken daemon hâlâ eski tanıtıcıya yazıyorsa yeni dosya boş kalır ve disk kullanımı yeniden adlandırılan dosyada artmaya devam eder. Sürece yeniden açması için sinyal gönderin veya kopyala-ve-kes stratejisiyle döndürün ve kopyalama penceresini kabul edin.

Dizin, sahiplik ve izinler tasarımın parçasıdır. Daemon başlatmadan sonra ayrıcalıksız kullanıcı olarak çalışabilir ve kurulum sırasında root tarafından oluşturulan bir dizin o zaman yazılabilir olmayabilir. İzni bir olay sırasında düzeltmek yerine paketleme veya dağıtım süreciyle hazırlayın.

Hizmet yöneticisi ikinci bir kopya tutar

systemd standart çıktıyı ve standart hatayı varsayılan olarak yakalar, bu yüzden açık yönlendirmesi olmayan bir unitin zaten günlüğü vardır. Bir dosya yönergesi eklemek, saklama, okuyucu ve zaman damgaları farklı iki akış verir.

Bu otomatik olarak yanlış değildir ama bir karar olmalıdır. Başlatma kaydını journal'da tutun, çünkü yapılandırılmış dosya var olmadan önceki hatalar başka hiçbir yerde görünmez. Sonra dosyayı kararlı durum olayları için yetkili kılın ve bunu runbook'ta yazın. İki yetkili akış her soruya iki yanıt demektir.

Seçimi bilerek başarısız olan bir testle doğrulayın. Daemonu okunamayan bir sertifikayla başlatın ve hatayı hangi akışın kaydettiğine bakın.

Ayrıntı düzeyi kullanılabilir ayrıntıyla aynı şey değildir

Daha yüksek bir verb düzeyi daha çok satır ekler ve bir noktadan sonra kimsenin okumadığı satırlar ekler. Düzey 3 çoğu dağıtım için makul bir kararlı durumdur, düzey 4 ve üstü ise bilinen bir soruyla sınırlı bir incelemeye uyar. Tekrar bastırma gürültüyü azaltır ama bir olayın ne sıklıkla yinelendiğini gizlememelidir. Sürdürebileceğiniz düzeyi ayarlayın ve yalnızca sonu olan adlandırılmış bir inceleme için yükseltin.

Kayıtta örnek kimliğini ve zaman damgalarını tutun. Dosya aylardır ekleniyorsa ve örnek adı yoksa yeniden bağlanma tam olarak ilk bağlantı gibi görünür.

O dosyaya başka nelerin düştüğüne dikkat edin. Yönlendirilmiş çıktı çağrılan betiklerin metnini içerebilir ve ortamını yazdıran bir yardımcı, kimlik bilgilerini ve anahtar yollarını okunabilir bir günlüğe koyar. Daemonun kendisi hassas bir şey yazdırmasa bile günlük erişimini bir güvenlik kararı olarak ele alın.

Döndürme, saklama ve yeniden yükleyen sinyaller

Saklamaya diskin sahibiyle birlikte karar verin ve birim sizin yerinize karar vermeden önce ayarlayın. Yeniden yükleme sinyali bir günlük bakım komutu değildir: yanlış sinyal tüneli yeniden başlatır ve her kullanıcının bağlantısını keser. Yeniden açma yordamını döndürme kuralının yanına yazın ki ikisi birbirinden kopmasın.

Sonuç, bir operatörün tanımlayabileceği bir hizmet olmalıdır: tek bir yetkili akış, her olay yaşam döngüsüne yerleştirilmiş ve ana makinedeki her sır taşıyan dosya toplanmadan elde edilebilen bir kayıt. Bu tanım tasarımın kabul testidir ve bir sonraki olaydan önce denetlemek ucuzdur.

İlgili makaleler