Najlepszy sposób agregowania wielu plików dziennika z kilku serwerów [zamknięty]

Potrzebuję prostego sposobu na monitorowanie wielu plików dziennika tekstowego rozmieszczonych na wielu serwerach HP-UX. Są one mieszanką plików dziennika tekstowego i XML z kilku rozproszonych systemów starszych. Obecnie po prostu ssh na serwery i używać tail-f i grep, ale to nie skaluje się, gdy masz wiele dzienników do śledzenia.

Ponieważ dzienniki są w różnych formatach i tylko pliki w folderach (automatycznie obracane, gdy osiągną określony rozmiar) muszę je zebrać zdalnie i analizować każdy z nich inaczej.

Moją początkową myślą było stworzenie prostego procesu demona, który mogę uruchomić na każdym serwerze przy użyciu niestandardowego czytnika plików dla każdego typu pliku, aby przetworzyć go do wspólnego formatu, który może być eksportowany przez sieć za pośrednictwem gniazda. Inny program przeglądający działający lokalnie połączy się z tymi gniazdami i pokaże przetworzone dzienniki w prostym GUI z kartami lub zagregowane w konsoli.

Na jaki format dziennika powinienem spróbować przekonwertować, jeśli mam go zaimplementować to sposób?

Jest jakiś inny łatwiejszy sposób? Czy powinienem próbować przetłumaczyć pliki dziennika do formatu log4j do użycia z Chainsaw czy są lepsze przeglądarki dziennika, które mogą połączyć się ze zdalnymi gniazdami? Czy mogę użyć BareTail zgodnie z sugestią w kolejnym pytaniu logu? Nie jest to system masowo rozproszony i zmiana obecnych implementacji logowania dla wszystkich aplikacji, aby korzystały z transmisji UDP lub umieszczały wiadomości w kolejce JMS nie jest opcją.

Author: Community, 2008-09-17

10 answers

Opcje:

  1. Użyj SocketAppender, aby wysłać wszystkie logi bezpośrednio do 1 serwera. (Może to serverly utrudnia wydajność i dodać jeden punkt awarii.)
  2. Użyj skryptów do agregowania danych. Używam kluczy SCP, ssh i uwierzytelniania, aby umożliwić moim skryptom pobieranie danych ze wszystkich serwerów bez żadnych monitów logowania.
 2
Author: James A. N. Stauffer,
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-07-23 16:47:19

Prawdopodobnie najlżejszym rozwiązaniem do oglądania logów w czasie rzeczywistym jest użycie powłoki tancerza w trybie współbieżnym z tail-f:

dsh -Mac -- tail -f /var/log/apache/*.log
  • - a jest dla wszystkich nazw maszyn zdefiniowanych w~/.dsh / maszyny.lista
  • - c służy do jednoczesnego biegania ogona
  • - M dodaje nazwę hosta do każdej linii wyjścia.
 20
Author: mrm,
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
2010-08-13 17:36:32

Używamy prostego skryptu powłoki, takiego jak ten poniżej. Oczywiście musisz go nieco dostosować, aby powiedzieć mu o różnych nazwach plików i zdecydować, które pole szukać na którym, ale masz podstawowy pomysł. W naszym przypadku śledzimy plik w tym samym miejscu na wielu skrzynkach. Wymaga to uwierzytelniania ssh za pomocą przechowywanych kluczy zamiast wpisywania haseł.

#!/bin/bash
FILE=$1
for box in box1.foo.com box2.foo.com box3.foo.com box4.foo.com; do
     ssh $box tail -f $FILE &
done

Odnośnie komentarza Mike ' a Funka o tym, że nie jest w stanie kill the tailing with ^C, I store the above in a file called multitails.sh i do jego końca dopisał: Tworzy to kill_multitails.sh plik które uruchamiasz, gdy skończysz śledzenie, a potem się usuwa.

# create a bash script to kill off 
# all the tails when you're done
# run kill_multitails.sh when you're finished

echo '#!/bin/sh' > kill_multitails.sh
chmod 755 kill_multitails.sh
echo "$(ps -awx | grep $FILE)" > kill_multitails_ids
perl -pi -e 's/^(\d+).*/kill -9 $1/g' kill_multitails_ids
cat kill_multitails_ids >> kill_multitails.sh
echo "echo 'running ps for it'" >> kill_multitails.sh
echo "ps -awx | grep $FILE" >> kill_multitails.sh
echo "rm kill_multitails.sh" >> kill_multitails.sh
rm kill_multitails_ids


wait
 12
Author: masukomi,
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
2016-04-22 12:30:43

Logscape - Jak splunk bez metki

 5
Author: JzJ,
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-10-12 12:26:16

Multitail lub

"chip jest lokalnym i zdalnym narzędziem do parsowania i monitorowania logów dla administratorów i programistów systemu.
Zawiera funkcje swatch, tee, tail, grep, ccze I mail w jednym, z kilkoma dodatkami " [3]}

Np.

Chip-f-m0= " RUN "- s0= " red " - M1=".* '- S1 user1@remote_ip1:'/var/log/log1 /var/log/log2 / var / log / log3 user2@remote_ip2:'/var/log/log1 / var / log / log2/var/log | log3" / egrep "RUN / = = > /"

To podświetli na Czerwono występowanie wzoru-m0, wstępne filtrowanie wzorca 'RUN / = = > /' ze wszystkich plików dziennika.

 2
Author: Joao Figueiredo,
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-04-09 16:29:16

Napisałem vsConsole dokładnie w tym celu-łatwy dostęp do plików dziennika - a następnie dodano monitorowanie aplikacji i śledzenie wersji. Chciałbym wiedzieć, co o tym myślisz. http://vs-console.appspot.com/

 2
Author: prule,
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
2013-02-14 09:37:04

Awstats udostępnia skrypt Perla, który może połączyć kilka plików dziennika apache. Skrypt ten skaluje się dobrze, ponieważ ślad pamięci jest bardzo niski, pliki dzienników nigdy nie są ładowane do pamięci. Wiem, że si nie dokładnie to, czego potrzebujesz, ale może można zacząć od tego skryptu i dostosować go do swoich potrzeb.

 1
Author: Alexandre Victoor,
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
2008-09-17 15:00:15

Możesz używać różnych odbiorników dostępnych z Chainsaw (VFSLogFilePatternReceiver do śledzenia plików przez ssh, SocketReceiver, UDPReceiver, CustomSQLDBReceiver, itp.), a następnie agregować dzienniki w jednej karcie, zmieniając domyślny identyfikator karty lub tworząc 'custom expression logpanel', dostarczając wyrażenie, które pasuje do zdarzeń w różnych kartach źródłowych.

 1
Author: Scott,
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
2010-01-15 05:58:43

Gltail-wizualizacja ruchu na serwerze, zdarzeń i statystyk w czasie rzeczywistym za pomocą Ruby, SSH i OpenGL z wielu serwerów

 1
Author: Albert T. Wong,
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
2010-06-25 07:47:25

XpoLog For Java

 1
Author: tom,
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-02-15 13:52:15