Swatchdog - Enkel logfilovervågning i realtid i Linux


Swatchdog ("Simple WATCH DOG") er et simpelt Perl-script til overvågning af aktive logfiler på Unix-lignende systemer som Linux. Det overvåger dine logfiler baseret på regulære udtryk, som du kan definere i en konfigurationsfil. Du kan køre det fra kommandolinjen eller i baggrunden, løsrevet fra enhver terminal ved hjælp af indstillingen daemon-tilstand.

Bemærk, at programmet oprindeligt blev kaldt farveprøve ("Simple Watcher"), men en anmodning fra det gamle schweiziske urfirma om en navneændring så udvikleren ændre sit navn til swatchdog.

Det er vigtigt, at swatchdog er vokset fra et script til at se logfiler produceret af Unix's syslog-facilitet, og det kan overvåge næsten enhver form for logfiler.

Sådan installeres Swatch i Linux

Pakken swatchdog er tilgængelig til installation fra de officielle arkiver for mainstream Linux-distributioner som en pakke "swatch" via en pakkehåndtering 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 at installere den nyeste version af swatchdog skal du kompilere den fra kilden ved hjælp af følgende kommandoer i enhver Linux-distribution.

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

Når du har installeret farveprøven, skal du oprette dens konfigurationsfil (standardplacering er /home/$USER/.swatchdogrc eller .swatchrc) for at bestemme, hvilke typer udtryksmønstre, du skal kigge efter, og hvilken type handling (er) der skal tages, når et mønster matches.

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

Tilføj dit regulære udtryk i denne fil, og hver linje skal indeholde et nøgleord og en værdi (undertiden valgfri) adskilt af et mellemrum eller et lig (=) -tegn. Du skal angive et mønster og en eller flere handlinger, der skal udføres, når et mønster matches.

Vi bruger en simpel konfigurationsfil, du kan f.eks. Finde flere muligheder på swatchdog-mandsiden.

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

Her er vores regulære udtryk en bogstavelig streng - "sudo", betyder hver gang streng sudo dukkede op i logfilen, ville blive udskrevet til terminalen i rød tekst og mail angive den handling, der skal udføres, hvilket er at ekko den matchede mønster på terminalen og send en e-mail til den angivne adresse, modtageligt.

Når du har konfigureret det, læser swatchdog som standard/var/log/syslog-logfilen. Hvis denne fil ikke er til stede, læser den/var/log/meddelelser.

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

Du kan angive en anden konfigurationsfil ved hjælp af -c flag som vist i det følgende eksempel.

Opret først en farveprøvekonfigurationsmappe og en fil.

$ mkdir swatch
$ touch swatch/secure.conf

Dernæst tilføj følgende konfiguration i filen for at overvåge mislykkede loginforsøg, mislykkede SSH-loginforsøg, vellykkede SSH-login fra/var/log/sikker logfil.

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"

Kør nu farveprøven ved at angive konfigurationsfilen ved hjælp af -c og logfilen ved hjælp af -t -flagget som vist.

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

For at køre det i baggrunden skal du bruge flagget --daemon ; i denne tilstand er den løsrevet fra enhver terminal.

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

Nu for at teste farveprøvekonfigurationen, prøv at logge ind på serveren fra den anden terminal, du ser følgende output udskrevet til terminalen, hvor Swatchdog kø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å køre flere farveprøveprocesser for at overvåge forskellige logfiler.

$ 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 mere information, se swatchdog mandesiden.

$ man swatchdog

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

Følgende er nogle yderligere logovervågningsvejledninger, som du finder nyttige:

  1. 4 måder at se eller overvåge logfiler i realtid
  2. Sådan oprettes en central logserver med Rsyslog
  3. Overvåg serverlogfiler i realtid med "Log.io" -værktøjet
  4. lnav - Se og analyser Apache-logfiler fra en Linux-terminal
  5. ngxtop - Overvåg Nginx-logfiler i realtid i Linux

Swatchdog er et simpelt aktivt overvågningsværktøj til logfiler til Unix-lignende systemer som Linux. Prøv det, og del dine tanker, eller still spørgsmål i kommentarfeltet.