Logwatch: Unterschied zwischen den Versionen
| Zeile 105: | Zeile 105: | ||
= TMP = | = TMP = | ||
== Startparameter == | == Startparameter == | ||
{| class="wikitable options" | {| class="wikitable options" | ||
Version vom 3. November 2025, 21:49 Uhr
Logwatch - Analyse von Logdateien
Beschreibung
Wekkzeug für Systemadministratoren
- Übersicht über Vorgänge auf einem Serversystem
- Logwatch durchsucht die Logdateien des Systems und generiert eine Kurzfassung daraus, deren Gestaltung individuell konfiguriert werden kann.
- Diese kann dann entweder als Datei weiterverarbeitet oder zum Versenden an einen Mailserver weitergereicht werden.
- Zusätzlich zu den systemeigenen Logs können ohne weitere Konfiguration u.a. folgende Dienste überwacht werden
- Firewall/ iptables, fail2ban
- DNS-Server: BIND
- DHCP-Server: ISC-DHCPD
- SSH und OpenVPN
- Apache
- Mailserver: Postfix/Sendmail/Exim/qmail/Dovecot/Courier
- SpamAssassin / Amavis-Spam-Virenfilter
- FTP-Server: PureFTPd / ProFTPD / vsftpd
- ClamAV
- Samba
- RAID
- Cron
- SASL
Installation
sudo apt install logwatch
Die vordefinierte Einstellung ist ein zeitlich geplanter Start durch einen Cronjob
- Möchte man Logwatch lieber per Hand im Terminal oder aus einem Shell-Skript starten, geschieht das mit dem Befehl logwatch.
- Im Terminal wird nun ein Bericht ausgegeben, der zunächst die Grundinformationen über das Geschehen des letzten Tages enthält.
- Die Ausgabe kann nun mit den Parametern aus der nachfolgenden Tabelle den eigenen Wünschen angepasst werden.
- Es kann dabei die Ausgabemethode, das Ziel der Ausgabe, die Detailtiefe und der Zeitraum des Berichts angegeben werden.
Aufruf
Optionen
| Unix | GNU | Parameter | Beschreibung |
|---|---|---|---|
Parameter
Umgebungsvariablen
Exit-Status
| Wert | Beschreibung |
|---|---|
| 0 | Erfolg |
| >0 | Fehler |
Anwendung
Problembehebung
Konfiguration
Dateien
| Datei | Beschreibung |
|---|---|
Anhang
Siehe auch
Dokumentation
Links
Projekt
Weblinks
TMP
Startparameter
| Parameter | Beschreibung |
|---|---|
| mail|file | Bestimmt die Ausgabemethode. (Default: stdout) |
| html | Bestimmt das Ausgabeformat. (Default: text) |
| --filename X | Bestimmt die Ausgabedatei X. |
| med|high | Bestimmt die Detailtiefe des Berichts. (Default: low) |
| --mailto X | Versendet den generierten Bericht per Mail an die Adresse X. (setzt einen installierten MTA voraus) |
| --range today | Bestimmt den Zeitraum, über welchen berichtet werden soll (siehe logwatch --range help) |
- Weitere Parameter
- logwatch --help
- man logwatch
Erfahrene Benutzer sollten auch den --service-Parameter beachten.
- Mit diesem ist es möglich, den Bericht auf nur einen Dienst oder eine Dienstgruppe zu beschränken.
- Die Namen der Dienste entsprechen den Namen des jeweiligen Konfigurationsskripts in /usr/share/logwatch/default.conf/services.
Beispiele
Einen Kurzbericht für den aktuellen Tag ausgeben:
logwatch --detail low --range today
Einen detaillierten Bericht über den gestrigen Tag in einem Ordner als HTML-Datei mit Datum als Name ablegen:
logwatch --detail high --range yesterday --format html --filename ~/logwatch/$(date +%F).html
Einen Kurzbericht über die letzten 30 Tage generieren und versenden:
logwatch --detail low --range 'between 30 days ago and yesterday' --mailto nobody@ubuntuusers.de
Konfiguration
Automatisierung (Cron)
- In der Standardkonfiguration wird ein Skript namens /etc/cron.daily/00logwatch verwendet.
- Dieses wird jeden Tag einmal gestartet und führt dann Logwatch mit den dort festgelegten Parametern aus.
- Das Skript kann auch nach /etc/cron.weekly, /etc/cron.monthly oder - weniger sinnvoll - nach /etc/cron.hourly verschoben werden.
- Möchte man Logwatch zu einem Zeitpunkt ausführen, der keinem der oben genannten entspricht, muss statt anacron die normale, systemweite Crontab verwendet werden.
- Dazu muss das alte Logwatch-Skript gelöscht werden und ein neuer Eintrag in der Datei /etc/crontab hinzugefügt werden.
Dieser sollte nach folgendem Schema aufgebaut sein:
* * * * * /usr/sbin/logwatch <parameter> | | | | | | | | | +----- Wochentag (1 - 7) | | | +------- Monat (1 - 12) | | +--------- Tag (1 - 31) | +----------- Stunde (0 - 23) +------------- Minute (0 - 59)
Angenommen, Logwatch soll einen Bericht mit den folgenden Parametern generieren: werktags; 2:00 Uhr; nicht detailliert; reiner Text; gestern; per Mail; nobody@ubuntuusers.de
Der entsprechende Crontab-Eintrag würde dann wie folgt aussehen:
0 2 * * 1,2,3,4,5 /usr/sbin/logwatch --detail low --format text --range yesterday --mailto nobody@ubuntuusers.de > /dev/null 2>&1
Der Inhalt der durch diesen Eintrag versandten E-Mail sähe wie folgt aus:
################### Logwatch 7.3.6 (05/19/07) ####################
Processing Initiated: Tue Apr 3 01:55:24 2012
Date Range Processed: yesterday
( 2012-Apr-02 )
Period is day.
Detail Level of Output: 0
Type of Output/Format: stdout / text
Logfiles for Host: itchy
##################################################################
--------------------- dpkg status changes Begin ------------------------
Installed:
logwatch 7.3.6.cvs20090906-1ubuntu5
postfix 2.8.5-2~build1
---------------------- dpkg status changes End -------------------------
--------------------- httpd Begin ------------------------
Requests with error response codes
404 Not Found
/robots.txt: 2 Time(s)
408 Request Timeout
null: 1 Time(s)
---------------------- httpd End -------------------------
--------------------- Kernel Begin ------------------------
WARNING: Kernel Errors Present
[ 18.959797] EXT4-fs (sdb1): re-mounted. Opts: errors=remount-ro ...: 1 Time(s)
---------------------- Kernel End -------------------------
--------------------- pam_unix Begin ------------------------
su:
Sessions Opened:
root -> nxpgsql: 7 Time(s)
root -> daemon: 1 Time(s)
root -> postgres: 1 Time(s)
sudo:
Authentication Failures:
simon(0) -> simon: 1 Time(s)
---------------------- pam_unix End -------------------------
--------------------- Connections (secure-log) Begin ------------------------
New Users:
postfix (119)
New Groups:
postfix (131)
postdrop (132)
Changed password expiry for users:
postfix : 1 Time(s)
---------------------- Connections (secure-log) End -------------------------
--------------------- SSHD Begin ------------------------
Users logging in through sshd:
simon:
192.168.100.185 (iPad-Simon.home.lan): 4 times
Received disconnect:
11: Normal Shutdown. Thank you! : 3 Time(s)
---------------------- SSHD End -------------------------
--------------------- Sudo (secure-log) Begin ------------------------
===============================================================================
root => simon
-------------
/usr/bin/vlc - 1 Times.
===============================================================================
simon => root
-------------
/bin/chown - 1 Times.
/bin/cp - 2 Times.
/bin/zcat - 1 Times.
/usr/bin/apt-get - 1 Times.
/usr/bin/find - 1 Times.
---------------------- Sudo (secure-log) End -------------------------
--------------------- Disk Space Begin ------------------------
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 221G 9.0G 200G 5% /
/dev/sda2 75G 58G 18G 78% /home
/dev/md0 917G 217G 654G 25% /home/simon/Archiv
---------------------- Disk Space End -------------------------
###################### Logwatch End #########################
Eigene Dienste
Das Hinzufügen eigener Dienste zu Logwatch erfordert den Umgang mit der Skriptsprache Perl
- Um ein solches Modul entwickeln zu können, muss man zuerst die Verzeichnisstruktur von Logwatch verstehen.
- Diese mag auf den ersten Blick ein wenig verwirrend wirken, ergibt aber Sinn.
Konfigurationsverzeichnisse
Die Logwatch-Konfiguration ist auf mehrere Verzeichnisse aufgeteilt
| Pfad | Beschreibung |
|---|---|
| /etc/logwatch/ | Dieses Verzeichnis enthält die benutzerdefinierte Konfiguration. Dieses Verzeichnis enthält die gleiche Struktur wie /usr/share/logwatch |
| /usr/share/logwatch/ | Hier befindet sich die Standardkonfiguration. Diese sollte nicht editiert werden |
| /usr/share/logwatch/default.conf/ | Konfiguration der von Haus aus in Logwatch integrierten Dienste |
| /usr/share/logwatch/dist.conf/ | Konfiguration der speziell für Ubuntu hinzugefügten Dienste |
| /usr/share/logwatch/scripts/ | Perl-Skripte zum Verarbeiten der Logfiles |
- logfiles und services
- In den *.conf-Verzeichnissen befinden sich noch je zwei weitere Verzeichnisse namens logfiles und services.
- Im ersten wird das Logfile definiert, im letzteren die Dienste.
- Möchte man nun einen eigenen Dienst konfigurieren, erstellt man - falls nicht vorhanden - diese Verzeichnisstruktur unter /etc/logwatch/ und legt dort das Perl-Skript und die Konfigurationsdateien ab.
- Es empfiehlt sich, einen bereits existierenden Dienst als Vorlage zu nutzen.