Website-Suche

Swatchdog – Einfacher Protokolldatei-Watcher in Echtzeit unter Linux


Swatchdog (der „Simple WATCH DOG“) ist ein einfaches Perl-Skript zur Überwachung aktiver Protokolldateien auf Unix-ähnlichen Systemen wie Linux. Es überwacht Ihre Protokolle basierend auf regulären Ausdrücken, die Sie in einer Konfigurationsdatei definieren können. Sie können es über die Befehlszeile oder im Hintergrund ausführen, getrennt von jedem Terminal, indem Sie die Option „Daemon-Modus“ verwenden.

Beachten Sie, dass das Programm ursprünglich swatch (der „Simple Watcher“) hieß, aber ein Antrag des alten Schweizer Uhrenherstellers auf Namensänderung dazu führte, dass der Entwickler seinen Namen in < änderteSwatchdog.

Lesen Sie auch: 4 gute Open-Source-Tools zur Protokollüberwachung und -verwaltung für Linux

Wichtig ist, dass swatchdog aus einem Skript zum Überwachen von Protokollen hervorgegangen ist, die von der Syslog-Funktion von Unix erstellt wurden, und dass es nahezu jede Art von Protokollen überwachen kann.

So installieren Sie Swatch unter Linux

Das Paket swatchdog kann in den offiziellen Repositories der Mainstream-Linux-Distributionen als Paket „swatch“ über einen Paketmanager installiert werden (siehe Abbildung).


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

Um die neueste Version von swatchdog zu installieren, müssen Sie sie mithilfe der folgenden Befehle in einer beliebigen Linux-Distribution aus dem Quellcode kompilieren.


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

Sobald Sie das swatch installiert haben, müssen Sie seine Konfigurationsdatei erstellen (Standardspeicherort ist /home/$USER/.swatchdogrc oder .swatchrc). ), um zu bestimmen, nach welchen Arten von Ausdrucksmustern gesucht werden soll und welche Art von Aktion(en) ergriffen werden sollten, wenn ein Muster übereinstimmt.


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

Fügen Sie Ihren regulären Ausdruck in diese Datei ein und jede Zeile sollte ein Schlüsselwort und einen Wert (manchmal optional) enthalten, getrennt durch ein Leerzeichen oder ein Gleichheitszeichen (=). Sie müssen ein Muster und eine oder mehrere Aktionen angeben, die ausgeführt werden sollen, wenn ein Muster übereinstimmt.

Wir verwenden eine einfache Konfigurationsdatei. Weitere Optionen finden Sie beispielsweise in der Manpage von swatchdog.

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

Hier ist unser regulärer Ausdruck eine Literalzeichenfolge – „sudo“, was bedeutet, dass die Zeichenfolge sudo jedes Mal, wenn sie in der Protokolldatei auftaucht, in roter Schrift auf dem Terminal ausgegeben wird mail gibt die Aktion an, die ausgeführt werden soll, nämlich das Echo des übereinstimmenden Musters auf dem Terminal und das Senden einer E-Mail an die angegebene Adresse.

Nachdem Sie es konfiguriert haben, liest swatchdog standardmäßig die Protokolldatei /var/log/syslog. Wenn diese Datei nicht vorhanden ist, liest es /var/log/messages.


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

Sie können eine andere Konfigurationsdatei mit dem Flag -c angeben, wie im folgenden Beispiel gezeigt.

Erstellen Sie zunächst ein Swatch-Konfigurationsverzeichnis und eine Datei.

mkdir swatch
touch swatch/secure.conf

Fügen Sie als Nächstes die folgende Konfiguration in die Datei ein, um fehlgeschlagene Anmeldeversuche, fehlgeschlagene SSH-Anmeldeversuche und erfolgreiche SSH-Anmeldungen aus der Protokolldatei /var/log/secure zu überwachen.

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"

Führen Sie nun Swatch aus, indem Sie die Konfigurationsdatei mit dem Flag -c und die Protokolldatei mit dem Flag -t angeben, wie gezeigt.

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

Um es im Hintergrund auszuführen, verwenden Sie das Flag --daemon; In diesem Modus ist es von jedem Terminal getrennt.

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

Um nun die Swatch-Konfiguration zu testen, versuchen Sie, sich von einem anderen Terminal aus beim Server anzumelden. Sie sehen die folgende Ausgabe auf dem Terminal, auf dem Swatchdog ausgeführt wird.

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

Sie können auch mehrere Swatch-Prozesse ausführen, um verschiedene Protokolldateien zu überwachen.

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

Weitere Informationen finden Sie auf der Manpage von swatchdog.

man swatchdog

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

Im Folgenden finden Sie einige zusätzliche Leitfäden zur Protokollüberwachung, die für Sie nützlich sein werden:

  1. 4 Möglichkeiten, Protokolldateien in Echtzeit anzusehen oder zu überwachen
  2. So erstellen Sie einen zentralen Protokollserver mit Rsyslog
  3. Überwachen Sie Serverprotokolle in Echtzeit mit dem Tool „Log.io“.
  4. lnav – Überwachen und analysieren Sie Apache-Protokolle von einem Linux-Terminal aus
  5. ngxtop – Überwachen Sie Nginx-Protokolldateien in Echtzeit unter Linux

Swatchdog ist ein einfaches Tool zur aktiven Protokolldateiüberwachung für Unix-ähnliche Systeme wie Linux. Probieren Sie es aus und teilen Sie Ihre Gedanken mit oder stellen Sie Fragen im Kommentarbereich.