2014-08-29 11 views
9

Tôi đã sử dụng UDPAppender để gửi nhật ký đến logstash. Tôi muốn có thể đạt được failover của máy chủ logstash thông qua DNS.Có một appender TCP cấp thấp cho log4net không?

Mặc nhiên, các UDPAppender không phát hiện hay không cổng UDP từ xa có sẵn, nhưng ngay cả khi nó đã làm, khi tôi cấu hình nó với một tên DNS cho remoteAddress, nó đã được giải quyết với ip địa chỉ trong quá trình khởi tạo và được ghi lại dưới dạng địa chỉ ip trong thuộc tính RemoteAddresss. Tôi biết về các RemotingAppender, nhưng điều này dường như không thích logstash vì đầu vào TCP logstash không thực hiện giao thức .NET remoting, và có vẻ như nó sẽ gặp vấn đề tương tự khi giải quyết địa chỉ ip từ xa thông qua DNS chỉ ở bước khởi tạo.

Tôi đang xem xét việc triển khai ứng dụng của riêng mình, bằng cách gói UDPAppender bằng ping hoặc sao chép RemotingAppender bằng cách xử lý kết nối lại thông qua tên DNS. Có bất cứ điều gì như thế này đã tồn tại?

+0

Tìm kiếm tương tự. Bất kỳ thành công Rob? Rob bạn có thể tham khảo bất kỳ bài viết/bài đăng blog nào để đăng nhập với UDPApender/log4net và đăng nhập hay không. –

+0

Tôi đã tấn công điều này với nhau, hoạt động cho mục đích sử dụng của tôi, dựa trên https://github.com/merchantwarehouse/syslog4net TcpAppender: https://dotnetfiddle.net/3WE7h9 - hóa ra bạn có lựa chọn về cách đệm và thả các gói tin trong khi không được kết nối. Nó có thể là một chút quá tích cực về cách nó xóa DNS cache, nhưng ít nhất nó hoạt động –

Trả lời

-3

tôi thấy here này, UdpAppender là gần cuối

SDK reference

UdpAppender

Để biết chi tiết đầy đủ thấy sự xâm nhập SDK tham khảo: log4net.Appender.UdpAppender.

Ví dụ sau đây cho biết cách định cấu hình ứng dụng UdpAppender để gửi sự kiện đến RemoteAddress trên RemotePort được chỉ định.

<appender name="UdpAppender" type="log4net.Appender.UdpAppender"> 
    <localPort value="8080" /> 
    <remoteAddress value="224.0.0.1" /> 
    <remotePort value="8080" /> 
    <layout type="log4net.Layout.PatternLayout, log4net"> 
     <conversionPattern value="%-5level %logger [%property{NDC}] - %message%newline" /> 
    </layout> 
</appender> 
+0

Câu trả lời này liên kết đến cùng một UDPAppender được đề cập trong câu hỏi của tôi và không giải quyết bất kỳ vấn đề chuyển đổi dự phòng DNS nào. Sẽ bỏ phiếu nếu tôi có quyền lực. –

+2

Yup, tôi đã cung cấp cho bạn mã mẫu cho ứng dụng UDP, vì không có mã nào được cung cấp, thật khó để tìm ra điểm nào không hiệu quả với bạn. Vì vậy, nếu bạn có thể cung cấp một mã mẫu, để tôi có thể giúp bạn. FYI, bỏ qua các mối đe dọa bỏ phiếu không thực sự là cách lưu lượng của Stackover. cung cấp mẫu và những gì bạn đã làm cho đến nay, đây không phải là một trang web thực hiện công việc của bạn, nhưng giúp bạn khi bạn bị kẹt ở đâu đó. – CheGueVerra

0

Bạn đã thử log4stash?.
Đó là một ứng dụng log4net có vài tính năng tương tự như logstash và gửi nhật ký của bạn ngay vào Elasticsearch.
Bằng cách đó bạn sẽ có ít "điểm lỗi" hơn trong cách tìm kiếm elasticsearch (không cần sử dụng logstash).

Và nếu bạn muốn gắn bó với TCPAppender,
Bạn có thể chuyển mã số UDPAppender vào một tcp mà không cần nỗ lực quá nhiều.
Tôi đã làm điều đó một lần nhưng rất tiếc là tôi không thể xuất bản mã.

Các vấn đề liên quan