2014-08-29 13 views
9

Używam UDPAppender do wysyłania dzienników do logstash. Chciałbym być w stanie osiągnąć przełączanie awaryjne serwera logstash przez DNS.Czy dla aplikacji log4net jest aplikator TCP o niskim poziomie?

Pośrednio The UDPAppender nie wykrywa, czy zdalny port UDP jest dostępny, ale nawet gdyby tak się stało, kiedy go skonfigurować z nazwą DNS dla remoteAddress, uchwala się do OD adres podczas inicjowania i zapisywany jako adres IP w usłudze ZdalnaAdministracja. Jestem świadomy RemotingAppender, ale to nie wydaje się podobać logstash, ponieważ wejście logstash TCP nie implementuje protokołu zdalnego .NET i wygląda na to, że będzie cierpieć na ten sam problem z rozwiązywaniem zdalnego adresu IP przez DNS tylko na etapie inicjalizacji.

Rozważam wdrożenie mojego własnego programisty, przez zawijanie UDPAppendera za pomocą polecenia ping lub kopiowanie RemotingAppendera poprzez obsługę ponownego połączenia przez nazwę DNS. Czy coś takiego już istnieje?

+0

Szukam tego samego. Każdy sukces Rob? Rob możesz polecać dowolny artykuł/wpis na blogu do logowania za pomocą UDPApender/log4net i logstash. –

+0

Zhakowałem to razem, które działa dla moich zastosowań, które jest oparte na https://github.com/merchantwarehouse/syslog4net TcpAppender: https://dotnetfiddle.net/3WE7h9 - okazuje się, że masz wybór, jak buforować i upuść pakiety, gdy nie są połączone. Może to być nieco zbyt agresywne, jeśli chodzi o sposób opróżniania buforów DNS, ale przynajmniej działa –

Odpowiedz

-3

Znalazłem here The UdpAppender zbliża się do końca

SDK reference

UdpAppender

Aby uzyskać szczegółowe informacje, zobacz wpis SDK Reference: log4net.Appender.UdpAppender.

Poniższy przykład pokazuje, jak skonfigurować narzędzie UdpAppender do wysyłania zdarzeń do adresu RemoteAddress na określonym porcie RemotePort.

<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

Ta odpowiedź łączy się z tą samą UDPAppender wspomnianą w moim pytaniu i nie rozwiązuje żadnego z problemów związanych z awarią DNS. Zgłosiłbym głosowanie, gdybym miał moc. –

+2

Tak, podałem wam przykładowy kod dla aplikatora UDP, ponieważ nie podano kodu, trudno było ustalić, który punkt nie działał. Więc jeśli mógłbyś podać przykładowy kod, abym mógł ci pomóc. FYI, głupie zagrożenia głosowania nie są tak naprawdę sposobem przepływu rzeczy Stackover. dostarczaj próbek i to, co zrobiłeś do tej pory, to nie jest strona, która wykonuje twoją pracę, ale pomaga, kiedy utkniesz gdzieś. – CheGueVerra

0

Czy wypróbowałeś log4stash?
To aplikacja dostarczająca log4net, która ma niewiele podobnych funkcji, takich jak logstash i wysyła twoje dzienniki bezpośrednio do Elasticsearch.
W ten sposób będziesz mieć o jeden mniej "punkt awarii" w drodze do elastycznego przeszukiwania (bez potrzeby używania logstash w ogóle).

A jeśli chcesz trzymać się TCPAppender,
Możesz przesłać kod UDPAppender do tcp bez większego wysiłku.
Zrobiłem to raz, ale niestety nie mogę opublikować kodu.

Powiązane problemy