Swatchdog - Einfach Log Datei Watcher an Echtzäit a Linux


Swatchdog (Simple WATCH DOG) ass en einfacht Perl Skript fir aktiv Logdateien op Unix-ähnleche Systemer wéi Linux ze iwwerwaachen. Et iwwerwaacht Är Logbicher op Basis vu reguläre Ausdréck, déi Dir an enger Konfiguratiounsdatei definéiere kënnt. Dir kënnt se lafen vun der Kommandozeil oder am Hannergrond, ofgeschloss vun all Terminal mat der Daemon Modus Optioun.

Notéiert datt de Programm ursprénglech Swatch genannt gouf (de Simple Watcher) awer eng Ufro vun der aler Schwäizer Iwwerwaachungsfirma fir en Numm änneren huet den Entwéckler säin Numm op Swatchdog geännert.

Wichteg ass, swatchdog ass aus engem Skript gewuess fir Logbicher ze kucken, déi vun der Unix Syslog Ariichtung produzéiert ginn, an et ka bal all Zort vu Logbicher iwwerwaachen.

Wéi installéiere ech Swatch op Linux

De Package Swatchdog ass verfügbar fir aus den offiziellen Repositories vun Mainstream Linux Verdeelungen als Package Swatch iwwer e Package Manager ze installéieren wéi gewisen.

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

Fir déi lescht Versioun vum Swatchdog z'installéieren, musst Dir et aus der Quell kompiléieren andeems Dir folgend Kommandoen an all Linux Verdeelung benotzt.

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

Wann Dir d'Swatch installéiert hutt, musst Dir seng Konfiguratiounsdatei erstellen (Standardplaz ass /home/$USER/.swatchdogrc oder .swatchrc), fir festzeleeën wéi eng Aarte vun Ausdrockmuster no gesicht ginn a wéi eng Handlungsart(en) sollten. geholl ginn wann e Muster passt.

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

Füügt Äre reguläre Ausdrock an dësem Fichier an all Zeil soll e Schlësselwuert a Wäert enthalen (heiansdo fakultativ), getrennt vun engem Raum oder engem gläiche (=) Zeechen. Dir musst e Muster spezifizéieren an eng Handlung (en) fir ze huelen wann e Muster passt.

Mir benotzen eng einfach Konfiguratiounsdatei, Dir kënnt zum Beispill méi Optiounen op der Swatchdog Man Säit fannen.

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

Hei ass eise reegelméissegen Ausdrock e wuertwiertleche String - sudo, heescht all Kéier wann d'String sudo an der Logdatei opgetaucht ass, op den Terminal a roude Text gedréckt gëtt an d'Mail spezifizéiert d'Aktioun déi getraff gëtt, dat ass de passenden Echo Muster um Terminal a schéckt eng E-Mail op déi spezifizéiert Adress, empfänglech.

Nodeems Dir et konfiguréiert hutt, liest swatchdog d' /var/log/syslog Log Datei par défaut, wann dës Datei net präsent ass, liest se /var/log/messages.

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

Dir kënnt eng aner Konfiguratiounsdatei spezifizéieren mat dem -c Fändel wéi am folgenden Beispill gewisen.

Erstellt als éischt e Swatch Konfiguratiounsverzeechnes an eng Datei.

$ mkdir swatch
$ touch swatch/secure.conf

Als nächst füügt déi folgend Konfiguratioun an der Datei un fir iwwerwaachte Loginversuche, gescheitert SSH Loginversuch, erfollegräich SSH Login vun der /var/log/secure Log-Datei ze iwwerwaachen.

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"

Fuert elo de Swatch andeems Dir d'Konfiguratiounsdatei mat der -c spezifizéiert a Log Datei mat -t Fändel wéi gewisen.

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

Fir et am Hannergrond ze lafen, benotzt de --Daemon Fändel; an dësem Modus ass et vun all Terminal getrennt.

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

Elo fir d'Swatch-Konfiguratioun ze testen, probéiert de Server vum aneren Terminal ze loggen, Dir gesitt déi folgend Ausgang op den Terminal gedréckt wou Swatchdog leeft.

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

Dir kënnt och verschidde Swatch-Prozesser ausféieren fir verschidde Logdateien ze iwwerwaachen.

$ 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

Fir méi Informatioun, kuckt d'Swatchdog Man Säit.

$ man swatchdog

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

Déi folgend sinn e puer zousätzlech Log Iwwerwaachungsguiden déi Dir nëtzlech fannt:

  1. 4 Weeër fir Logdateien an Echtzäit ze kucken oder ze iwwerwaachen
  2. Wéi en zentraliséierte Log-Server mat Rsyslog erstellen
  3. Monitor Server loggt an Echtzäit mat \Log.io Tool
  4. lnav - Apache Logbicher vun engem Linux Terminal kucken an analyséieren
  5. ngxtop - Monitor Nginx Log Dateien an Echtzäit op Linux

Swatchdog ass en einfacht aktive Logdatei Iwwerwaachungsinstrument fir Unix-ähnlech Systemer wéi Linux. Probéiert et eraus an deelt Är Gedanken oder stellt Froen an der Kommentarsektioun.