Ricerca nel sito web

Swatchdog: semplice osservatore di file di registro in tempo reale in Linux


Swatchdog (il “Semplice WATCH DOG”) è un semplice script Perl per monitorare i file di registro attivi su sistemi simili a Unix come Linux. Controlla i tuoi log in base alle espressioni regolari che puoi definire in un file di configurazione. Puoi eseguirlo dalla riga di comando o in background, scollegato da qualsiasi terminale utilizzando l'opzione modalità demone.

Tieni presente che il programma era originariamente chiamato swatch (il “Simple Watcher ”) ma una richiesta da parte della vecchia azienda svizzera di orologi per un cambio di nome ha visto lo sviluppatore cambiare il suo nome in campione.

Leggi anche: 4 buoni strumenti di monitoraggio e gestione dei log open source per Linux

È importante sottolineare che swatchdog è nato da uno script per osservare i log prodotti dalla funzione syslog di Unix e può monitorare praticamente qualsiasi tipo di log.

Come installare Swatch su Linux

Il pacchetto swatchdog è disponibile per l'installazione dai repository ufficiali delle principali distribuzioni Linux come pacchetto “swatch” tramite un gestore di pacchetti come mostrato.


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 installare la versione più recente di swatchdog, devi compilarlo dal sorgente utilizzando i seguenti comandi in qualsiasi distribuzione Linux.


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

Una volta installato swatch, devi creare il suo file di configurazione (la posizione predefinita è /home/$USER/.swatchdogrc o .swatchrc ), per determinare quali tipi di modelli di espressione cercare e che tipo di azioni dovrebbero essere intraprese quando viene trovata una corrispondenza con un modello.


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

Aggiungi la tua espressione regolare in questo file e ogni riga dovrebbe contenere una parola chiave e un valore (a volte facoltativo), separati da uno spazio o da un segno (=) uguale. È necessario specificare un modello e le azioni da intraprendere quando un modello viene abbinato.

Utilizzeremo un semplice file di configurazione; puoi trovare più opzioni nella pagina man di swatchdog, ad esempio.

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

Qui, la nostra espressione regolare è una stringa letterale: “sudo”, significa che ogni volta che la stringa sudo appare nel file di registro, verrà stampata sul terminale in testo rosso e mail specifica l'azione da intraprendere, ovvero ripetere il modello corrispondente sul terminale e inviare un'e-mail all'indirizzo specificato, in modo ricettivo.

Dopo averlo configurato, swatchdog legge il file di registro /var/log/syslog per impostazione predefinita, se questo file non è presente, legge /var/log/messages.


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

Puoi specificare un file di configurazione diverso utilizzando il flag -c come mostrato nell'esempio seguente.

Per prima cosa crea una directory di configurazione dei campioni e un file.

mkdir swatch
touch swatch/secure.conf

Successivamente, aggiungi la seguente configurazione nel file per monitorare i tentativi di accesso non riusciti, i tentativi di accesso SSH non riusciti e gli accessi SSH riusciti dal file di registro /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"

Ora esegui Swatch specificando il file di configurazione utilizzando -c e il file di registro utilizzando il flag -t come mostrato.

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

Per eseguirlo in background, usa il flag --daemon; in questa modalità è scollegato da qualsiasi terminale.

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

Ora per testare la configurazione di Swatch, prova ad accedere al server da un terminale diverso, vedrai il seguente output stampato sul terminale su cui è in esecuzione 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)

È inoltre possibile eseguire più processi di campionamento per monitorare vari file di registro.

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 ulteriori informazioni, consulta la pagina man di swatchdog.

man swatchdog

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

Di seguito sono riportate alcune guide aggiuntive al monitoraggio dei log che troverai utili:

  1. 4 modi per guardare o monitorare i file di registro in tempo reale
  2. Come creare un server di registro centralizzato con Rsyslog
  3. Monitora i log del server in tempo reale con lo strumento "Log.io".
  4. lnav: guarda e analizza i registri Apache da un terminale Linux
  5. ngxtop: monitora i file di registro Nginx in tempo reale in Linux

Swatchdog è un semplice strumento di monitoraggio attivo dei file di registro per sistemi simili a Unix come Linux. Provalo e condividi i tuoi pensieri o fai domande nella sezione commenti.