Zum Inhalt springen

Logwatch: Unterschied zwischen den Versionen

Aus Foxwiki
Die Seite wurde neu angelegt: „Logwatch ist ein in Perl geschriebenes Tool zur Analyse von Logdateien. Es soll Systemadministratoren helfen, die Übersicht über alle Vorgänge auf einem Ser…“
 
K Textersetzung - „–“ durch „-“
 
(49 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Logwatch ist ein in Perl geschriebenes Tool zur Analyse von Logdateien. Es soll Systemadministratoren helfen, die Übersicht über alle Vorgänge auf einem Serversystem zu behalten. 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.
'''Logwatch''' - Analyse von Logdateien


Zusätzlich zu den systemeigenen Logs können ohne weitere Konfiguration u.a. folgende Dienste überwacht werden:
== Beschreibung ==
; Wekkzeug für Systemadministratoren


    Firewall: iptables, fail2ban
; Ü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.


    DNS-Server: BIND
; Zusätzlich zu den systemeigenen Logs können ohne weitere Konfiguration u.a. folgende Dienste überwacht werden
<div style="column-count:2">
* 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
</div>


    DHCP-Server: ISC-DHCPD
== Vorbereitung ==
; 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.


    SSH und OpenVPN
== Installation ==
# '''apt install logwatch'''
* Die vordefinierte Einstellung ist ein zeitlich geplanter Start durch einen Cronjob.
* Mehr dazu findet sich unter Automatisierung.
* Möchte man Logwatch lieber per Hand im Terminal oder aus einem Shell-Skript starten, geschieht das mit dem Befehl logwatch.


    Apache
* 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.


    Mailserver: Postfix/Sendmail/Exim/qmail/Dovecot/Courier
== Startparameter ==
{| class="wikitable options"
|-
! 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)
|}


    SpamAssassin / Amavis-Spam-Virenfilter
; Weitere Parameter
* logwatch --help
* man logwatch


    FTP-Server: PureFTPd / ProFTPD / vsftpd
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.


    ClamAV
== Beispiele ==
Einen Kurzbericht für den aktuellen Tag ausgeben:
logwatch --detail low --range today


    Samba
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


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


    Cron
== Konfiguration ==
 
=== Automatisierung (Cron) ===
    SASL
* 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.
Eine Alternative zu Logwatch ist das Programm logcheck (siehe auch Logs... 🇩🇪, Blogbeitrag 04/2012).
* Das Skript kann auch nach /etc/cron.weekly, /etc/cron.monthly oder - weniger sinnvoll - nach /etc/cron.hourly verschoben werden.
Vorbereitung
* 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.
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
 
Folgendes Paket muss installiert [1] werden:
 
    logwatch
 
Paketliste zum Kopieren:
 
sudo apt-get install logwatch
 
Oder mit apturl installieren, Link: apt://logwatch
Start
 
Die vordefinierte Einstellung ist ein zeitlich geplanter Start durch einen Cronjob. Mehr dazu findet sich unter Automatisierung. Möchte man Logwatch lieber per Hand im Terminal [2] [3] 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.
Startparameter
 
Startparameter
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).
 
Weitere Parameter sind der Hilfe von Logwatch (logwatch --help) oder der Manpage zu entnehmen: 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:
Dieser sollte nach folgendem Schema aufgebaut sein:


*     *     *     *     * /usr/sbin/logwatch <parameter>
*   *   *   *   * /usr/sbin/logwatch <parameter>
|     |     |     |     |
|   |   |   |   |
|     |     |     |     +----- Wochentag (1 - 7)
|   |   |   |   +----- Wochentag (1 - 7)
|     |     |     +------- Monat (1 - 12)
|   |   |   +------- Monat (1 - 12)
|     |     +--------- Tag (1 - 31)
|   |   +--------- Tag (1 - 31)
|     +----------- Stunde (0 - 23)
|   +----------- Stunde (0 - 23)
+------------- Minute (0 - 59)
+------------- 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
Angenommen, Logwatch soll einen Bericht mit den folgenden Parametern generieren: werktags; 2:00 Uhr; nicht detailliert; reiner Text; gestern; per Mail; nobody@ubuntuusers.de
Zeile 97: Zeile 97:
Der entsprechende Crontab-Eintrag würde dann wie folgt aussehen:
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
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:
Der Inhalt der durch diesen Eintrag versandten E-Mail sähe wie folgt aus:
vergrößern
  ################### Logwatch 7.3.6 (05/19/07) ####################
 
    Processing Initiated: Tue Apr 3 01:55:24 2012
  ################### Logwatch 7.3.6 (05/19/07) ####################  
    Date Range Processed: yesterday
        Processing Initiated: Tue Apr 3 01:55:24 2012
              ( 2012-Apr-02 )
        Date Range Processed: yesterday
              Period is day.
                              ( 2012-Apr-02 )
    Detail Level of Output: 0
                              Period is day.
    Type of Output/Format: stdout / text
        Detail Level of Output: 0
    Logfiles for Host: itchy
        Type of Output/Format: stdout / text
##################################################################
        Logfiles for Host: itchy
  ##################################################################  
--------------------- dpkg status changes Begin ------------------------
   
   
--------------------- dpkg status changes Begin ------------------------
  Installed:
  Installed:
    logwatch 7.3.6.cvs20090906-1ubuntu5
  logwatch 7.3.6.cvs20090906-1ubuntu5
    postfix 2.8.5-2~build1
  postfix 2.8.5-2~build1
---------------------- dpkg status changes End -------------------------
   
   
---------------------- dpkg status changes End -------------------------
   
   
  --------------------- httpd Begin ------------------------  
  --------------------- 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 -------------------------
--------------------- Kernel Begin ------------------------
WARNING: Kernel Errors Present
  [  18.959797] EXT4-fs (sdb1): re-mounted. Opts: errors=remount-ro ...: 1 Time(s)
   
   
  ---------------------- httpd End -------------------------  
  ---------------------- Kernel 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 ------------------------
 
   
   
--------------------- 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
Zeile 193: Zeile 191:
  /usr/bin/vlc - 1 Times.
  /usr/bin/vlc - 1 Times.
   
   
  ==============================================================================
  ===============================================================================
   
   
  simon => root
  simon => root
Zeile 203: Zeile 201:
  /usr/bin/find - 1 Times.
  /usr/bin/find - 1 Times.
   
   
  ---------------------- Sudo (secure-log) End -------------------------  
  ---------------------- 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 Begin ------------------------
  ---------------------- Disk Space End -------------------------
 
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 #########################
   
   
###################### Logwatch End #########################


Eigene Dienste
=== Eigene Dienste ===
 
Das Hinzufügen eigener Dienste zu Logwatch erfordert den Umgang mit der Skriptsprache Perl
Das Hinzufügen eigener Dienste zu Logwatch erfordert den Umgang mit der Skriptsprache Perl [7]. 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.
* 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.
Logwatch ist auf mehrere Konfigurationsverzeichnisse aufgeteilt. Nachfolgend wird deren Funktion erläutert:
 
Verzeichnisse
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.


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


    Projektseite 🇬🇧
{|class="wikitable options"
! 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.
<noinclude>


    Logdateien
== Anhang ==
=== Siehe auch ===
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}


    Serverdienste Übersichtsseite
=== Dokumentation ===
=== Links ===
==== Projekt ====
==== Weblinks ====
[[Kategorie:Linux/Logging]]
</noinclude>

Aktuelle Version vom 11. Mai 2025, 20:47 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

Vorbereitung

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

# apt install logwatch
  • Die vordefinierte Einstellung ist ein zeitlich geplanter Start durch einen Cronjob.
  • Mehr dazu findet sich unter Automatisierung.
  • 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.

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.


Anhang

Siehe auch

Dokumentation

Links

Projekt

Weblinks