GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux:logwatch(8) ist zu laut. Wie kann ich den Geräuschpegel kontrollieren?

Lösung 1:

Insgesamt fehlt es der verfügbaren Dokumentation zu Logwatch an ausreichender Erklärung und sie ist oft viel zu vage. Ich habe einige nützliche Beispiele zusammengestellt und das Logwatch-Rauschen um über 95 % reduziert.

Hier ist, was ich gefunden habe.

Denken Sie daran, dass Sie einige Logwatch-Dokumentationen unter /usr/share/doc/logwatch-*/HOWTO-Customize-LogWatch finden können , und es enthält einige nützliche Beispiele.

  1. Unter RHEL/CentOS/SL befindet sich die Standard-Logwatch-Konfiguration unter /usr/share/logwatch/default.conf/logwatch.conf

    Diese Einstellungen können außer Kraft gesetzt werden, indem Sie Ihre lokale Konfiguration unter /etc/logwatch/conf/logwatch.conf platzieren . Fügen Sie Folgendes in diese Datei ein, um Logwatch anzuweisen, Dienste wie 'httpd' und die täglichen Überprüfungen der Festplattennutzung vollständig zu ignorieren:

    # Don't spam about the following Services
    Service = "-http"
    Service = "-zz-disk_space"
    
  2. Manchmal möchte ich Logwatch für einen bestimmten Dienst nicht vollständig deaktivieren, ich möchte nur die Ergebnisse feinabstimmen, um sie weniger laut zu machen. /usr/share/logwatch/default.conf/services/*.conf enthält die Standardkonfiguration für die Dienste. Diese Parameter können überschrieben werden, indem Sie Ihre lokale Konfiguration unter /etc/logwatch/conf/services/$SERVICE.conf platzieren . Leider ist die Fähigkeit von logwatch hier begrenzt, und viele der ausführbaren Dateien von logwatch sind voll von undokumentiertem Perl. Sie haben die Wahl, die ausführbare Datei durch etwas anderes zu ersetzen oder zu versuchen, einige Einstellungen mit /etc/logwatch/conf/services zu überschreiben .

    Zum Beispiel habe ich einen Sicherheitsscanner, der Scans im gesamten Netzwerk durchführt. Während der Tests generiert der Sicherheitsscanner viele Fehlermeldungen in den Anwendungsprotokollen. Ich möchte, dass Logwatch Fehler meiner Sicherheitsscanner ignoriert, mich aber trotzdem über Angriffe von anderen Hosts benachrichtigt. Dies wird ausführlicher unter Logwatch behandelt:Bestimmte IPs für SSH- und PAM-Prüfungen ignorieren?. Dazu platziere ich folgendes unter /etc/logwatch/conf/services/sshd.conf :

    # Ignore these hosts
    *Remove = 192.168.100.1
    *Remove = X.Y.123.123
    # Ignore these usernames
    *Remove = testuser
    # Ignore other noise. Note that we need to escape the ()
    *Remove = "pam_succeed_if\(sshd:auth\): error retrieving information about user netscan.*
    

    "

  3. logwatch ermöglicht es Ihnen auch, die Ausgabe der logwatch-E-Mails zu entfernen, indem Sie reguläre Ausdrücke in /etc/logwatch/conf/ignore.conf platzieren . HOWTO-Customize-LogWatch sagt:

    ignore.conf:Diese Datei spezifiziert reguläre Ausdrücke, die, wenn sie mit der Ausgabe von logwatch übereinstimmen, die übereinstimmende Zeile unterdrücken, unabhängig davon, welcher Dienst ausgeführt wird.

    Allerdings hatte ich damit wenig Glück. Meine Anforderungen erfordern eine bedingte Anweisung, die so etwas wie „Wenn es Sicherheitswarnungen aufgrund meines Sicherheitsscanners gibt, dann drucke die Ausgabe nicht. Aber wenn es Sicherheitswarnungen von meinem Sicherheitsscanner gibt und von einigen Bösewichten, dann drucken Sie die nützlichen Teile aus -- Die Kopfzeile, die sagt "Fehlgeschlagene Anmeldungen von:", die IPs der bösen Hosts, aber nicht die IPs von Scannern.'

  4. Nippen Sie es an der Quelle (wie von @user48838 vorgeschlagen). Diese Meldungen werden von einer Anwendung generiert, und Logwatch gibt Ihnen die Ergebnisse dann gerne weiter. In diesen Fällen können Sie die Anwendung so ändern, dass sie weniger protokolliert.

    Dies ist nicht immer wünschenswert, da Sie manchmal möchten, dass die vollständigen Protokolle irgendwohin gesendet werden (an einen zentralen Syslog-Server, zentralen IDS-Server, Splunk, Nagios usw.), aber Sie möchten nicht, dass Logwatch Sie darüber per E-Mail informiert jeden Server, jeden Tag.

Lösung 2:

Ja - logwatch ist oft zu laut. Sie haben bereits das vollständige Deaktivieren von Überprüfungen erwähnt.

Wenn Sie das nicht möchten, müssen Sie verhindern, dass bestimmte Ereignisse erscheinen. Zum Beispiel - es ist nicht interessant, wenn sich Nagios über ssh mit einem DMZ-System verbindet. Aber es ist interessant, wenn es andere Anmeldungen über ssh gibt.

Wir verwenden rsyslog anstelle von ksyslogd (installieren Sie zuerst rsyslog, entfernen Sie dann ksyslogd). Mit rsyslog können Sie feinabstimmen, was in die Protokolle geht und was nicht (z. Auf diese Weise wird logwatch nur nützliche Informationen melden.

Ein anderer Fall könnte xinetd sein - ich möchte nicht über erfolgreiche Verbindungen informiert werden - dies kann in xinetd selbst konfiguriert werden - ohne den Logwatch-Check für xinetd zu deaktivieren.

Lösung 3:

Als interessanter Punkt habe ich Option 2 aus der Antwort von Stefan Lasiewski befolgt, aber für meine Zwecke wollte ich nur bestimmte Zeilen einbeziehen, anstatt all das Rauschen auszuschließen, das ich nicht wollte.

Ich habe vsftpd konfiguriert, also habe ich /etc/logwatch/conf/services/vsftpd.conf erstellt und statt so etwas wie *Remove = testuser zu verwenden wodurch Zeilen entfernt werden, die den Text testuser enthalten Ich habe die Zeile *OnlyContains = "testuser" verwendet die nur Zeilen zurückgibt, die diesen Text enthalten.

Diese 2 Skripte funktionieren sehr einfach, indem sie grep verwenden und grep -v .

Der Unterschied besteht darin, dass Sie *Remove verwenden können beliebig oft, aber mit *OnlyContains Sie müssen es einmal verwenden, wenn Sie etwas oder etwas anderes oder etwas anderes wollen. Für mehrere Werte machen Sie also *OnlyContains = "testuser|testuser2|testuser3"


Linux
  1. Wie Linux auf den Mainframe kam

  2. Wie können Sie den Chipsatz eines USB-Geräts unter Linux identifizieren?

  3. Wie kann ich unter Linux den Inhalt einer Datei als Parameter an eine ausführbare Datei übergeben?

  4. Wie kann ich die Größe von Dateien und Verzeichnissen in Linux sehen?

  5. Wie finde ich die Header-Dateien der Programmiersprache C unter Linux?

Wie kann ich den Tastaturstatus unter Linux abrufen?

Wie würde ich die Ausgabe der Leistung in USB-Anschlüssen in Linux steuern?

Wie kann ich die Anzahl der Benutzer online in Linux finden?

Wie kann ich die Anzahl der Ordner in einem Laufwerk unter Linux zählen?

Wie funktioniert eine Linux-GUI auf der untersten Ebene?

Wie kann ich die Ausgabe einer Shell-Anwendung in Linux ausblenden?