Swatchdog - Enostaven nadzornik datotek dnevnikov v realnem času v Linuxu


Swatchdog (\ "Simple WATCH DOG") je preprost skript Perl za spremljanje aktivnih datotek dnevnikov v sistemih, podobnih Unixu, kot je Linux. Opazuje vaše dnevnike na podlagi regularnih izrazov, ki jih lahko definirate v konfiguracijski datoteki. Lahko ga zaženete iz ukazne vrstice ali v ozadju, ločeno od katerega koli terminala z možnostjo daemon mode.

Upoštevajte, da se je program prvotno imenoval swatch (\ "Simple Watcher"), vendar je zahtevek starega švicarskega urarskega podjetja za spremembo imena razvijalca spremenil v swatchdog.

Pomembno je, da je swatchdog zrasel iz skripta za ogled dnevnikov, ki jih je izdelal Unixov sistem syslog, in lahko spremlja skoraj vse vrste dnevnikov.

Kako namestiti Swatch v Linux

Paket swatchdog je na voljo za namestitev iz uradnih skladišč običajnih distribucij Linuxa kot paket "swatch" prek upravitelja paketov, kot je prikazano.

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

Če želite namestiti najnovejšo različico swatchdoga, jo morate sestaviti iz vira z uporabo naslednjih ukazov v kateri koli distribuciji Linuxa.

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

Ko namestite swatch, morate ustvariti njegovo konfiguracijsko datoteko (privzeta lokacija je /home/$USER/.swatchdogrc ali .swatchrc), da ugotovite, katere vrste vzorcev izrazov je treba iskati in kakšne vrste dejanj je treba vzeti, ko se vzorec ujema.

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

V to datoteko dodajte svoj regularni izraz in vsaka vrstica mora vsebovati ključno besedo in vrednost (včasih neobvezno), ločena s presledkom ali enakim znakom (=) . Določiti morate vzorec in dejanja, ki jih je treba izvesti, ko se vzorec ujema.

Uporabili bomo preprosto konfiguracijsko datoteko, več možnosti najdete na primer na strani s swatchdogom.

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

Tukaj je naš regularni izraz dobesedni niz - "sudo", pomeni, da bi se vsakič, ko bi se niz sudo pojavil v dnevniški datoteki, natisnil na terminal v rdečem besedilu in po pošti določil dejanje, ki ga je treba izvesti, to je, da odmeva ujemajoče se vzorec na terminalu in receptivno poslati e-pošto na določen naslov.

Ko ga konfigurirate, swatchdog privzeto prebere datoteko dnevnika/var/log/syslog, če te datoteke ni, bere/var/log/messages.

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

Z zastavo -c lahko podate drugo konfiguracijsko datoteko, kot je prikazano v naslednjem primeru.

Najprej ustvarite imenik konfiguracije vzorca in datoteko.

$ mkdir swatch
$ touch swatch/secure.conf

Nato v datoteko dodajte naslednjo konfiguracijo za spremljanje neuspešnih poskusov prijave, neuspešnih poskusov prijave SSH, uspešnih prijav SSH iz datoteke/var/log/secure log.

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"

Zdaj zaženite Swatch tako, da določite konfiguracijsko datoteko z -c in datoteko dnevnika z zastavico -t , kot je prikazano.

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

Če ga želite zagnati v ozadju, uporabite zastavico --daemon ; v tem načinu je ločen od katerega koli terminala.

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

Zdaj, da preizkusite konfiguracijo swatch, se poskusite prijaviti v strežnik z drugega terminala, vidite naslednji izhod, natisnjen na terminal, kjer deluje Swatchdog.

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

Za spremljanje različnih datotek dnevnika lahko zaženete tudi več procesov vzorčenja.

$ 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

Za več informacij si oglejte man stran swatchdog.

$ man swatchdog

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

Spodaj je nekaj dodatnih vodnikov za spremljanje dnevnikov, ki vam bodo v pomoč:

  1. 4 načini gledanja ali spremljanja dnevniških datotek v realnem času
  2. Kako ustvariti centraliziran strežnik dnevnikov z Rsyslogom
  3. Dnevnike strežnika spremljajte v realnem času z orodjem\"Log.io"
  4. lnav - Oglejte si in analizirajte dnevnike Apache iz terminala Linux
  5. ngxtop - Nadzirajte datoteke dnevnika Nginx v realnem času v Linuxu

Swatchdog je preprosto orodje za spremljanje datotek dnevnikov za sisteme, podobne Unixu, kot je Linux. Preizkusite in delite svoje misli ali zastavite kakršna koli vprašanja v razdelku za komentarje.