Swatchdog - Simple Log File Watcher en temps real a Linux


Swatchdog (el \Simple WATCH DOG) és un script de Perl senzill per supervisar fitxers de registre actius en sistemes semblants a Unix, com ara Linux. Vigila els vostres registres en funció d'expressions regulars que podeu definir en un fitxer de configuració. Podeu executar-lo des de la línia d'ordres o en segon pla, desconnectat de qualsevol terminal mitjançant l'opció de mode dimoni.

Tingueu en compte que el programa s'anomenava originalment swatch (el \Simple Watcher), però una sol·licitud de l'antiga companyia de rellotges suïssa per a un canvi de nom va fer que el desenvolupador canviés el seu nom a swatchdog.

És important destacar que swatchdog ha crescut a partir d'un script per veure els registres produïts per la instal·lació syslog d'Unix i pot supervisar gairebé qualsevol tipus de registres.

Com instal·lar Swatch a Linux

El paquet swatchdog està disponible per instal·lar-se des dels dipòsits oficials de les distribucions principals de Linux com a paquet swatch mitjançant un gestor de paquets, tal com es mostra.

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

Per instal·lar la versió més recent de swatchdog, heu de compilar-la des de la font utilitzant les ordres següents en qualsevol distribució de Linux.

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

Un cop hàgiu instal·lat la mostra, heu de crear el seu fitxer de configuració (la ubicació per defecte és /home/$USER/.swatchdogrc o .swatchrc), per determinar quins tipus de patrons d'expressió cercar i quin tipus d'acció(s) haurien de buscar. prendre quan coincideix un patró.

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

Afegiu la vostra expressió regular en aquest fitxer i cada línia hauria de contenir una paraula clau i un valor (de vegades opcionals), separats per un espai o un signe igual (=). Heu d'especificar un patró i una o més accions que s'han de dur a terme quan coincideixi amb un patró.

Utilitzarem un fitxer de configuració senzill, podeu trobar més opcions a la pàgina de manual de swatchdog, per exemple.

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

Aquí, la nostra expressió regular és una cadena literal: sudo, vol dir que cada vegada que aparegués la cadena sudo al fitxer de registre, s'imprimiria al terminal en text vermell i el correu especificaria l'acció que cal dur a terme, que és fer ressò de la coincidència. patró al terminal i enviar un correu electrònic a l'adreça especificada, de manera receptiva.

Després d'haver-lo configurat, swatchdog llegeix el fitxer de registre /var/log/syslog per defecte, si aquest fitxer no està present, llegeix /var/log/messages.

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

Podeu especificar un fitxer de configuració diferent utilitzant el senyalador -c tal com es mostra a l'exemple següent.

Primer creeu un directori de configuració de mostres i un fitxer.

$ mkdir swatch
$ touch swatch/secure.conf

A continuació, afegiu la configuració següent al fitxer per controlar els intents d'inici de sessió fallits, els intents d'inici de sessió SSH fallits, els inicis de sessió SSH satisfactoris des del fitxer de registre /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"

Ara executeu el Swatch especificant el fitxer de configuració amb el -c i el fitxer de registre amb el senyalador -t tal com es mostra.

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

Per executar-lo en segon pla, utilitzeu el senyalador --daemon; en aquest mode, es desconnecta de qualsevol terminal.

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

Ara, per provar la configuració de la mostra, proveu d'iniciar sessió al servidor des del terminal diferent, veureu la següent sortida impresa al terminal on s'executa 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)

També podeu executar diversos processos de mostra per supervisar diversos fitxers de registre.

$ 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

Per obtenir més informació, consulteu la pàgina de manual de swatchdog.

$ man swatchdog

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

A continuació es mostren algunes guies addicionals de supervisió de registres que us resultaran útils:

  1. 4 maneres de veure o supervisar fitxers de registre en temps real
  2. Com crear un servidor de registre centralitzat amb Rsyslog
  3. Supervisa els inicis de sessió del servidor en temps real amb l'eina \Log.io
  4. lnav: mira i analitza els registres d'Apache des d'un terminal Linux
  5. ngxtop: supervisa els fitxers de registre de Nginx en temps real a Linux

Swatchdog és una senzilla eina activa de control de fitxers de registre per a sistemes semblants a Unix com Linux. Prova-ho i comparteix els teus pensaments o fes qualsevol pregunta a la secció de comentaris.