Câu trả lời cho câu hỏi đầu tiên của bạn là:
Có, mọi cuộc gọi đến syslog () đều bị chặn. Có thể trong một thời gian rất ngắn, nhưng nó vẫn là một cuộc gọi đồng bộ liên quan đến một bộ mô tả tệp. Xem man 3 syslog
để biết thêm sự gièm pha.
Trừ khi các máy chủ của bạn sử dụng các kiến trúc và nguyên thủy không đồng bộ, sẽ luôn có một số khóa. Thsi có thể được giảm nhẹ, nhưng không được loại bỏ, ví dụ bằng cách sử dụng một dấu tách để ghi nhật ký. Đối với hai câu hỏi khác tôi không thực sự biết nhưng kiểm tra mã nguồn rsyslogd (cũng như câu hỏi cho họ hàm syslog ()) là cách duy nhất để biết.
Nói chung, nếu bạn di chuyển việc ghi nhật ký sang máy chủ bên ngoài thông qua "giao thức syslog mạng" UDP: 514, thì bạn mang các khả năng tạo khóa đến gần như bằng không. Với nhược điểm có thể mất một số đăng nhập trong khi tải cao.
Đầu tiên , trong các máy chủ "khởi tạo", bạn cần đảm bảo tất cả việc ghi nhật ký xảy ra thông qua syslog. Ví dụ, trong Apache2, bạn cần chỉ định:
ErrorLog "syslog:daemon"
Đối với các máy chủ khác xin vui lòng tham khảo trang người đàn ông thích hợp. Nếu bạn không thể đảm bảo điều này, xin lưu ý rằng việc đăng nhập vào hệ thống tệp có thể tạo
Thứ hai , trong cấu hình rsyslogd ban đầu, bạn yêu cầu chỉ đạo tất cả lưu lượng nhật ký hệ thống cho cơ sở bạn chọn ("daemon" trong ví dụ này) đến một hoặc nhiều máy chủ nhật ký hệ thống bên ngoài. Trong tệp cấu hình rsyslog, bạn có thể chỉ định:
daemon.* @192.168.128.1
daemon.* @192.168.254.1
để có hai bản sao của các bản ghi được gửi đến hai máy chủ khác nhau cùng một lúc.
Thứ ba , trong (các) máy chủ đích, bạn cho phép nhận thông báo nhật ký hệ thống qua UDP: 514. Nó nằm trong tệp cấu hình rsyslogd (đích) và thường bị vô hiệu hóa bởi defualt (nó sẽ đủ để xóa #s hàng đầu:
$ModLoad imudp
$UDPServerRun 514
Thứ tư , tùy chọn nhưng rất khuyến khích, tôi cũng sẽ kích hoạt dấu thời gian độ phân giải cao:
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
Ngoài ra, tùy chọn này thường bị tắt theo mặc định (tại sao trên Trái đất?).