Scentralizowane Logowanie Javy

Szukam sposobu na centralizację logowania rozproszonego oprogramowania (napisanego w Javie), co byłoby dość proste, ponieważ dany system ma tylko jeden serwer. Ale pamiętając, że jest bardzo prawdopodobne, że więcej instancji danego serwera będzie działać w przyszłości( i będzie do tego potrzeba więcej aplikacji), musiałby istnieć coś w rodzaju serwera logowania, który dba o przychodzące logi i czyni je dostępnymi dla użytkownika. zespół wsparcia.

obecnie sytuacja jest taka, że kilka aplikacji java korzysta z log4j, który zapisuje dane do plików lokalnych, więc jeśli problemy z expiriences klienta zespół pomocy technicznej musi poprosić o dzienniki, co nie zawsze jest łatwe i zajmuje dużo czasu. W przypadku serwera-błąd diagnoza-problem nie jest tak duży, ponieważ jest zdalny dostęp i tak, ale mimo to, monitorowanie wszystkiego przez Logging-serwer nadal miałoby sens.

While I went poprzez pytania dotyczące "scentralizowanego logowania" znalazłem Inne pytanie (właściwie jedyne z (w tym przypadku) użyteczną odpowiedzią. Problem polega na tym, że wszystkie aplikacje działają w zamkniętym środowisku (w ramach jednej sieci), a wytyczne dotyczące bezpieczeństwa nie pozwalają na wyjście z sieci oprogramowania wewnętrznego.

Znalazłem również wspaniały artykuł o tym, jak można zaimplementować taki Logging-Serwer. Ponieważ artykuł został napisany w 2001, myślałem, że ktoś może już rozwiązać ten konkretny problem. Ale moje wyniki wyszukiwania nie wyszły z niczego.

moje pytanie: czy istnieje logging-framework, który obsługuje logowanie przez sieci z scentralizowanym serwerem, do którego może uzyskać dostęp zespół wsparcia?

Specyfikacja:

  • dostępność
  • serwer musi być prowadzony przez nas.
  • kompatybilność Java 1.5
  • zgodność z heterogenicznym sieć.
  • Protokół HTTP wysyła logi (aby uniknąć problemów z zaporą sieciową).]} W najlepszym przypadku: używa log4j lub LogBack lub w zasadzie wszystkiego, co implementuje slf4j]}

nie trzeba, ale miło mieć

  • uwierzytelnianie i bezpieczeństwo jest oczywiście problemem, ale może zostać cofnięte na co najmniej chwilę(jeśli jest to otwarte oprogramowanie, rozszerzylibyśmy je na nasze potrzeby OT: zawsze oddajemy projekty ).
  • [[21]} Eksploracja danych i analiza jest czymś, co jest bardzo pomocne, aby ulepszyć oprogramowanie, ale równie dobrze może to być aplikacja zewnętrzna.

Mój najgorszy scenariusz jest taki, że nie ma takiego oprogramowania. W takim przypadku prawdopodobnie sami byśmy to wdrożyli. Ale jeśli istnieje taka aplikacja klient-serwer, byłbym bardzo wdzięczny, gdyby nie konieczność wykonywania tej szczególnie problematycznej pracy.

Z góry dzięki

Update: rozwiązanie musi działać na kilku platformy obsługujące Javę. (Głównie Windows, Linux, niektóre HP Unix)

Update: Po wielu dalszych badaniach znaleźliśmy rozwiązanie, które udało nam się zdobyć. clusterlog.net (offline od co najmniej połowy 2015 roku) świadczy usługi logowania dla rozproszonego oprogramowania i jest kompatybilny z log4j i logback (który jest kompatybilny z slf4j). To pozwala nam analizować każdy pojedynczy użytkownik sposób przez aplikację. Dzięki temu bardzo łatwo odtworzyć zgłoszone błędy (a nawet nie zgłoszone one). Informuje nas również o ważnych wydarzeniach e-mailem i ma system raportów, w których dzienniki tego samego pochodzenia są summorized w łatwo dostępnym formacie. Zainstalowali (co było bez zarzutu) to tutaj zaledwie kilka dni temu i działa świetnie.

Aktualizacja (2016): to pytanie wciąż generuje duży ruch, ale strona, o której mówiłem, już nie istnieje.

Author: Community, 2012-06-19

4 answers

Możesz używać Log4j z SocketAppender, więc musisz zapisać część serwera jako przetwarzanie LogEvent. zobacz http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/net/SocketAppender.html

 6
Author: Arcadien,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-19 12:34:02

NXLOG lub LogStash lub Graylogs2

Lub

LogStash + ElasticSearch (+opcjonalnie Kibana)

Przykład:

1) http://logstash.net/docs/1.3.3/tutorials/getting-started-simple

2) http://logstash.net/docs/1.3.3/tutorials/getting-started-centralized

 4
Author: hB0,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-12 10:36:11

Spójrz na logFaces, wygląda na to, że Twoje specyfikacje są spełnione. http://www.moonlit-software.com/

  • dostępność (sprawdź)
  • Serwer musi być prowadzony przez nas. (check)
  • kompatybilność Java 1.5 (sprawdź)
  • [[5]}zgodność z siecią heterogeniczną. (check) W najlepszym przypadku protokół używa protokołu HTTP do wysyłania logów (aby uniknąć problemów z zaporą) (prawie TCP/UDP)
  • najlepszy przypadek: używa log4j lub LogBack lub w zasadzie wszystkiego, co implementuje slf4j (check)
  • Authentication (check)
  • Eksploracja i analiza danych (możliwe poprzez extension api)
 3
Author: Frank,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-19 12:50:39

Jest gotowe do użycia rozwiązanie od Facebook- Scribe - to jest używanie Apache Hadoop pod maską. Jednak większość firm, które znam, nadal ma tendencję do tworzenia wewnętrznych systemów do tego celu. Pracowałem w jednej z takich firm i zajmowałem się tam logami jakieś dwa lata temu. Użyliśmy również Hadoop. W naszym przypadku mieliśmy następującą konfigurację:

  • mieliśmy mały, dedykowany klaster maszyn do agregacji logów.
  • [7]}pracownicy wydobywali kłody z usług produkcyjnych, a następnie analizuj poszczególne linie.
  • Następnie reduktory łączyłyby niezbędne dane i sporządzały raporty.

Mieliśmy małą i stałą liczbę raportów, którymi byliśmy zainteresowani. W rzadkich przypadkach, gdy chcemy przeprowadzić inną analizę, po prostu dodajemy do tego wyspecjalizowany kod reduktora i opcjonalnie uruchamiamy go na starych logach.

Jeśli nie możesz z góry zdecydować, jakie analizy Cię interesują, lepiej będzie przechowywać uporządkowane dane przygotowane przez pracowników w HBase lub innej bazie NoSQL (tutaj, na przykład, ludzie używają Mongo DB ). W ten sposób nie będziesz musiał ponownie agregować danych z nieprzetworzonych dzienników i będziesz mógł odpytywać magazyn danych.

Istnieje wiele dobrych artykułów o takich rozwiązaniach agregacji logowania, na przykład za pomocą Pig do wyszukiwania zagregowanych danych. Pig umożliwia odpytywanie dużych zbiorów danych opartych na Hadoop za pomocą zapytań podobnych do SQL.

 3
Author: Andrew Андрей Листочкин,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-19 13:07:07