Administra el archivo de configuración del reenvío de forma manual

Compatible con:

En esta página, se describe cómo crear y modificar manualmente un archivo de configuración del reenvío de Google Security Operations. Para configurar el reenvío a través de la IU (recomendado), consulta Administra la configuración del reenvío a través de la IU de Google SecOps.

Cada reenviador de Google SecOps implementado requiere un archivo de configuración del reenviador. Un archivo de configuración de reenvío especifica la configuración para transferir los datos a tu instancia de Google SecOps.

Para obtener información sobre cómo instalar y configurar el reenvío de Google SecOps, los requisitos del sistema y los detalles sobre la configuración, consulta Instala y configura el reenvío.

Antes de comenzar

Antes de crear el archivo de configuración, planifica tu implementación comprendiendo los tipos de datos que se pueden transferir y los atributos clave que debes definir en el archivo de configuración.

Cree el archivo de configuración

Para crear el archivo de configuración de forma manual, sigue estos pasos:

  1. Descarga los archivos de configuración a través de la IU.

  2. Guarda los dos archivos en el mismo directorio con la siguiente convención de nomenclatura:

    FORWARDER_NAME.conf: Usa este archivo para definir la configuración relacionada con la transferencia de registros.

    FORWARDER_NAME_auth.conf: Usa este archivo para definir las credenciales de autorización.

  3. Modifica los archivos para incluir la configuración de tu instancia de reenvío.

    Para obtener detalles sobre la configuración de cada tipo de mecanismo de transferencia, como Splunk o Syslog, consulta Cómo definir tipos de datos en tu archivo de configuración. Para obtener detalles sobre cómo personalizar cada atributo, como la compresión de datos o el almacenamiento en búfer del disco, consulta Cómo configurar atributos clave en el archivo de configuración.

  4. Asegúrate de que exista una entrada para cada entrada en el archivo FORWARDER_NAME_auth.conf, incluso si la entrada no tiene detalles de autenticación correspondientes. Esto es necesario para asignar los datos correctamente.

El reenvío aplicará automáticamente cualquier cambio que se realice en el archivo de configuración en un plazo de cinco minutos.

Configuraciones de muestra

Puedes consultar los siguientes archivos de configuración como plantillas para crear los tuyos.

Configuración de muestra de dos archivos

Este sistema de dos archivos almacena las credenciales de autenticación en un archivo independiente para mejorar la seguridad. Puedes almacenar el archivo FORWARDER_NAME.conf en un repositorio de control de versión o en cualquier sistema de administración de configuración abierto. Puedes almacenar el archivo FORWARDER_NAME_auth.conf directamente en la máquina física o virtual que ejecuta el reenvío.

En la siguiente muestra de código, se muestra el formato de los archivos de configuración de un retransmisor.

El archivo FORWARDER_NAME.conf

output:
  url: {region}-chronicle.googleapis.com (for example: us-chronicle.googleapis.com)
  use_dataplane : true
  project_id: PROJECT_ID
  region: {region} (for example: {us})
  identity:
    identity:
    collector_id: COLLECTOR_ID \
    customer_id: CUSTOMER_ID \

collectors:
  - syslog:
      common:
        enabled: true
        data_type: "WINDOWS_DHCP"
        data_hint:
        batch_n_seconds: 10
        batch_n_bytes: 1048576
      tcp_address: 0.0.0.0:10514
      udp_address: 0.0.0.0:10514
      connection_timeout_sec: 60
      tcp_buffer_size: 524288
  - syslog:
      common:
        enabled: true
        data_type: "WINDOWS_DNS"
        data_hint:
        batch_n_seconds: 10
        batch_n_bytes: 1048576
      tcp_address: 0.0.0.0:10515
      connection_timeout_sec: 60
      tcp_buffer_size: 524288

El archivo FORWARDER_NAME_auth.conf

output:
  identity:
    secret_key: |
      {
        "type": "service_account",
        "project_id": "PROJECT_ID" \,
        "private_key_id": "PRIVATE_KEY_ID" \,
        "private_key": "-----BEGIN PRIVATE KEY-----\\"PRIVATE_KEY" \n-----END PRIVATE KEY-----\n",
        "client_email": "CLIENT_EMAIL" \,
        "client_id": "CLIENT_ID" \,
        "auth_uri": "https://accounts.google.com/o/oauth2/auth",
        "token_uri": "https://oauth2.googleapis.com/token",
        "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
        "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/example-account-1%40example-account.iam.gserviceaccount.com"
      }

collectors:
  - syslog:
  - syslog:
      certificate: "../forwarder/inputs/testdata/localhost.pem"
      certificate_key: "../forwarder/inputs/testdata/localhost.key"

Ejemplo de configuración de un solo archivo

output:
  url: us-chronicle.googleapis.com
  use_dataplane: true
  project_id: PROJECT_ID
  region: us
    identity:
    collector_id: COLLECTOR_ID \
    customer_id: CUSTOMER_ID \
    secret_key: |
      {
        "type": "service_account",
        "project_id": "PROJECT_ID" \,
        "private_key_id": "PRIVATE_KEY_ID" \,
        "private_key": "-----BEGIN PRIVATE KEY-----\ "PRIVATE_KEY" \n-----END PRIVATE KEY-----\n",
        "client_email": "CLIENT_EMAIL" \,
        "client_id": "CLIENT_ID" \,
        "auth_uri": "https://accounts.google.com/o/oauth2/auth",
        "token_uri": "https://oauth2.googleapis.com/token",
        "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
        "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/malachite-test-1%40malachite-test.iam.gserviceaccount.com"
      }

collectors:
  - syslog:
      common:
        enabled: true
        data_type: "WINDOWS_DHCP"
        data_hint:
        batch_n_seconds: 10
        batch_n_bytes: 1048576
      tcp_address: 0.0.0.0:10514
      udp_address: 0.0.0.0:10514
      connection_timeout_sec: 60
      tcp_buffer_size: 524288
  - syslog:
      common:
        enabled: true
        data_type: "WINDOWS_DNS"
        data_hint:
        batch_n_seconds: 10
        batch_n_bytes: 1048576
      tcp_address: 0.0.0.0:10515
      connection_timeout_sec: 60
      certificate: "../forwarder/inputs/testdata/localhost.pem"
      certificate_key: "../forwarder/inputs/testdata/localhost.key"
      tcp_buffer_size: 524288

Convertir de un sistema de un solo archivo a uno de dos archivos

Si usas un solo archivo de configuración y deseas cambiar al sistema de dos archivos, haz lo siguiente:

  1. Crea una copia del archivo de configuración existente.

  2. Guarda un archivo como FORWARDER_NAME.conf y borra las credenciales de autorización del archivo.

  3. Guarda el otro archivo como FORWARDER_NAME_auth.conf y borra todos los datos que no sean de autorización. Puedes usar la configuración de muestra como referencia. Asegúrate de seguir la convención de nomenclatura y otros lineamientos que se mencionan en la sección Personaliza la configuración.

Define tipos de datos en tu archivo de configuración

En las siguientes secciones, se explica cómo configurar el reenviador de Google SecOps para que ingiera diferentes tipos de datos, que se reenvían a la instancia de Google SecOps.

Datos de Splunk

Puedes configurar el reenvío de Google SecOps para que reenvíe tus datos de Splunk a Google SecOps. Google Cloud configura el reenvío de Google SecOps con la siguiente información para reenviar tus datos desde Splunk:

  • URL de la API de REST de Splunk (por ejemplo, https://10.0.113.15:8089).

  • Consultas de Splunk para generar datos para cada uno de los tipos de datos requeridos (por ejemplo, index=dns)

FORWARDER_NAME.conf
output:
collectors:
  - splunk:
      common:
        enabled: true
        data_type: WINDOWS_DNS
        data_hint: "#fields ts      uid     id.orig_h       id.orig_p       id.resp_h         id.resp_p       proto   trans_id        query   qclass  qclass_name"
        batch_n_seconds: 10
        batch_n_bytes: 819200
      url: https://127.0.0.1:8089
      is_ignore_cert: true
      minimum_window_size: 10s
      maximum_window_size: 30s
      query_string: search index=* sourcetype=dns
      query_mode: realtime
  • Pon a disposición del reenvío de Google SecOps las credenciales de tu cuenta de Splunk. Para ello, crea un archivo creds.txt.

Para usar un archivo creds.txt, haz lo siguiente:

  1. Crea un archivo local para tus credenciales de Splunk y asígnale el nombre creds.txt.

  2. Coloca tu nombre de usuario en la primera línea y la contraseña en la segunda:

    cat creds.txt
    
    myusername
    mypassword
    
  3. Para usar el retransmisor de SecOps de Google y acceder a una instancia de Splunk, copia el archivo creds.txt en el directorio de configuración (el mismo directorio en el que residen los archivos de configuración).

    Linux

    cp creds.txt /opt/chronicle/config/creds.txt
    

    Windows

    cp creds.txt c:/opt/chronicle/config/creds.txt
    
  4. Verifica que el archivo creds.txt esté en el directorio previsto:

    Linux

      ls /opt/chronicle/config
    

    Windows

    ls c:/opt/chronicle/config
    

Datos de Syslog

Un retransmisor puede funcionar como un servidor Syslog. Puedes configurar cualquier servidor que admita el envío de datos de Syslog a través de una conexión TCP o UDP para que reenvíe sus datos al reenviador de Google SecOps. Puedes controlar los datos que el servidor envía al retransmisor, y este puede reenviar los datos a Google SecOps.

El archivo de configuración FORWARDER_NAME.conf (proporcionado porGoogle Cloud) especifica qué puertos supervisar para cada tipo de datos reenviados (por ejemplo, el puerto 10514). De forma predeterminada, el reenvío de Google SecOps acepta conexiones TCP y UDP.

Puedes personalizar el tamaño del búfer TCP. El tamaño predeterminado del búfer TCP es de 64 KB. El valor predeterminado y recomendado para connection_timeout es de 60 segundos. La conexión TCP se finaliza si está inactiva durante más de 60 segundos.

Configura rsyslog

Para configurar rsyslog, debes especificar un destino para cada puerto (por ejemplo, cada tipo de datos). En los siguientes ejemplos, se ilustra la configuración de destino de rsyslog:

  • Registro de tráfico de TCP: dns.* @@192.168.0.12:10514

  • Tráfico de registro de UDP: dns.* @192.168.0.12:10514

Puedes consultar la documentación del sistema para obtener más detalles.

Habilita TLS para las configuraciones de Syslog

Puedes habilitar TLS para la conexión de Syslog al reenviador de Google SecOps. En el archivo de configuración del reenvío (FORWARDER_NAME.conf), especifica la ubicación de tu propio certificado y clave de certificado generados, como se muestra en el siguiente ejemplo. Puedes crear un directorio certs en el directorio configuration y almacenar los archivos de certificado en él.

Linux:

certificado /opt/chronicle/external/certs/client_generated_cert.pem
certificate_key /opt/chronicle/external/certs/client_generated_cert.key

Windows:

certificado c:/opt/chronicle/external/certs/client_generated_cert.pem
certificate_key c:/opt/chronicle/external/certs/client_generated_cert.key

Según el ejemplo que se muestra, modifica el archivo de configuración del reenvío (FORWARDER_NAME.conf) de la siguiente manera:

Linux:

 collectors:
- syslog:
   common:
     enabled: true
     data_type: WINDOWS_DNS
     data_hint:
     batch_n_seconds: 10
     batch_n_bytes: 1048576
   tcp_address: 0.0.0.0:10515
   tcp_buffer_size: 65536
   connection_timeout_sec: 60
   certificate: "/opt/chronicle/external/certs/client_generated_cert.pem"
   certificate_key: "/opt/chronicle/external/certs/client_generated_cert.key"
   minimum_tls_version: "TLSv1_3"

Windows:

  collectors:
- syslog:
    common:
      enabled: true
      data_type: WINDOWS_DNS
      data_hint:
      batch_n_seconds: 10
      batch_n_bytes: 1048576
    tcp_address: 0.0.0.0:10515
    tcp_buffer_size: 65536
    connection_timeout_sec: 60
    certificate: "c:/opt/chronicle/external/certs/client_generated_cert.pem"
    certificate_key: "c:/opt/chronicle/external/certs/client_generated_cert.key"
    minimum_tls_version: "TLSv1_3"

La versión de TLS de la solicitud de entrada debe ser mayor que la versión mínima de TLS. La versión mínima de TLS debe ser uno de los siguientes valores: TLSv1_0, TLSv1_1, TLSv1_2, TLSv1_3.

Datos del archivo

Un recopilador de archivos está diseñado para recuperar registros de un archivo que está vinculado al contenedor de Docker. Puedes usar esta opción si deseas subir manualmente registros desde un solo archivo de registro.

Inicia el reenvío de Google SecOps desde el contenedor de Docker para asignar el volumen de carga al contenedor:

Linux

     docker run 
--detach
--name cfps
--log-opt max-size=100m
--log-opt max-file=10
--net=host
-v /opt/chronicle/config:/opt/chronicle/external
-v /var/log/crowdstrike/falconhostclient:/opt/chronicle/edr
gcr.io/chronicle-container/cf_production_stable

Windows

  docker run `
    --name cfps `
    --log-opt max-size=100m `
    --log-opt max-file=10 `
    -p 10514:10514 `
    -v c:/opt/chronicle/config:c:/opt/chronicle/external `
    -v c:/var/log/crowdstrike/falconhostclient:c:/opt/chronicle/edr `
     gcr.io/chronicle-container/cf_production_stable_windows

Puedes agregar varios puertos con varias opciones o varios rangos. Por ejemplo, -p 3001:3000 -p 2023:2022 o -p 7000-8000:7000-8000. Los números de puerto que se proporcionan en el código de ejemplo son solo ejemplos. Reemplaza los números de puerto según tus requisitos.

Según el ejemplo, puedes modificar la configuración del reenvío de Google SecOps (archivo FORWARDER_NAME.conf) de la siguiente manera:

Linux

collectors:
 - file:
      common:
        enabled: true
        data_type: CS_EDR
        data_hint:
        batch_n_seconds: 10
        batch_n_bytes: 1048576
      file_path: /opt/chronicle/edr/sample.txt
      filter:

Windows

 collectors:
  - file:
       common:
         enabled: true
         data_type: CS_EDR
         data_hint:
         batch_n_seconds: 10
         batch_n_bytes: 1048576
       file_path: c:/opt/chronicle/edr/sample.txt
       filter:

El archivo sample.txt debe estar presente en la carpeta /var/log/crowdstrike/falconhostclient.

Configuraciones de marcas

skip_seek_to_end (bool): Esta marca se establece en false de forma predeterminada, y la entrada de archivo solo envía líneas de registro nuevas como entrada. Si se configura en true, se volverán a enviar todas las líneas de registro anteriores durante los reinicios del reenvío. Esto provoca la duplicación de registros. Configurar esta marca en true es útil en ciertas situaciones (por ejemplo, durante interrupciones), ya que reiniciar el retransmisor vuelve a enviar las líneas de registro faltantes.

poll (bool): El recopilador de archivos usa la biblioteca Tail para verificar si hay cambios en el sistema de archivos. Si configuras esta marca en true, la biblioteca de Tail usará el método de sondeo en lugar del método de notificación predeterminado.

Datos de paquetes

El reenvío de SecOps de Google puede capturar paquetes en lugar de entradas de registro, directamente desde una interfaz de red.

Sistemas Linux

El servidor de reenvío de SecOps de Google puede capturar paquetes con libcap en Linux. Para obtener más información sobre libcap, consulta libcap: página del manual de Linux.

En lugar de entradas de registro, se capturan paquetes de red sin procesar y se envían a SecOps de Google. Esta captura se limita a una interfaz local. Para habilitar la captura de paquetes en tu sistema, comunícate con el equipo de asistencia de SecOps de Google.

Google SecOps configura el retransmisor de Google SecOps con la expresión del filtro de paquetes de Berkeley (BPF) que se usa cuando se capturan paquetes (por ejemplo, el puerto 53 y no localhost). Para obtener más información, consulta Filtros de paquetes de Berkeley.

Sistemas Windows

El reenvío de Google SecOps puede capturar paquetes con Npcap en sistemas Windows.

En lugar de entradas de registro, se capturan paquetes de red sin procesar y se envían a SecOps de Google. Esta captura se limita a una interfaz local. Para configurar tu reenvío de Google SecOps para la captura de paquetes, comunícate con el equipo de asistencia de Google SecOps.

Requisitos para un retransmisor de PCAP de captura de paquetes:

  • Instala Npcap en el host de Microsoft Windows.

  • Otorga privilegios de administrador o raíz al retransmisor de Google SecOps para supervisar la interfaz de red.

  • En la instalación de Npcap, habilita el modo de compatibilidad con WinPcap.

Para configurar un reenvío de PCAP, Google Cloud necesita el GUID de la interfaz que se usa para capturar paquetes. Ejecuta getmac.exe en la máquina en la que planeas instalar el reenvío de Google SecOps (ya sea el servidor o la máquina que escucha en el puerto de expansión) y envía el resultado a Google SecOps.

Como alternativa, puedes modificar el archivo de configuración. Busca la sección PCAP y reemplaza el valor GUID existente por el GUID que obtuviste cuando ejecutaste getmac.exe.

Por ejemplo, a continuación, se muestra una sección de PCAP original:

- pcap:
      common:
        enabled: true
        data_type: PCAP_DNS
        batch_n_seconds: 10
        batch_n_bytes: 1048576
      interface: \Device\NPF_{1A7E7C8B-DD7B-4E13-9637-0437AB1A12FE}
      bpf: udp port 53

Resultado de la ejecución de getmac.exe:

C:\>getmac.exe
  Physical Address    Transport Name
  ===========================================================================
  A4-73-9F-ED-E1-82   \Device\Tcpip_{2E0E9440-ABFF-4E5B-B43C-E188FCAD1234}

Sección PCAP revisada con el nuevo GUID:

- pcap:
      common:
        enabled: true
        data_type: PCAP_DNS
        batch_n_seconds: 10
        batch_n_bytes: 1048576
      interface: \Device\NPF_{2E0E9440-ABFF-4E5B-B43C-E188FCAD9734}
      bpf: udp port 53

El resultado de getmac.exe para el nombre del transporte comienza con \Device\Tcpip, mientras que la sección comparable de pcap comienza con \Device\NPF.

Datos del tema de Kafka

El retransmisor de SecOps de Google admite la transferencia de datos directamente desde temas de Kafka. Puedes implementar hasta tres retransmisores y extraer datos del mismo tema de Kafka aprovechando el concepto de grupos de consumidores para un procesamiento eficiente y paralelo. Para obtener más información, consulta Kafka. Para obtener más información sobre los grupos de consumidores de Kafka, consulta Consumidor de Kafka.

La siguiente configuración del retransmisor muestra cómo configurarlo para que ingiera datos de los temas de Kafka.

Linux

El archivo FORWARDER_NAME.conf

   collectors:
   - kafka:
         common:
           batch_n_bytes: 1048576
           batch_n_seconds: 10
           data_hint: null
           data_type: NIX_SYSTEM
           enabled: true
         topic: example-topic
         group_id: chronicle-forwarder
         timeout: 60s
         brokers: ["broker-1:9092", "broker-2:9093"]
         tls:
           insecureSkipVerify: true
           certificate: "/path/to/cert.pem"
           certificate_key: "/path/to/cert.key"
   - syslog:
         common:
           batch_n_bytes: 1048576
           batch_n_seconds: 10
           data_hint: null
           data_type: WINEVTLOG
           enabled: true
         tcp_address: 0.0.0.0:30001
         connection_timeout_sec: 60
   

El archivo FORWARDER_NAME_auth.conf

   collectors:
   - kafka:
         username: user
         password: password
   - syslog:
   

Windows

Archivo FORWARDER_NAME.conf

collectors:
- kafka:
      common:
        batch_n_bytes: 1048576
        batch_n_seconds: 10
        data_hint: null
        data_type: NIX_SYSTEM
        enabled: true
      topic: example-topic
      group_id: chronicle-forwarder
      timeout: 60s
      brokers: ["broker-1:9092", "broker-2:9093"]
      tls:
        insecureSkipVerify: true
        certificate: "c:/path/to/cert.pem"
        certificate_key: "c:/path/to/cert.key"
- syslog:
      common:
        batch_n_bytes: 1048576
        batch_n_seconds: 10
        data_hint: null
        data_type: WINEVTLOG
        enabled: true
      tcp_address: 0.0.0.0:30001
      connection_timeout_sec: 60

Archivo FORWARDER_NAME_auth.conf

collectors:
- kafka:
      username: user
      password: password
- syslog:

Datos de WebProxy

El retransmisor de Google SecOps puede capturar datos de WebProxy directamente desde una interfaz de red.

Linux

El retransmisor de Google SecOps puede capturar datos de WebProxy con libcap en Linux. Para obtener más información sobre libcap, consulta libcap: página del manual de Linux. Para habilitar la captura de datos de WebProxy en tu sistema, comunícate con el equipo de asistencia de Google SecOps.

Modifica la configuración del reenvío de Google SecOps (archivo FORWARDER_NAME.conf) de la siguiente manera:

   - webproxy:
         common:
           enabled : true
           data_type: <Your LogType>
           batch_n_seconds: 10
           batch_n_bytes: 1048576
         interface: any
         bpf: tcp and dst port 80

Windows

El reenvío puede capturar datos de WebProxy con Npcap y enviarlos a Google Cloud.

Para habilitar la captura de datos de WebProxy en tu sistema, comunícate con el equipo de asistencia de Google SecOps.

Antes de ejecutar un reenvío de WebProxy, sigue estos pasos:

  1. Instala Npcap en el host de Microsoft Windows. Habilita el modo de compatibilidad con WinPcap durante la instalación.

  2. Otorga privilegios de administrador o de raíz al reenviador para supervisar la interfaz de red.

  3. Obtén el GUID de la interfaz que se usa para capturar los paquetes de WebProxy.

    Ejecuta getmac.exe en la máquina en la que deseas instalar el reenvío de Google SecOps y envía el resultado a Google SecOps. Como alternativa, puedes modificar el archivo de configuración. Busca la sección WebProxy y reemplaza el GUID que se muestra junto a la interfaz por el GUID que se muestra después de ejecutar getmac.exe.

    Modifica el archivo de configuración del reenvío de Google SecOps (FORWARDER_NAME.conf) de la siguiente manera:

      - webproxy:
        common:
            enabled : true
            data_type: <Your LogType>
            batch_n_seconds: 10
            batch_n_bytes: 1048576
          interface: \Device\NPF_{2E0E9440-ABFF-4E5B-B43C-E188FCAD9734}
          bpf: tcp and dst port 80
    

Configura atributos clave en el archivo de configuración

En la siguiente tabla, se enumeran los parámetros importantes que se usan en el archivo de configuración del reenvío.

Parámetro Descripción
data_type Es el tipo de datos de registro que el recopilador puede recopilar y procesar.
metadatos Son los metadatos que anulan los metadatos globales.
max_file_buffer_bytes Cantidad máxima de bytes que se pueden acumular en el búfer de disco o de archivo. El valor predeterminado es 1073741824, que equivale a 1 GB.
max_memory_buffer_bytes Cantidad máxima de bytes que se pueden acumular en el búfer de memoria. El valor predeterminado es 1073741824, que equivale a 1 GB.
write_to_disk_dir_path Es la ruta de acceso que se usará para el búfer de archivos o de disco.
write_to_disk_buffer_enabled Si es true, se usa el búfer de disco en lugar del búfer de memoria. El valor predeterminado es false.
batch_n_bytes Es la cantidad máxima de bytes que puede acumular el recopilador antes de que se agrupen los datos. El valor predeterminado es 1048576, que equivale a 1 MB.
batch_n_seconds Cantidad de segundos después de los cuales se agrupan los datos recopilados por el recopilador. El valor predeterminado es 11 segundos.
data_hint Formato de datos que puede recibir el recopilador (por lo general, el encabezado del archivo de registro que describe el formato).

Para obtener una lista extensa de los parámetros que se usan en el archivo de configuración, consulta Campos de configuración del retransmisor y Campos de configuración del recopilador.

Compresión de datos

De forma predeterminada, la compresión de registros está inhabilitada. Habilitar la compresión de registros podría reducir el consumo de ancho de banda. Sin embargo, habilitar la compresión de registros también podría aumentar el uso de la CPU. Evalúa la compensación en función de tu entorno y los datos de registro.

Para habilitar la compresión de registros, establece el campo compression en true en el archivo de configuración del reenvío de Google SecOps, como se muestra en el siguiente ejemplo:

El archivo FORWARDER_NAME.conf

output:
  compression: true
    url: malachiteingestion-pa.googleapis.com:443
    identity:
      identity:
      collector_id: 10479925-878c-11e7-9421-10604b7cb5c1
      customer_id: ebdc4bb9-878b-11e7-8455-10604b7cb5c1
...

El archivo FORWARDER_NAME_auth.conf

output:
  identity:
    secret_key: |
    {
     "type": "service_account",
...
    }

Almacenamiento en búfer de disco

El almacenamiento en búfer de disco te permite almacenar mensajes pendientes en el disco, en lugar de la memoria.

Puedes configurar el almacenamiento automático en búfer de memoria para usar un búfer compartido de forma dinámica entre los recopiladores, lo que permite controlar mejor los picos de tráfico. Para habilitar el búfer compartido de forma dinámica, agrega lo siguiente a la configuración del reenvío:

auto_buffer:
  enabled: true
  target_memory_utilization: 80

Si el almacenamiento en búfer automático del disco está habilitado, pero no se define target_memory_utilization, se usa un valor predeterminado de 70.

Si ejecutas el agente de reenvío con Docker, te recomendamos que montes un volumen independiente del volumen de configuración para fines de aislamiento. Además, cada entrada debe aislarse con su propio directorio o volumen para evitar conflictos.

Configuración de ejemplo

La siguiente configuración incluye la sintaxis para habilitar el almacenamiento en búfer de disco:

collectors:
- syslog:
    common:
      write_to_disk_buffer_enabled: true
      # /buffers/NIX_SYSTEM is part of the external mounted volume for the
forwarder
      write_to_disk_dir_path: /buffers/NIX_SYSTEM
      max_file_buffer_bytes: 1073741824
      batch_n_bytes: 1048576
      batch_n_seconds: 10
      data_hint: null
      data_type: NIX_SYSTEM
      enabled: true
    tcp_address: 0.0.0.0:30000
    connection_timeout_sec: 60
- syslog:
    common:
      batch_n_bytes: 1048576
      batch_n_seconds: 10
      data_hint: null
      data_type: WINEVTLOG
      enabled: true
    tcp_address: 0.0.0.0:30001
    connection_timeout_sec: 60

Filtros de expresión regular

Los filtros de expresiones regulares te permiten filtrar los registros según patrones coincidentes con los datos de registro sin procesar. Los filtros emplean la sintaxis RE2. Los filtros deben incluir una expresión regular y, de forma opcional, definir un comportamiento cuando hay una coincidencia.

El comportamiento predeterminado en una coincidencia es block. Puedes especificar filtros con el comportamiento de allow. Si especificas un filtro allow, el retransmisor bloqueará todos los registros que no coincidan con al menos un filtro allow.

Es posible definir una cantidad arbitraria de filtros. Los filtros Block tienen prioridad sobre los filtros allow.

Cuando se definen filtros, se les debe asignar un nombre. Los nombres de los filtros activos se informarán a las Operaciones de seguridad de Google a través de las métricas de estado del reenvío. Los filtros definidos en la raíz de la configuración se combinan con los filtros definidos a nivel del recopilador. Los filtros a nivel del recopilador tienen prioridad en los casos de nombres en conflicto. Si no se definen filtros a nivel de la raíz o del recopilador, el comportamiento es permitir todos los registros.

Configuración de ejemplo

En la siguiente configuración del reenvío, se bloquean los registros de WINEVTLOG que no coinciden con el filtro raíz (allow_filter). Dada la expresión regular, el filtro solo permite los registros con prioridades entre 0 y 99. Sin embargo, se bloquean todos los registros de NIX_SYSTEM que contengan "foo" o "bar", a pesar del allow_filter. Esto se debe a que los filtros usan un operador OR lógico. Todos los registros se procesan hasta que se activa un filtro.

regex_filters:
  allow_filter:
    regexp: ^<[1-9][0-9]?$>.*$
    behavior_on_match: allow
collectors:
- syslog:
    common:
      regex_filters:
        block_filter_1:
          regexp: ^.*foo.*$
          behavior_on_match: block
        block_filter_2:
          regexp: ^.*bar.*$
      batch_n_bytes: 1048576
      batch_n_seconds: 10
      data_hint: null
      data_type: NIX_SYSTEM
      enabled: true
    tcp_address: 0.0.0.0:30000
    connection_timeout_sec: 60
- syslog:
    common:
      batch_n_bytes: 1048576
      batch_n_seconds: 10
      data_hint: null
      data_type: WINEVTLOG
      enabled: true
    tcp_address: 0.0.0.0:30001
    connection_timeout_sec: 60

Etiquetas arbitrarias

Las etiquetas se usan para adjuntar metadatos personalizados a los registros con pares clave-valor. Puedes configurar etiquetas para un retransmisor completo o dentro de un recopilador específico del retransmisor. Si ambas están presentes, las etiquetas a nivel del recopilador anulan las etiquetas a nivel del retransmisor si las claves se superponen.

Configuración de ejemplo

En la siguiente configuración del reenvío, los pares clave-valor "foo=bar" y "meow=mix" se adjuntan a los registros de WINEVTLOG, y los pares clave-valor "foo=baz" y "meow=mix" se adjuntan a los registros de NIX_SYSTEM.

metadata:
  labels:
    foo: bar
    meow: mix
collectors:
syslog:
    common:
      metadata:
        labels:
          foo: baz
          meow: mix
      batch_n_bytes: 1048576
      batch_n_seconds: 10
      data_hint: null
      data_type: NIX_SYSTEM
      enabled: true
    tcp_address: 0.0.0.0:30000
    connection_timeout_sec: 60
syslog:
    common:
      batch_n_bytes: 1048576
      batch_n_seconds: 10
      data_hint: null
      data_type: WINEVTLOG
      enabled: true
    tcp_address: 0.0.0.0:30001
    connection_timeout_sec: 60

Espacios de nombres

Puedes usar etiquetas de espacio de nombres para identificar registros de segmentos de red distintos y resolver conflictos de direcciones IP superpuestas. Cualquier espacio de nombres configurado para el reenvío aparece con los recursos asociados en la interfaz de usuario de Google SecOps. También puedes buscar espacios de nombres con la función de búsqueda de SecOps de Google.

Para obtener información sobre cómo ver los espacios de nombres en la interfaz de usuario de Google SecOps, consulta Espacios de nombres de activos.

Configuración de ejemplo

En la siguiente configuración del reenvío, los registros de WINEVTLOG se adjuntan al espacio de nombres FORWARDER y los registros de NIX_SYSTEM se adjuntan al espacio de nombres CORPORATE.

metadata:
  namespace: FORWARDER
collectors:
- syslog:
      common:
        metadata:
          namespace: CORPORATE
        batch_n_bytes: 1048576
        batch_n_seconds: 10
        data_hint: null
        data_type: NIX_SYSTEM
        enabled: true
      tcp_address: 0.0.0.0:30000
      connection_timeout_sec: 60
- syslog:
      common:
        batch_n_bytes: 1048576
        batch_n_seconds: 10
        data_hint: null
        data_type: WINEVTLOG
        enabled: true
      tcp_address: 0.0.0.0:30001
      connection_timeout_sec: 60

Opciones de balanceo de cargas y alta disponibilidad

Puedes configurar el servidor HTTP, el balanceo de cargas y las opciones de alta disponibilidad en la sección del servidor del archivo de configuración del reenviador. Estas opciones admiten la configuración de duraciones de tiempo de espera y códigos de estado que se muestran en respuesta a las verificaciones de estado recibidas en implementaciones basadas en la orquestación y el programador de contenedores, así como desde los balanceadores de cargas.

Usa las siguientes rutas de URL para las verificaciones de estado, preparación y estado en funcionamiento. Los valores de <host:port> se definen en la configuración del reenvío.

  • http://<host:port>/meta/available: Verificaciones de actividad para los programadores o los orquestadores de contenedores
  • http://<host:port>/meta/ready: Verificaciones de preparación y verificaciones de estado del balanceador de cargas

La siguiente configuración del reenvío es un ejemplo para el balanceo de cargas y la alta disponibilidad:

collectors:
- syslog:
    common:
      batch_n_bytes: 1048576
      batch_n_seconds: 10
      data_hint: null
      data_type: NIX_SYSTEM
      enabled: true
    tcp_address: 0.0.0.0:30000
    connection_timeout_sec: 60
- syslog:
    common:
      batch_n_bytes: 1048576
      batch_n_seconds: 10
      data_hint: null
      data_type: WINEVTLOG
      enabled: true
    tcp_address: 0.0.0.0:30001
    connection_timeout_sec: 60
server:
  graceful_timeout: 15s
  drain_timeout: 10s
  http:
    port: 8080
    host: 0.0.0.0
    read_timeout: 3s
    read_header_timeout: 3s
    write_timeout: 3s
    idle_timeout: 3s
    routes:
    - meta:
        available_status: 204
        ready_status: 204
        unready_status: 503
Ruta de configuración Descripción
server : graceful_timeout Es la cantidad de tiempo durante la que el reenvío devuelve una verificación de estado o preparación incorrecta y, aun así, acepta conexiones nuevas. Este también es el tiempo de espera entre la recepción de una señal para detener el servidor y el inicio real de su apagado. Esto le da tiempo al balanceador de cargas para quitar el reenvío del grupo.
server : drain_timeout Es la cantidad de tiempo que el reenvío espera a que las conexiones activas se cierren correctamente por sí solas antes de que el servidor las cierre.
server : http : port Número de puerto en el que el servidor HTTP escucha las verificaciones de estado del balanceador de cargas. Debe estar entre 1,024 y 65,535.
server : http : host Dirección IP o nombre de host que se puede resolver en direcciones IP a las que el servidor debe escuchar. Si está vacío, el valor predeterminado es el sistema local (0.0.0.0).
server : http : read_timeout Se usa para ajustar el servidor HTTP. Por lo general, no es necesario cambiar el parámetro de configuración predeterminado. Es la cantidad máxima de tiempo permitida para leer toda la solicitud, tanto el encabezado como el cuerpo. Puedes establecer read_timeout y read_header_timeout.
server : http : read_header_timeout Se usa para ajustar el servidor HTTP. Por lo general, no es necesario cambiar el parámetro de configuración predeterminado. Es la cantidad máxima de tiempo permitida para leer los encabezados de la solicitud. El tiempo límite de lectura de la conexión se restablece después de leer el encabezado.
server : http : write_timeout Se usa para ajustar el servidor HTTP. Por lo general, no es necesario cambiar el parámetro de configuración predeterminado. Es la cantidad máxima de tiempo permitida para enviar una respuesta. Se restablece cuando se lee un nuevo encabezado de solicitud.
server : http : idle_timeout Se usa para ajustar el servidor HTTP. Por lo general, no es necesario cambiar el parámetro de configuración predeterminado. Es la cantidad máxima de tiempo que se espera la próxima solicitud cuando las conexiones inactivas están habilitadas. Si idle_timeout es cero, se usa el valor de read_timeout. Si ambos son cero, se usa read_header_timeout.
routes : meta : ready_status Es el código de estado que devuelve el reenvío cuando está listo para aceptar el tráfico en cualquiera de las siguientes situaciones:
  • Se recibe una verificación de disponibilidad de un programador o un orquestador de contenedores.
  • Se recibe una verificación de estado de un balanceador de cargas tradicional.
routes : meta : unready_status Es el código de estado que devuelve el reenvío cuando no está listo para aceptar tráfico.
routes : meta : available_status Es el código de estado que devuelve el reenvío cuando se recibe una verificación de funcionamiento y el reenvío está disponible. Los organizadores o programadores de contenedores suelen enviar verificaciones de actividad.

¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.