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:
- 4 sposoby oglądania lub monitorowania plików dziennika w czasie rzeczywistym
- Jak utworzyć scentralizowany serwer dzienników za pomocą Rsyslog
- Monitoruj logi serwera w czasie rzeczywistym za pomocą narzędzia „Log.io”.
- lnav – Oglądaj i analizuj dzienniki Apache z terminala Linux
- 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.