Swatchdog - Enkel loggfilovervåking i sanntid i Linux


Swatchdog ("Simple WATCH DOG ") er et enkelt Perl-skript for å overvåke aktive loggfiler på Unix-lignende systemer som Linux. Den overvåker loggene dine basert på regulære uttrykk som du kan definere i en konfigurasjonsfil. Du kan kjøre den fra kommandolinjen eller i bakgrunnen, løsrevet fra hvilken som helst terminal ved å bruke daemon-modus-alternativet.

Merk at programmet opprinnelig ble kalt swatch ("Simple Watcher "), men en forespørsel fra det gamle sveitsiske klokkeselskapet om navneendring førte til at utvikleren endret navn til swatchdog.

Les også: 4 gode loggovervåkings- og administrasjonsverktøy for åpen kildekode for Linux

Viktigere er at swatchdog har vokst fra et skript for å se logger produsert av Unixs syslog-anlegg, og det kan overvåke omtrent alle typer logger.

Hvordan installere Swatch i Linux

Pakken swatchdog er tilgjengelig for installasjon fra de offisielle depotene til mainstream Linux-distribusjoner som en pakke "swatch" via en pakkebehandling som vist.


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+]

For å installere den nyeste versjonen av swatchdog, må du kompilere den fra kilden ved å bruke følgende kommandoer i enhver Linux-distribusjon.


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

Når du har installert swatch, må du opprette konfigurasjonsfilen (standardplasseringen er /home/$USER/.swatchdogrc eller .swatchrc ), for å bestemme hvilke typer uttrykksmønstre du skal se etter og hvilken type handling(er) som skal utføres når et mønster matches.


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

Legg til det regulære uttrykket ditt i denne filen, og hver linje skal inneholde et nøkkelord og en verdi (noen ganger valgfritt), atskilt med et mellomrom eller et likt (=)-tegn. Du må spesifisere et mønster og en handling(er) som skal utføres når et mønster matches.

Vi vil bruke en enkel konfigurasjonsfil, du kan for eksempel finne flere alternativer på swatchdog-man-siden.

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

Her er vårt regulære uttrykk en bokstavelig streng – “sudo”, betyr at enhver gang strengen sudo dukket opp i loggfilen, vil bli skrevet ut til terminalen i rød tekst og mail spesifiserer handlingen som skal utføres, som er å gjenta det matchede mønsteret på terminalen og sende en e-post til den spesifiserte adressen mottakelig.

Etter at du har konfigurert den, leser swatchdog /var/log/syslog-loggfilen som standard, hvis denne filen ikke er til stede, leser den /var/log/messages.


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

Du kan spesifisere en annen konfigurasjonsfil ved å bruke -c-flagget som vist i følgende eksempel.

Opprett først en fargeprøvekonfigurasjonskatalog og en fil.

mkdir swatch
touch swatch/secure.conf

Deretter legger du til følgende konfigurasjon i filen for å overvåke mislykkede påloggingsforsøk, mislykkede SSH-påloggingsforsøk, vellykkede SSH-pålogginger fra /var/log/secure-loggfilen.

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"

Kjør nå fargeprøven ved å spesifisere konfigurasjonsfilen ved å bruke -c og loggfilen ved å bruke -t-flagget som vist.

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

For å kjøre den i bakgrunnen, bruk --daemon-flagget; i denne modusen er den løsrevet fra en hvilken som helst terminal.

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

Nå for å teste fargeprøvekonfigurasjonen, prøv å logge på serveren fra den andre terminalen, du ser følgende utgang skrevet ut til terminalen der Swatchdog kjører.

*** 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)

Du kan også kjøre flere fargeprøveprosesser for å overvåke ulike loggfiler.

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

For mer informasjon, sjekk swatchdog-man-siden.

man swatchdog

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

Følgende er noen ekstra loggovervåkingsveiledninger som du vil finne nyttige:

  1. 4 måter å se eller overvåke loggfiler i sanntid
  2. Hvordan lage en sentralisert loggserver med Rsyslog
  3. Overvåk server logger i sanntid med "Log.io"-verktøyet
  4. lnav – Se og analyser Apache-logger fra en Linux-terminal
  5. ngxtop – Overvåk Nginx-loggfiler i sanntid i Linux

Swatchdog er et enkelt aktivt loggfilovervåkingsverktøy for Unix-lignende systemer som Linux. Prøv det og del tankene dine eller still spørsmål i kommentarfeltet.