Odpowiedź na twoje pierwsze pytanie brzmi:
Tak, każde wywołanie syslog () blokuje. Może przez bardzo krótki czas, ale wciąż jest to synchroniczne wywołanie obejmujące deskryptor pliku. Zobacz man 3 syslog
więcej detali.
O ile serwery nie używają architektur asynchronicznych i operacji podstawowych, zawsze będzie pewne blokowanie. Można to złagodzić, ale nie można go wyeliminować, na przykład używając oddzielnego klucza do logowania. W przypadku pozostałych dwóch pytań tak naprawdę nie wiem, ale jedynym sposobem na sprawdzenie jest sprawdzenie kodu źródłowego rsyslogd (oraz jednego z rodziny funkcji syslog ()).
Mówiąc bardziej ogólnie, jeśli przeniesiesz rejestrowanie na serwer zewnętrzny za pomocą UDP: 514 „sieciowego protokołu syslog”, wówczas zwiększysz możliwości tworzenia blokad prawie do zera. Z zwrotu ewentualnej utraty niektórych rejestrowania podczas dużych obciążeń.
Po pierwsze , na serwerach „inicjujących” należy upewnić się, że wszystkie rejestrowanie odbywa się za pośrednictwem syslog. Na przykład w Apache2 musisz określić:
ErrorLog "syslog:daemon"
W przypadku innych serwerów zapoznaj się z odpowiednią stroną podręcznika. Jeśli nie możesz tego zapewnić, pamiętaj, że można utworzyć logowanie do systemów plików
Po drugie , w początkowej konfiguracji rsyslogd należy skierować cały ruch syslog dla wybranego obiektu (w tym przykładzie „demona”) na jeden lub więcej zewnętrznych serwerów syslog. W pliku konfiguracyjnym rsyslog możesz określić:
daemon.* @192.168.128.1
daemon.* @192.168.254.1
mieć dwie kopie dzienników, które będą wysyłane jednocześnie na dwa różne serwery.
Po trzecie , na serwerach docelowych włączasz odbiór wiadomości syslog przez UDP: 514. Jest w (konfiguracyjnym) pliku konfiguracyjnym rsyslogd i zwykle jest wyłączany przez defualt (wystarczyłoby usunąć wiodące #s:
$ModLoad imudp
$UDPServerRun 514
Po czwarte , opcjonalne, ale wysoce zalecane, włączę także znaczniki czasu wysokiej rozdzielczości:
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
Również ta opcja jest zwykle domyślnie wyłączona (dlaczego na Ziemi?).