Zum Inhalt springen

Logwatch: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „Firewall:“ durch „Firewall/“
 
(61 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''Logwatch''' ist ein Tool zur Analyse von Logdateien.
'''Logwatch''' - Analyse von Logdateien


= Allgemeines =
== Beschreibung ==
* Es soll Systemadministratoren helfen, die Übersicht über alle Vorgänge auf einem Serversystem zu behalten.
; Übersicht über Vorgänge auf einem System
* Logwatch durchsucht die Logdateien des Systems und generiert eine Kurzfassung daraus, deren Gestaltung individuell konfiguriert werden kann.
* durchsucht Logdateien
* Diese kann dann entweder als Datei weiterverarbeitet oder zum Versenden an einen Mailserver weitergereicht werden.
* generiert eine Kurzfassung


Zusätzlich zu den systemeigenen Logs können ohne weitere Konfiguration u.a. folgende Dienste überwacht werden:
; Berichte
* Anpassbar
* Weiterverwendbar
** Datei
** Email
 
; Dienste
<div style="column-count:2">
* systemeigenen Logs  
* Firewall/ iptables, fail2ban
* Firewall/ iptables, fail2ban
* DNS-Server: BIND
* DNS-Server: BIND
Zeile 13: Zeile 21:
* Apache
* Apache
* Mailserver: Postfix/Sendmail/Exim/qmail/Dovecot/Courier
* Mailserver: Postfix/Sendmail/Exim/qmail/Dovecot/Courier
* SpamAssassin / Amavis-Spam-Virenfilter
* SpamAssassin/Amavis-Spam-Virenfilter
* FTP-Server: PureFTPd / ProFTPD / vsftpd
* FTP-Server: PureFTPd / ProFTPD / vsftpd
* ClamAV
* ClamAV
Zeile 20: Zeile 28:
* Cron
* Cron
* SASL
* SASL
</div>
== Vorbereitung ==
; Lokaler Mailserver
Falls die von Logwatch generierten Berichte per Mail versandt werden sollen, muss ein lokaler Mailserver vorhanden sein
* Für Benutzer, die Logwatch für ihren SOHO-Server verwenden wollen, muss ein Mailserver aufgesetzt werden, der die Nachrichten an einen Smarthost weiterleitet. Dies geschieht am einfachsten mit Postfix
== Installation ==
<syntaxhighlight lang="bash" highlight="1" line copy>
sudo apt install logwatch
</syntaxhighlight>


= Vorbereitung =
<syntaxhighlight lang="bash" highlight="1" line copy>
* Falls die von Logwatch generierten Berichte per Mail versandt werden sollen, muss ein lokaler Mailserver vorhanden sein.
sudo apt install postfix mailutils logwatch
* Für Benutzer, die Logwatch für ihren SOHO-Server verwenden wollen, muss ein Mailserver aufgesetzt werden, der die Nachrichten an einen Smarthost weiterleitet. Dies geschieht am einfachsten mit Postfix.
</syntaxhighlight>


= Installation =
; Cronjob
# 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


* Die vordefinierte Einstellung ist ein zeitlich geplanter Start durch einen Cronjob.
== Anwendung ==
* Mehr dazu findet sich unter Automatisierung.
; Kurzbericht für den aktuellen Tag
* Möchte man Logwatch lieber per Hand im Terminal oder aus einem Shell-Skript starten, geschieht das mit dem Befehl logwatch.
<syntaxhighlight lang="bash" highlight="1" line copy>
sudo logwatch --detail low --range today
</syntaxhighlight>


* Im Terminal wird nun ein Bericht ausgegeben, der zunächst die Grundinformationen über das Geschehen des letzten Tages enthält.
; Detaillierter für den gestrigen Tag
* Die Ausgabe kann nun mit den Parametern aus der nachfolgenden Tabelle den eigenen Wünschen angepasst werden.  
in einem Ordner als HTML-Datei mit Datum als Name ablegen
* Es kann dabei die Ausgabemethode, das Ziel der Ausgabe, die Detailtiefe und der Zeitraum des Berichts angegeben werden.
<syntaxhighlight lang="bash" highlight="1" line copy>
sudo logwatch --detail high --range yesterday --format html --filename ~/logwatch/$(date +%F).html
</syntaxhighlight>


= Startparameter =
; Kurzbericht für die letzten 30 Tage
Parameter Beschreibung
Generieren und versenden
--output stdout|mail|file Bestimmt die Ausgabemethode. (Default: stdout)
<syntaxhighlight lang="bash" highlight="1" line copy>
--format text|html Bestimmt das Ausgabeformat. (Default: text)
sudo logwatch --detail low --range 'between 30 days ago and yesterday' --mailto user@example.de
--filename X Bestimmt die Ausgabedatei X.
</syntaxhighlight>
--detail low|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 sind der Hilfe von Logwatch (logwatch --help) oder der Manpage zu entnehmen: logwatch.
== Aufruf ==
* Erfahrene Benutzer sollten auch den --service-Parameter beachten.
<syntaxhighlight lang="bash" highlight="1" line copy>
* Mit diesem ist es möglich, den Bericht auf nur einen Dienst oder eine Dienstgruppe zu beschränken.
</syntaxhighlight>
* Die Namen der Dienste entsprechen den Namen des jeweiligen Konfigurationsskripts in /usr/share/logwatch/default.conf/services.


= Beispiele =
=== Optionen ===
Einen Kurzbericht für den aktuellen Tag ausgeben:
{| class="wikitable sortable options gnu big"
logwatch --detail low --range today
|-
! Unix !! GNU !! Parameter !! Beschreibung
|-
| || || ||
|-
|}


Einen detaillierten Bericht über den gestrigen Tag in einem Ordner als HTML-Datei mit Datum als Name ablegen:
{| class="wikitable options big"
logwatch --detail high --range yesterday --format html --filename ~/logwatch/$(date +%F).html
|-
! Parameter !! Beschreibung
|-
| --output stdout|mail|file || Bestimmt die Ausgabemethode. (Default: stdout)
|-
| --format text|html || Bestimmt das Ausgabeformat. (Default: text)
|-
| --filename X || Bestimmt die Ausgabedatei X
|-
| --detail low|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)
|}


Einen Kurzbericht über die letzten 30 Tage generieren und versenden:
; Weitere Parameter
logwatch --detail low --range 'between 30 days ago and yesterday' --mailto nobody@ubuntuusers.de
* logwatch --help
* man logwatch


= Konfiguration =
Erfahrene Benutzer sollten auch den --service-Parameter beachten
== Automatisierung (Cron) ==
* Mit diesem ist es möglich, den Bericht auf nur einen Dienst oder eine Dienstgruppe zu beschränken
* In der Standardkonfiguration wird ein Skript namens /etc/cron.daily/00logwatch verwendet.
* Die Namen der Dienste entsprechen den Namen des jeweiligen Konfigurationsskripts in /usr/share/logwatch/default.conf/services
* 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:
=== Parameter ===
=== Umgebungsvariablen ===
=== Exit-Status ===
{| class="wikitable options col1center big"
|-
! Wert !! Beschreibung
|-
| 0 || Erfolg
|-
| >0 || Fehler
|}


  *     *     *     *     * /usr/sbin/logwatch <parameter>
== Konfiguration ==
  |     |     |     |     |
=== Automatisierung (Cron) ===
  |     |     |     |     +----- Wochentag (1 - 7)
In der Standardkonfiguration wird ein Skript namens /etc/cron.daily/00logwatch verwendet
  |     |     |     +------- Monat (1 - 12)
* Dieses wird jeden Tag einmal gestartet und führt dann Logwatch mit den dort festgelegten Parametern aus
  |     |     +--------- Tag (1 - 31)
* Das Skript kann auch nach /etc/cron.weekly, /etc/cron.monthly oder - weniger sinnvoll - nach /etc/cron.hourly verschoben werden
  |     +----------- Stunde (0 - 23)
* 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
<syntaxhighlight lang="bash" highlight="1" line copy>
  * * * * * /usr/sbin/logwatch <parameter>
  | | | | |
  | | | | +----- Wochentag (1 - 7)
  | | | +------- Monat (1 - 12)
  | | +--------- Tag (1 - 31)
  | +----------- Stunde (0 - 23)
  +------------- Minute (0 - 59)
  +------------- Minute (0 - 59)
</syntaxhighlight>


Angenommen, Logwatch soll einen Bericht mit den folgenden Parametern generieren: werktags; 2:00 Uhr; nicht detailliert; reiner Text; gestern; per Mail; nobody@ubuntuusers.de
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:
Der entsprechende Crontab-Eintrag würde dann wie folgt aussehen
<syntaxhighlight lang="bash" highlight="1" line copy>
0 2 * * 1,2,3,4,5 /usr/sbin/logwatch --detail low --format text --range yesterday --mailto nobody@ubuntuusers.de > /dev/null 2>&1
</syntaxhighlight>


  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
<syntaxhighlight lang="bash" highlight="1" line copy>
################### 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 ------------------------


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
  Requests with error response codes
    404 Not Found
404 Not Found
      /robots.txt: 2 Time(s)
/robots.txt: 2 Time(s)
   
 
    408 Request Timeout
  408 Request Timeout
      null: 1 Time(s)
null: 1 Time(s)
 
  ---------------------- httpd End -------------------------  
  ---------------------- httpd End -------------------------
 
 
  --------------------- Kernel Begin ------------------------  
  --------------------- Kernel Begin ------------------------
 
  WARNING: Kernel Errors Present
  WARNING: Kernel Errors Present
    [   18.959797] EXT4-fs (sdb1): re-mounted. Opts: errors=remount-ro ...: 1 Time(s)
[ 18.959797] EXT4-fs (sdb1): re-mounted. Opts: errors=remount-ro ...: 1 Time(s)
 
  ---------------------- Kernel End -------------------------  
  ---------------------- Kernel End -------------------------
 
 
  --------------------- pam_unix Begin ------------------------  
  --------------------- pam_unix Begin ------------------------
 
  su:
  su
    Sessions Opened:
Sessions Opened
      root -> nxpgsql: 7 Time(s)
root -> nxpgsql: 7 Time(s)
      root -> daemon: 1 Time(s)
root -> daemon: 1 Time(s)
      root -> postgres: 1 Time(s)
root -> postgres: 1 Time(s)
 
  sudo:
  sudo
    Authentication Failures:
Authentication Failures
      simon(0) -> simon: 1 Time(s)
simon(0) -> simon: 1 Time(s)
 
 
  ---------------------- pam_unix End -------------------------  
  ---------------------- pam_unix End -------------------------
 
 
  --------------------- Connections (secure-log) Begin ------------------------  
  --------------------- Connections (secure-log) Begin ------------------------
 
  New Users:
  New Users
    postfix (119)
postfix (119)
 
  New Groups:
  New Groups
    postfix (131)
postfix (131)
    postdrop (132)
postdrop (132)
 
  Changed password expiry for users:
  Changed password expiry for users
    postfix : 1 Time(s)
postfix : 1 Time(s)
 
  ---------------------- Connections (secure-log) End -------------------------  
  ---------------------- Connections (secure-log) End -------------------------
 
 
  --------------------- SSHD Begin ------------------------  
  --------------------- SSHD Begin ------------------------
 
  Users logging in through sshd:
  Users logging in through sshd
    simon:
simon
      192.168.100.185 (iPad-Simon.home.lan): 4 times
192.168.100.185 (iPad-Simon.home.lan): 4 times
 
 
  Received disconnect:
  Received disconnect
    11: Normal Shutdown. Thank you! : 3 Time(s)
11: Normal Shutdown. Thank you! : 3 Time(s)
 
  ---------------------- SSHD End -------------------------  
  ---------------------- SSHD End -------------------------
 
 
  --------------------- Sudo (secure-log) Begin ------------------------  
  --------------------- Sudo (secure-log) Begin ------------------------
 
  ==============================================================================
  ===============================================================================
 
  root => simon
  root => simon
  -------------
  -------------
  /usr/bin/vlc - 1 Times.
  /usr/bin/vlc - 1 Times
 
  ==============================================================================
  ===============================================================================
 
  simon => root
  simon => root
  -------------
  -------------
  /bin/chown - 1 Times.
  /bin/chown - 1 Times
  /bin/cp - 2 Times.
  /bin/cp - 2 Times
  /bin/zcat - 1 Times.
  /bin/zcat - 1 Times
  /usr/bin/apt-get - 1 Times.
  /usr/bin/apt-get - 1 Times
  /usr/bin/find - 1 Times.
  /usr/bin/find - 1 Times
 
  ---------------------- Sudo (secure-log) End -------------------------  
  ---------------------- Sudo (secure-log) End -------------------------
 
 
  --------------------- Disk Space Begin ------------------------  
  --------------------- Disk Space Begin ------------------------
 
  Filesystem           Size Used Avail Use% Mounted on
  Filesystem Size Used Avail Use% Mounted on
  /dev/sdb1             221G 9.0G 200G   5% /
  /dev/sdb1 221G 9.0G 200G 5% /
  /dev/sda2             75G   58G   18G 78% /home
  /dev/sda2 75G 58G 18G 78% /home
  /dev/md0             917G 217G 654G 25% /home/simon/Archiv
  /dev/md0 917G 217G 654G 25% /home/simon/Archiv
 
 
  ---------------------- Disk Space End -------------------------  
  ---------------------- Disk Space End -------------------------
 
  ###################### Logwatch End #########################
  ###################### Logwatch End #########################
</syntaxhighlight>
= Eigene Dienste =
* Das Hinzufügen eigener Dienste zu Logwatch erfordert den Umgang mit der Skriptsprache Perl.
* Um so ein 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 durchaus Sinn.


Logwatch ist auf mehrere Konfigurationsverzeichnisse aufgeteilt. Nachfolgend wird deren Funktion erläutert:
=== 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


== Verzeichnisse ==
=== Konfigurationsverzeichnisse ===
Pfad Beschreibung
Die Logwatch-Konfiguration ist auf mehrere Verzeichnisse aufgeteilt
/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.


* In den *.conf-Verzeichnissen befinden sich noch je zwei weitere Verzeichnisse namens logfiles und services.  
{|class="wikitable options big"
* Im ersten wird das Logfile definiert, im letzteren die Dienste.  
! Pfad !! Beschreibung
* 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.
| /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
|}


= Links =
; logfiles und services
== Interne Links ==
* In den *.conf-Verzeichnissen befinden sich noch je zwei weitere Verzeichnisse namens logfiles und services
TODO
* Im ersten wird das Logfile definiert, im letzteren die Dienste
== Weblinks ==
* 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
TODO
* Es empfiehlt sich, einen bereits existierenden Dienst als Vorlage zu nutzen
<noinclude>
 
 
<noinclude>
 
== Anhang ==
=== Siehe auch ===
<div style="column-count:2">
<categorytree hideroot=on mode="pages">{{BASEPAGENAME}}</categorytree>
</div>
----
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}
 
=== Dokumentation ===
<!--
; Man-Page
# [https://manpages.debian.org/stable/procps/pgrep.1.de.html prep(1)]
 
; Info-Pages
-->
 
=== Links ===
==== Projekt ====
==== Weblinks ====


[[Kategorie:Linux/Logging]]
[[Kategorie:Linux/Logging]]
</noinclude>

Aktuelle Version vom 29. Januar 2026, 10:18 Uhr

Logwatch - Analyse von Logdateien

Beschreibung

Übersicht über Vorgänge auf einem System
  • durchsucht Logdateien
  • generiert eine Kurzfassung
Berichte
  • Anpassbar
  • Weiterverwendbar
    • Datei
    • Email
Dienste
  • systemeigenen Logs
  • 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

Vorbereitung

Lokaler Mailserver

Falls die von Logwatch generierten Berichte per Mail versandt werden sollen, muss ein lokaler Mailserver vorhanden sein

  • Für Benutzer, die Logwatch für ihren SOHO-Server verwenden wollen, muss ein Mailserver aufgesetzt werden, der die Nachrichten an einen Smarthost weiterleitet. Dies geschieht am einfachsten mit Postfix

Installation

sudo apt install logwatch
sudo apt install postfix mailutils logwatch
Cronjob

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

Anwendung

Kurzbericht für den aktuellen Tag
sudo logwatch --detail low --range today
Detaillierter für den gestrigen Tag

in einem Ordner als HTML-Datei mit Datum als Name ablegen

sudo logwatch --detail high --range yesterday --format html --filename ~/logwatch/$(date +%F).html
Kurzbericht für die letzten 30 Tage

Generieren und versenden

sudo logwatch --detail low --range 'between 30 days ago and yesterday' --mailto user@example.de

Aufruf

Optionen

Unix GNU Parameter Beschreibung
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

Parameter

Umgebungsvariablen

Exit-Status

Wert Beschreibung
0 Erfolg
>0 Fehler

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



Anhang

Siehe auch


Dokumentation

Projekt