İlk sorunuzun cevabı:
Evet, herhangi bir syslog () çağrısı engelleniyor. Belki çok kısa bir süre için, ama yine de bir dosya tanımlayıcı içeren eşzamanlı bir çağrı. Daha man 3 syslog
fazla detial için bakın .
Sunucularınız eşzamansız mimarileri ve ilkel öğeleri kullanmadığı sürece, her zaman bir miktar kilitleme olacaktır. Bu, örneğin kayıt için ayrı bir iplik kullanılarak hafifletilebilir, ancak ortadan kaldırılamaz. Diğer iki soru için gerçekten bilmiyorum ama rsyslogd kaynak kodu (hem de syslog () fonksiyon ailesi için olanı) muayene bilmek tek yoldur.
Daha genel olarak, günlüğe kaydetmeyi UDP: 514 "ağ syslog protokolü" aracılığıyla harici bir sunucuya taşırsanız, kilit oluşturma olasılıklarını neredeyse sıfıra getirirsiniz. İle bazı günlük olası kaybı dezavantajı yüksek yükleri sırasında.
İlk olarak , "menşei" sunucularında, tüm günlüğe kaydetmenin syslog üzerinden gerçekleşmesini sağlamanız gerekir. Örneğin, Apache2'de şunları belirtmeniz gerekir:
ErrorLog "syslog:daemon"
Diğer sunucular için lütfen ilgili kılavuz sayfasına bakınız. Bunu sağlayamıyorsanız, lütfen dosya sistemlerinde oturum açmanın
İkinci olarak , kaynak rsyslogd yapılandırmasında, seçtiğiniz tesis için tüm bu sistem günlüğü trafiğini (bu örnekte "daemon") bir veya daha fazla harici syslog sunucusuna yönlendirmenizi istersiniz. Rsyslog yapılandırma dosyasında şunları belirleyebilirsiniz:
daemon.* @192.168.128.1
daemon.* @192.168.254.1
aynı anda iki farklı sunucuya gönderilecek günlüklerin iki kopyasına sahip olmak.
Üçüncü olarak , hedef sunucu (lar) da, sistem günlüğü iletisinin UDP: 514 üzerinden alınmasını etkinleştirirsiniz. (Hedef) rsyslogd yapılandırma dosyasındadır ve normal olarak defualt tarafından devre dışı bırakılır (önde gelen #'leri kaldırmak yeterli olacaktır:
$ModLoad imudp
$UDPServerRun 514
Dördüncüsü , isteğe bağlı ancak şiddetle tavsiye edilir, ayrıca yüksek çözünürlüklü zaman damgalarını da etkinleştiririm:
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
Ayrıca bu seçenek normalde varsayılan olarak devre dışıdır (neden Dünya'da?).