Puede filtrar todos los eventos recopilados en el agente de Linux de vRealize Log Insight en función de los valores de los campos para especificar qué eventos de registro se deben seleccionar o quitar. Puede utilizar las opciones de recopilador de whitelist y blacklist para definir filtros.

Sugerencia: De forma predeterminada, el agente de Linux de  vRealize Log Insight recopila los archivos ocultos creados por los programas o los editores. Los nombres de archivos ocultos comienzan con un punto. Puede evitar que el agente de Linux de vRealize Log Insight recopile archivos ocultos añadiendo un parámetro de exclusión exclude=.*.

Para cada evento, el recopilador evalúa las expresiones de filtro whitelist y blacklist. Si la expresión whitelist se evalúa como true (verdadero) y la expresión blacklist se evalúa como false (falso) o no se puede evaluar, el evento se mueve a la cola para su procesamiento posterior. En cualquier otro caso, el recopilador quita el evento. El valor predeterminado de la expresión whitelist es true y el valor predeterminado de la expresión blacklist es false.

Sugerencia: El recopilador de Filelog proporciona menos campos para filtrar. Para obtener campos para filtrar, puede analizar los registros. Para obtener más información, consulte Analizar registros.

Un filtro whitelist o blacklist es un conjunto de variables, literales y operadores que se evalúan como un único valor lógico o entero. Los campos de eventos se utilizan como variables y cadenas con comillas dobles y números como literales. Para obtener información sobre los operadores que puede utilizar en una expresión de filtro, consulte Campos de eventos y operadores.

Nota:
  • Si compara un número con una cadena o si la comparación incluye cadenas numéricas, cada cadena se convierte en un número y la comparación se realiza numéricamente. Por ejemplo:

    • La expresión whitelist = 123.0 == "000123" se evalúa como true.
    • La expresión whitelist = "00987" == "987.00" se evalúa como true.
    • En la expresión whitelist = response_size >= "12.12", si el campo response_size tiene un valor numérico, la expresión se evalúa numéricamente. Si el tamaño de respuesta es mayor que 12,12, la expresión es verdadera (true); de lo contrario, es falsa (false).
    • En la expresión whitelist = "09123" < "234", los dos literales de cadena se convierten en valores numéricos y la expresión se evalúa como false.
  • Si uno de los operandos de cadena no se puede convertir en valores numéricos, ambos operandos se convierten en una cadena. Se realiza una simple comparación lexicográfica con distinción entre mayúsculas y minúsculas. Por ejemplo:

    • La expresión whitelist = "1234a" == "1234A" es una comparación de cadena que se evalúa como false.
    • La expresión whitelist = 4 < "four" convierte 4 en "4" y se evalúa como true.
    • En la expresión whitelist = response_size > "thousand", el valor del campo response_size se convierte en un valor de cadena, que evalúa la expresión como false.
  • Si una expresión de filtro se evalúa como un valor entero, se trata como false si es 0 y como true en caso contrario.

    Por ejemplo, la expresión whitelist = some_integer & 1 se evalúa como true si el campo some_integer tiene un conjunto de bits menos significativo y como false en caso contrario.

Para obtener una lista completa de los operadores y campos de eventos, consulte Recopilar eventos de un archivo de registro.

En este ejemplo, se recopilan los registros de acceso de Apache del archivo /var/log/httpd/access. Algunos de los registros de ejemplo del archivo son:
  • 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

Requisitos previos

  • Inicie sesión como raíz o use sudo para ejecutar comandos de la consola.
  • Inicie sesión en la máquina de Linux en la que instaló el agente de Linux de vRealize Log Insight, abra una consola y ejecute pgrep liagent para verificar que el agente de Linux de vRealize Log Insight esté instalado y ejecutándose.

Procedimiento

  1. Defina un analizador para los registros, como se muestra en el siguiente fragmento de código:
    [parser|apache-access]
    base_parser=clf
    format=%h %l %u %t \"%r\" %s %b
    El analizador que ha definido extrae los campos remote_host remote_log_name, remote_auth_user, timestamp, request, status_code y response_size para cada evento recopilado desde el archivo /var/log/httpd/access. Puede utilizar estos campos para filtrar eventos.
  2. Abra el archivo /var/lib/loginsight-agent/liagent.ini en cualquier editor de texto.
  3. Defina una sección de Filelog en el archivo para recopilar y analizar registros, como se muestra en el siguiente fragmento de código:
    [filelog|apache-access]
    directory = /var/log/httpd/
    include = access
    parser = apache-access
  4. Filtre los eventos según sus requisitos.
    • Para recopilar registros en los que el estado de HTTP es 200, puede definir una opción whitelist en la sección Filelog, tal como se muestra en el siguiente fragmento de código:

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

      La expresión whitelist se evalúa como true solo para el primer y el segundo evento de los registros de ejemplo y el recopilador selecciona estos eventos.

      Si el campo status_code no existe en el evento porque no está presente en el registro o no se analiza, no se puede evaluar la expresión whitelist, lo que significa que se evalúa como false y el recopilador quita el evento.

    • Para quitar un evento que no le interese, puede usar la opción blacklist. Por ejemplo, si no le interesa el tráfico local, puede bloquear la IP local, como se muestra en el siguiente fragmento de código:

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

      El recopilador selecciona el segundo, tercer y cuarto evento de los registros de ejemplo.

    • Para filtrar eventos en función de más de un predicado, puede usar los operadores or y and. Por ejemplo, puede quitar eventos generados a partir de una IP local o eventos generados por usuarios de prueba desde cualquier host que no necesite, como se muestra en el siguiente fragmento de código:

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

      Al usar el operador or, la expresión blacklist se evalúa como true para omitir un evento no deseado. La expresión indica al recopilador que quite el evento si el valor del campo remote_host es "127.0.0.1" o el valor del campo remote_auth_user es "test".

      El recopilador selecciona el segundo y tercer evento de los registros de ejemplo.

    • Para quitar los eventos generados desde una IP local por usuarios de prueba, puede usar and en la expresión blacklist, como se muestra en el siguiente fragmento de código:

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

      El recopilador quita el quinto evento de los registros de ejemplo.

    • Puede usar los filtros whitelist y blacklist juntos. Por ejemplo, si necesita eventos en los que el tamaño de la respuesta sea superior a 1024 bytes, pero no requiere eventos que se hayan originado desde un host local, puede usar el siguiente fragmento de código:

      [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"

      El recopilador selecciona el segundo evento de los registros de ejemplo.