Swatchdog - Observator simplu de fișiere jurnal în timp real în Linux


Swatchdog („Simple WATCH DOG ”) este un script Perl simplu pentru monitorizarea fișierelor jurnal active pe sisteme asemănătoare Unix, cum ar fi Linux. Vă urmărește jurnalele pe baza expresiilor regulate pe care le puteți defini într-un fișier de configurare. Îl puteți rula din linia de comandă sau în fundal, detașat de orice terminal folosind opțiunea mod daemon.

Rețineți că programul s-a numit inițial swatch („Simple Watcher ”), dar o solicitare a vechei companii de ceasuri elvețiane pentru o schimbare a numelui a făcut ca dezvoltatorul să-și schimbe numele în swatchdog.

Citiți și: 4 instrumente bune de monitorizare și gestionare a jurnalelor open source pentru Linux

Important, swatchdog a crescut dintr-un script pentru vizionarea jurnalelor produse de facilitatea syslog a Unix și poate monitoriza aproape orice tip de jurnal.

Cum se instalează Swatch în Linux

Pachetul swatchdog este disponibil pentru a fi instalat din depozitele oficiale ale distribuțiilor Linux principale ca pachet „swatch” printr-un manager de pachete, așa cum se arată.


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

Pentru a instala cea mai recentă versiune de swatchdog, trebuie să o compilați din sursă folosind următoarele comenzi în orice distribuție Linux.


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

După ce ați instalat swatch-ul, trebuie să creați fișierul de configurare al acestuia (locația implicită este /home/$USER/.swatchdogrc sau .swatchrc ), pentru a determina ce tipuri de modele de expresie să căutați și ce tip de acțiune(e) ar trebui întreprinsă atunci când un model este potrivit.


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

Adăugați expresia dvs. regulată în acest fișier și fiecare linie ar trebui să conțină un cuvânt cheie și o valoare (uneori opționale), separate printr-un spațiu sau un semn egal (=). Trebuie să specificați un model și o acțiune(e) care trebuie întreprinsă atunci când se potrivește un model.

Vom folosi un fișier de configurare simplu, puteți găsi mai multe opțiuni în pagina de manual swatchdog, de exemplu.

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

Aici, expresia noastră regulată este un șir literal – „sudo”, înseamnă că de fiecare dată când șirul sudo a apărut în fișierul jurnal, va fi imprimat pe terminal cu text roșu și e-mail specificați acțiunea care trebuie întreprinsă, care este să repetați modelul potrivit pe terminal și să trimiteți un e-mail la adresa specificată, receptiv.

După ce l-ați configurat, swatchdog citește în mod implicit fișierul jurnal /var/log/syslog, dacă acest fișier nu este prezent, va citi /var/log/messages.


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

Puteți specifica un fișier de configurare diferit folosind indicatorul -c așa cum se arată în exemplul următor.

Mai întâi creați un director de configurare a mostrelor și un fișier.

mkdir swatch
touch swatch/secure.conf

Apoi, adăugați următoarea configurație în fișier pentru a monitoriza încercările eșuate de conectare, încercările eșuate de conectare SSH, autentificări SSH reușite din fișierul jurnal /var/log/secure.

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"

Acum rulați Swatch-ul specificând fișierul de configurare utilizând -c și fișierul de jurnal folosind semnalul -t așa cum se arată.

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

Pentru a-l rula în fundal, utilizați indicatorul --daemon; în acest mod, este detașat de orice terminal.

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

Acum, pentru a testa configurația specimenului, încercați să vă conectați la server de la un terminal diferit, veți vedea următoarea ieșire tipărită pe terminalul în care rulează 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)

De asemenea, puteți rula mai multe procese de mostre pentru a monitoriza diferite fișiere jurnal.

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

Pentru mai multe informații, consultați pagina de manual swatchdog.

man swatchdog

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

Următoarele sunt câteva ghiduri suplimentare de monitorizare a jurnalelor pe care le veți găsi utile:

  1. 4 moduri de a viziona sau monitoriza fișierele jurnal în timp real
  2. Cum se creează un server de jurnal centralizat cu Rsyslog
  3. Monitorizarea serverului se conectează în timp real cu Instrumentul „Log.io”.
  4. lnav – Urmăriți și analizați jurnalele Apache de la un terminal Linux
  5. ngxtop – Monitorizează fișierele jurnal Nginx în timp real în Linux

Swatchdog este un instrument simplu de monitorizare a fișierelor jurnal activ pentru sisteme similare Unix, cum ar fi Linux. Încearcă-l și împărtășește-ți gândurile sau pune orice întrebări în secțiunea de comentarii.