Wyszukiwanie w witrynie

Swatchdog — prosty obserwator plików dziennika w czasie rzeczywistym w systemie Linux


Swatchdog („Prosty WATCH DOG”) to prosty skrypt Perla służący do monitorowania aktywnych plików dziennika w systemach uniksowych, takich jak Linux. Obserwuje Twoje logi w oparciu o wyrażenia regularne, które możesz zdefiniować w pliku konfiguracyjnym. Można go uruchomić z wiersza poleceń lub w tle, odłączony od dowolnego terminala, korzystając z opcji trybu demona.

Należy pamiętać, że program pierwotnie nosił nazwę swatch („Simple Watcher”), ale na prośbę starej szwajcarskiej firmy produkującej zegarki o zmianę nazwy programista zmienił nazwę na swatchdog.

Przeczytaj także: 4 dobre narzędzia do monitorowania logów Open Source i zarządzania nimi dla systemu Linux

Co ważne, swatchdog wyrósł ze skryptu do przeglądania logów generowanych przez funkcję syslog systemu Unix i może monitorować niemal każdy rodzaj logów.

Jak zainstalować Swatch w systemie Linux

Pakiet swatchdog można zainstalować z oficjalnych repozytoriów głównych dystrybucji Linuksa jako pakiet „swatch” za pośrednictwem menedżera pakietów, jak pokazano.


sudo apt install swatch	[On Ubuntu/Debian]
sudo yum install epel-release && sudo yum install swatch	[On RHEL/CentOS]
sudo dnf install swatch	[On Fedora 22+]

Aby zainstalować najnowszą wersję swatchdog, musisz ją skompilować ze źródła, używając następujących poleceń w dowolnej dystrybucji Linuksa.


git clone https://github.com/ToddAtkins/swatchdog.git
cd swatchdog/
perl Makefile.PL
make
sudo make install
sudo make realclean

Po zainstalowaniu próbki musisz utworzyć jej plik konfiguracyjny (domyślna lokalizacja to /home/$USER/.swatchdogrc lub .swatchrc ), aby określić, jakich typów wzorców wyrażeń należy szukać i jakiego rodzaju działania należy podjąć po dopasowaniu wzorca.


touch /home/tecmint/.swatchdogrc
OR
touch /home/tecmint/.swatchrc

Dodaj swoje wyrażenie regularne do tego pliku, a każda linia powinna zawierać słowo kluczowe i wartość (czasami opcjonalne), oddzielone spacją lub znakiem równości (=). Musisz określić wzorzec i działania, które mają zostać podjęte po dopasowaniu wzorca.

Będziemy używać prostego pliku konfiguracyjnego. Więcej opcji znajdziesz na przykład na stronie podręcznika programu swatchdog.

watchfor  /sudo/
	echo red
	[email , subject="Sudo Command"

Tutaj naszym wyrażeniem regularnym jest dosłowny ciąg znaków – „sudo”, co oznacza, że za każdym razem, gdy ciąg sudo pojawi się w pliku dziennika, zostanie wydrukowany na terminalu czerwonym tekstem i poczta określa akcję, jaką należy wykonać, czyli powtórzenie dopasowanego wzorca na terminalu i wysłanie wiadomości e-mail na podany adres w sposób odbiorczy.

Po skonfigurowaniu swatchdog domyślnie odczytuje plik dziennika /var/log/syslog, a jeśli ten plik nie istnieje, czyta /var/log/messages.


swatch     [On RHEL/CentOS & Fedora]
swatchdog  [On Ubuntu/Debian]

Możesz określić inny plik konfiguracyjny za pomocą flagi -c, jak pokazano w poniższym przykładzie.

Najpierw utwórz katalog konfiguracyjny próbki i plik.

mkdir swatch
touch swatch/secure.conf

Następnie dodaj do pliku następującą konfigurację, aby monitorować nieudane próby logowania, nieudane próby logowania SSH i udane logowania SSH z pliku dziennika /var/log/secure.

watchfor /FAILED/
echo red
[email , subject="Failed Login Attempt"

watchfor /ROOT LOGIN/
echo red
[email , subject="Successful Root Login"

watchfor /ssh.*: Failed password/
echo red
[email , subject="Failed SSH Login Attempt"

watchfor /ssh.*: session opened for user root/ 
echo red
[email , subject="Successful SSH Root Login"

Teraz uruchom Swatch, określając plik konfiguracyjny za pomocą -c i plik dziennika za pomocą flagi -t, jak pokazano.

swatchdog -c ~/swatch/secure.conf -t /var/log/secure

Aby uruchomić go w tle, użyj flagi --daemon; w tym trybie jest odłączony od dowolnego terminala.

swatchdog ~/swatch/secure.conf -t /var/log/secure --daemon  

Teraz, aby przetestować konfigurację próbki, spróbuj zalogować się do serwera z innego terminala. Na terminalu, na którym działa Swatchdog, zostanie wyświetlony następujący komunikat.

*** swatch version 3.2.3 (pid:16531) started at Thu Jul 12 12:45:10 BST 2018

Jul 12 12:51:19 tecmint sshd[16739]: Failed password for root from 192.168.0.103 port 33324 ssh2
Jul 12 12:51:19 tecmint sshd[16739]: Failed password for root from 192.168.0.103 port 33324 ssh2
Jul 12 12:52:07 tecmint sshd[16739]: pam_unix(sshd:session): session opened for user root by (uid=0)
Jul 12 12:52:07 tecmint sshd[16739]: pam_unix(sshd:session): session opened for user root by (uid=0)

Można także uruchomić wiele procesów próbek w celu monitorowania różnych plików dziennika.

swatchdog -c ~/site1_watch_config -t /var/log/nginx/site1/access_log --daemon  
swatchdog -c ~/messages_watch_config -t /var/log/messages --daemon
swatchdog -c ~/auth_watch_config -t /var/log/auth.log --daemon

Więcej informacji można znaleźć na stronie podręcznika programu swatchdog.

man swatchdog

Repozytorium Swatchdog SourceForge: https://sourceforge.net/projects/swatch/

Poniżej znajdują się dodatkowe przewodniki dotyczące monitorowania dzienników, które mogą okazać się przydatne:

  1. 4 sposoby oglądania lub monitorowania plików dziennika w czasie rzeczywistym
  2. Jak utworzyć scentralizowany serwer dzienników za pomocą Rsyslog
  3. Monitoruj logi serwera w czasie rzeczywistym za pomocą narzędzia „Log.io”.
  4. lnav – Oglądaj i analizuj dzienniki Apache z terminala Linux
  5. ngxtop – Monitoruj pliki dziennika Nginx w czasie rzeczywistym w systemie Linux

Swatchdog to proste narzędzie do monitorowania aktywnych plików dziennika dla systemów uniksowych, takich jak Linux. Wypróbuj i podziel się swoimi przemyśleniami lub zadaj pytania w sekcji komentarzy.