Sie können alle gesammelten Protokollereignisse auf dem VMware Aria Operations for Logs-Linux-Agenten basierend auf den jeweiligen Feldwerten filtern, um anzugeben, welche Protokollereignisse ausgewählt oder verworfen werden sollen. Sie können die Collector-Optionen whitelist und blacklist zum Definieren von Filtern verwenden.

Tipp: Standardmäßig erfasst der Linux-Agent für VMware Aria Operations for Logs ausgeblendete Dateien, die von Dateien oder Editoren erstellt werden. Die Namen der ausgeblendeten Dateien beginnen mit einem Punkt. Sie können verhindern, dass der Linux-Agent für VMware Aria Operations for Logs ausgeblendete Dateien erfasst, indem Sie den Ausschlussparameter exclude=.* hinzufügen.

Für jedes Protokollereignis wertet der Collector die Filterausdrücke whitelist und blacklist aus. Wenn der whitelist-Ausdruck „true“ ergibt und der blacklist-Ausdruck „false“ ergibt oder nicht ausgewertet werden kann, wird das Ereignis zur weiteren Verarbeitung in die Warteschlange verschoben. In jedem anderen Fall löscht der Collector das Ereignis. Der Standardwert des whitelist-Ausdrucks ist „true“ und der Standardwert des blacklist-Ausdrucks ist „false“.

Tipp: Der Filelog-Collector bietet weniger Felder zum Filtern. Um Felder zum Filtern zu erhalten, können Sie die Protokolle analysieren. Weitere Informationen finden Sie unter Analysieren von Protokollen.

Ein whitelist- oder blacklist-Filter ist eine Gruppe von Variablen, Literalen und Operatoren, die einen einzelnen logischen oder Ganzzahlwert ergibt. Sie verwenden die Protokollereignisfelder als Variablen und doppelte Zeichenfolgen und Ziffern als Literale. Informationen zu den Operatoren, die Sie in einem Filterausdruck verwenden können, finden Sie unter Ereignisfelder und Operanden.

Hinweis:
  • Wenn Sie eine Zahl mit einer Zeichenfolge vergleichen oder wenn der Vergleich numerische Zeichenfolgen beinhaltet, wird jede Zeichenfolge in eine Zahl konvertiert und der Vergleich wird numerisch durchgeführt. Beispiel:

    • Der Ausdruck whitelist = 123.0 == "000123" ergibt „true“.
    • Der Ausdruck whitelist = "00987" == "987.00" ergibt „true“.
    • Im Ausdruck whitelist = response_size >= "12.12" wird der Ausdruck numerisch ausgewertet, wenn das Feld response_size einen numerischen Wert aufweist. Wenn die Antwortgröße größer als 12,12 ist, lautet der Ausdruck „true“. Andernfalls ist er „false“.
    • Im Ausdruck whitelist = "09123" < "234" werden beide Zeichenfolgenliterale in numerische Werte konvertiert und der Ausdruck wird als „false“ ausgewertet.
  • Wenn einer der Zeichenfolgenoperanden nicht in numerische Werte konvertiert werden kann, werden beide Operanden in eine Zeichenfolge konvertiert. Es wird ein einfacher lexikografischer Vergleich zwischen Groß- und Kleinschreibung durchgeführt. Beispiel:

    • Der Ausdruck whitelist = "1234a" == "1234A" ist ein Zeichenfolgenvergleich, der als „false“ ausgewertet wird.
    • Der Ausdruck whitelist = 4 < "four" konvertiert 4 in „4“ und ergibt „true“.
    • Im Ausdruck whitelist = response_size > "thousand" wird der Wert des Felds response_size in einen Zeichenfolgenwert konvertiert, der den Ausdruck auf „false“ auswertet.
  • Wenn ein Filterausdruck einen Ganzzahlwert ergibt, wird er als „false“ behandelt, wenn er 0 ist, andernfalls als „true“.

    Beispiel: Der Ausdruck whitelist = some_integer & 1 ergibt „true“, wenn das Feld some_integer ein wenig bedeutendes Bit festgelegt hat, andernfalls „false“.

Eine umfassende Liste der Protokollereignisfelder und -Operanden finden Sie unter Erfassen von Protokollereignissen aus einer Protokolldatei.

In diesem Beispiel erfassen Sie Apache-Zugriffsprotokolle aus der Datei /var/log/httpd/access. Einige Beispielprotokolle aus der Datei sind:
  • 127.0.0.1 - frank [10/Oct/2016:13:55:36 +0400] "GET /apache_pb.gif HTTP/1.0" 200 2326
  • 198.51.100.56 - john [10/Oct/2016:14:15:31 +0400] "GET /some.gif HTTP/1.0" 200 8270
  • 198.51.100.12 - smith [10/Oct/2016:14:15:31 +0400] "GET /another.gif HTTP/1.0" 303 348
  • 198.51.100.32 - test [10/Oct/2016:15:22:55 +0400] "GET /experimental_page.gif HTTP/1.0" 400 46374
  • 127.0.0.1 - test [10/Oct/2016:15:22:57 +0400] "GET /experimental_page2.gif HTTP/1.0" 301 100

Voraussetzungen

  • Melden Sie sich als Root-Benutzer an oder verwenden Sie sudo, um Konsolenbefehle auszuführen.
  • Melden Sie sich bei dem Linux-System an, auf dem Sie den VMware Aria Operations for Logs-Linux-Agenten installiert haben. Öffnen Sie eine Konsole und führen Sie pgrep liagent aus, um sicherzustellen, dass der VMware Aria Operations for Logs-Linux-Agent installiert ist und ausgeführt wird.

Prozedur

  1. Definieren Sie einen Parser für die Protokolle, wie im folgenden Ausschnitt dargestellt:
    [parser|apache-access]
    base_parser=clf
    format=%h %l %u %t \"%r\" %s %b
    Der von Ihnen definierte Parser extrahiert die Felder remote_host, remote_log_name, remote_auth_user, timestamp, request, status_code und response_size für jedes Protokollereignis, das aus der Datei /var/log/httpd/access erfasst wurde. Sie können diese Felder verwenden, um Ereignisse zu filtern.
  2. Öffnen Sie die Datei /var/lib/loginsight-agent/liagent.ini in einem beliebigen Texteditor.
  3. Definieren Sie einen Filelog-Abschnitt in der Datei, um Protokolle zu erfassen und zu analysieren, wie im folgenden Ausschnitt dargestellt:
    [filelog|apache-access]
    directory = /var/log/httpd/
    include = access
    parser = apache-access
  4. Filtern Sie Protokollereignisse gemäß Ihren Anforderungen.
    • Um Protokolle zu erfassen, bei denen der HTTP-Status 200 lautet, können Sie eine whitelist im Abschnitt Filelog definieren, wie im folgenden Ausschnitt dargestellt:

      [filelog|apache-access]
      directory = /var/log/httpd/
      include = access
      parser = apache-access
      whitelist = status_code == 200

      Der whitelist-Ausdruck wird nur für das erste und zweite Protokollereignis aus den Beispielprotokollen als „true“ ausgewertet und der Collector wählt diese Ereignisse aus.

      Wenn das Feld status_code im Protokollereignis nicht vorhanden ist, da es im Protokoll nicht vorhanden ist oder nicht analysiert wird, kann der whitelist-Ausdruck nicht ausgewertet werden, d. h., er ergibt „false“ und Collector löscht das Ereignis.

    • Um ein Protokollereignis zu löschen, an dem Sie nicht interessiert sind, können Sie die Option blacklist verwenden. Wenn Sie z. B. nicht an lokalem Datenverkehr interessiert sind, können Sie die lokale IP blockieren, wie im folgenden Ausschnitt dargestellt:

      [filelog|apache-access]
      directory = /var/log/httpd/
      include = access
      parser = apache-access
      blacklist = remote_host == "127.0.0.1"

      Der Collector wählt das zweite, dritte und vierte Protokollereignis aus den Beispielprotokollen aus.

    • Um Protokollereignisse basierend auf mehr als einem Prädikat zu filtern, können Sie die Operatoren or und and verwenden. Sie können z. B. Ereignisse, die von einer lokalen IP generiert wurden, oder Ereignisse, die von Testbenutzern generiert wurden, von einem beliebigen nicht benötigten Host löschen, wie im folgenden Ausschnitt dargestellt:

      [filelog|apache-access]
      directory = /var/log/httpd/
      include = access
      parser = apache-access
      blacklist = remote_host == "127.0.0.1" or remote_auth_user == "test"

      Die Verwendung des or-Operators wertet den blacklist-Ausdruck auf „true“ aus, um ein unerwünschtes Protokollereignis zu überspringen. Der Ausdruck weist den Collector an, das Ereignis abzulegen, wenn der Wert für den remote_host-Feldwert „127.0.0.1“ lautet oder der remote_auth_user-Feldwert „test“ lautet.

      Der Collector wählt das zweite und das dritte Protokollereignis aus den Beispielprotokollen aus.

    • Um von Testbenutzern generierte Protokollereignisse aus einer lokalen IP-Adresse zu löschen, können Sie and im blacklist-Ausdruck verwenden, wie im folgenden Ausschnitt dargestellt:

      [filelog|apache-access]
      directory = /var/log/httpd/
      include = access
      parser = apache-access
      blacklist = remote_host == "127.0.0.1" and remote_auth_user == "test"

      Der Collector löscht das fünfte Protokollereignis aus den Beispielprotokollen.

    • Sie können die Filter whitelist und blacklist zusammen verwenden. Wenn Sie beispielsweise Protokollereignisse benötigen, bei denen die Antwortgröße größer als 1024 Byte ist, Sie aber keine Ereignisse benötigen, die von einem lokalen Host stammen, können Sie den folgenden Ausschnitt verwenden:

      [filelog|apache-access]
      directory = /var/log/httpd/
      include = access
      parser = apache-access
      whitelist = response_size > 1024
      blacklist = remote_host == "127.0.0.1" or remote_host == "localhost"

      Der Collector wählt das zweite Protokollereignis aus den Beispielprotokollen aus.