Swatch - śledzenie logów

Sun 13 March 2011 by admin

Śledzenie logów w poszukiwaniu wystąpienia określonych słów jest czynnością żmudną i już chociażby z tego powodu warto ją zautomatyzować. Z pomocą przychodzi nam narzędzie swatch...

Swatch[1] określany jako simple watcher, jest to narzędzie napisane w perl'u. Działanie tej aplikacji sprowadza się do śledzenia wybranych plików i podejmowania akcji w przypadku wykrycia wystąpienia szukanego ciągu (wyrażenia regularnego). Najprościej opisać konfigurację swatch'a przy pomocy prostego przykładu:

# czego szukamy

watchfor /foo(.*)/

echo bold

# info o znalezisku dla uzytkownika root 
write root

# mail, ale o okreslonych porach dnia i godziny
mail address=root,subject="test alert",when=1-6:9-17

# ograniczamy liczbe powiadomien do 2 w przeciagu 60s

# dla unikalnych ciagow $1 w szukanym slowie foo    
threshold track_by=$1,type=limit,count=2,seconds=60

# wywolaj skrypt        
exec /tmp/logger.sh

# dzwiek powiadomienia w konsoli         
bell 1

w pliku konfiguracyjnym możemy dodać wiele sekcji rozpoczynających się od watchfor. Więcej opcji monitorujących znaleźć można w man swatch. Na koniec pozostaje jeszcze zdefiniowanie plików, których zawartość zamierzamy śledzić, aby to uczynić uruchamiamy swatch z przełącznikiem -t np.

# swatch --config-file /etc/swatch.conf -t /var/log/messages --daemon

Teraz wystarczy przetestować konfigurację np. przy pomocy:

# logger -f /var/log/messages -p warning foo1

Tym sposobem możemy zamknąć zbędne konsole, na których to królował program tail, chociażby ten opisany w:

http://blog.witalis.net/?p=576

[1] http://sourceforge.net/projects/swatch/


Comments