Zoeken op website

Swatchdog - Eenvoudige logbestandwatcher in realtime in Linux


Swatchdog (de “Simple WATCH DOG ”) is een eenvoudig Perl-script voor het monitoren van actieve logbestanden op Unix-achtige systemen zoals Linux. Het bekijkt uw logbestanden op basis van reguliere expressies die u in een configuratiebestand kunt definiëren. Je kunt het uitvoeren vanaf de opdrachtregel of op de achtergrond, los van elke terminal met behulp van de daemon-modusoptie.

Merk op dat het programma oorspronkelijk swatch heette (de “Simple Watcher”), maar een verzoek van het oude Zwitserse horlogebedrijf om een naamswijziging zorgde ervoor dat de ontwikkelaar de naam veranderde in swatchdog.

Lees ook: 4 goede open source logbewakings- en beheertools voor Linux

Belangrijk is dat swatchdog is uitgegroeid van een script voor het bekijken van logs geproduceerd door de syslog-faciliteit van Unix, en dat het vrijwel elk soort logs kan monitoren.

Hoe Swatch onder Linux te installeren

Het pakket swatchdog kan worden geïnstalleerd vanuit de officiële opslagplaatsen van reguliere Linux-distributies als een pakket “swatch” via een pakketbeheerder, zoals weergegeven.


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

Om de nieuwste versie van swatchdog te installeren, moet je deze vanaf de broncode compileren met behulp van de volgende opdrachten in elke Linux-distributie.


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

Nadat u de swatch heeft geïnstalleerd, moet u het configuratiebestand maken (de standaardlocatie is /home/$USER/.swatchdogrc of .swatchrc ), om te bepalen naar welke typen expressiepatronen moet worden gezocht en welk type actie(s) moet worden ondernomen wanneer een patroon overeenkomt.


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

Voeg uw reguliere expressie toe aan dit bestand en elke regel moet een trefwoord en een waarde bevatten (soms optioneel), gescheiden door een spatie of een gelijkteken (=). U moet een patroon opgeven en de actie(s) die moet worden ondernomen als een patroon overeenkomt.

We zullen een eenvoudig configuratiebestand gebruiken. Meer opties vindt u bijvoorbeeld op de swatchdog-manpagina.

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

Hier is onze reguliere expressie een letterlijke tekenreeks – “sudo”, wat betekent dat elke keer dat de tekenreeks sudo in het logbestand verschijnt, in rode tekst naar de terminal wordt afgedrukt en mail specificeert de actie die moet worden ondernomen, namelijk het herhalen van het overeenkomende patroon op de terminal en het op receptieve wijze sturen van een e-mail naar het opgegeven adres.

Nadat u het hebt geconfigureerd, leest swatchdog standaard het logbestand /var/log/syslog. Als dit bestand niet aanwezig is, leest het /var/log/messages.


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

U kunt een ander configuratiebestand opgeven met de vlag -c, zoals weergegeven in het volgende voorbeeld.

Maak eerst een staalconfiguratiemap en een bestand.

mkdir swatch
touch swatch/secure.conf

Voeg vervolgens de volgende configuratie toe aan het bestand om mislukte inlogpogingen, mislukte SSH-inlogpogingen en succesvolle SSH-inlogpogingen te monitoren vanuit het /var/log/secure logbestand.

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"

Voer nu Swatch uit door het configuratiebestand op te geven met de -c en het logbestand met de vlag -t, zoals weergegeven.

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

Om het op de achtergrond uit te voeren, gebruik je de vlag --daemon; in deze modus is het losgekoppeld van elke terminal.

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

Om nu de staalconfiguratie te testen, probeert u vanaf de andere terminal in te loggen op de server. U ziet de volgende uitvoer afgedrukt op de terminal waarop Swatchdog draait.

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

U kunt ook meerdere staalprocessen uitvoeren om verschillende logbestanden te controleren.

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

Voor meer informatie, bekijk de swatchdog-manpagina.

man swatchdog

Swatchdog SourceForge-repository: https://sourceforge.net/projects/swatch/

Hieronder volgen enkele aanvullende handleidingen voor logboekbewaking die u nuttig zult vinden:

  1. 4 manieren om logbestanden in realtime te bekijken of te monitoren
  2. Hoe u een gecentraliseerde logserver kunt maken met Rsyslog
  3. Monitor serverlogs in realtime met de tool "Log.io".
  4. lnav – Bekijk en analyseer Apache-logboeken vanaf een Linux-terminal
  5. ngxtop - Monitor Nginx-logbestanden in realtime in Linux

Swatchdog is een eenvoudige tool voor het actief monitoren van logbestanden voor Unix-achtige systemen zoals Linux. Probeer het uit en deel uw mening of stel vragen in het opmerkingengedeelte.