手动管理转发器配置文件

支持的语言:

本页介绍了如何手动创建和修改 Google Security Operations 转发器配置文件。如需通过界面配置转发器(推荐),请参阅通过 Google SecOps 界面管理转发器配置

每个已部署的 Google SecOps 转发器都需要一个转发器配置文件。 转发器配置文件用于指定将数据传输到 Google SecOps 实例的设置。

如需了解如何安装和配置 Google SecOps 转发器、系统要求以及配置设置的详细信息,请参阅安装和配置转发器

准备工作

在创建配置文件之前,请先规划您的实现,了解可以注入的数据类型以及需要在配置文件中定义的关键属性。

创建配置文件

如需手动创建配置文件,请按以下步骤操作:

  1. 通过界面下载配置文件

  2. 使用以下命名惯例将两个文件保存在同一目录中:

    FORWARDER_NAME.conf - 使用此文件定义与日志提取相关的配置设置。

    FORWARDER_NAME_auth.conf - 使用此文件来定义授权凭据。

  3. 修改文件以包含转发器实例的配置。

    如需详细了解每种提取机制(例如 Splunk 或 Syslog)的设置,请参阅在配置文件中定义数据类型。 如需详细了解如何自定义每个属性(例如数据压缩或磁盘缓冲),请参阅在配置文件中配置关键属性

  4. 确保 FORWARDER_NAME_auth.conf 文件中的每个输入都存在条目,即使输入没有相应的身份验证详细信息也是如此。这是正确映射数据所必需的。

对配置文件所做的任何更改都会在 5 分钟内由转发器自动应用。

示例配置

您可以参考以下配置文件作为模板来创建自己的配置文件。

双文件示例配置

这两个文件系统可将身份验证凭据存储在单独的文件中,以增强安全性。您可以将 FORWARDER_NAME.conf 文件存储在版本控制代码库或任何开放式配置管理系统中。您可以将 FORWARDER_NAME_auth.conf 文件直接存储在运行转发器的物理机或虚拟机中。

以下代码示例展示了转发器的配置文件格式。

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

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"

单文件示例配置

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

从单文件系统转换为双文件系统

如果您使用的是单个配置文件,并且想要改为使用双文件系统,请执行以下操作:

  1. 创建现有配置文件的副本。

  2. 将一个文件保存为 FORWARDER_NAME.conf 文件,然后从该文件中删除授权凭据。

  3. 将另一个文件保存为 FORWARDER_NAME_auth.conf 文件,并从该文件中删除所有非授权数据。您可以参考示例配置。请务必遵循自定义配置部分中提到的命名惯例和其他准则。

在配置文件中定义数据类型

以下部分将帮助您配置 Google SecOps 转发器,以注入转发到 Google SecOps 实例的不同类型的数据。

Splunk 数据

您可以配置 Google SecOps 转发器,以将 Splunk 数据转发到 Google SecOps。 Google Cloud 使用以下信息配置 Google SecOps 转发器,以转发来自 Splunk 的数据:

  • Splunk REST API 的网址(例如 https://10.0.113.15:8089)。

  • Splunk 查询用于为每个必需数据类型(例如,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
  • 将您的 Splunk 账号凭据提供给 Google SecOps 转发器。为此,您可以创建 creds.txt 文件。

如需使用 creds.txt 文件,请执行以下操作:

  1. 为 Splunk 凭据创建一个本地文件,并将其命名为 creds.txt

  2. 将用户名放在第一行,将密码放在第二行:

    cat creds.txt
    
    myusername
    mypassword
    
  3. 如需使用 Google SecOps 转发器访问 Splunk 实例,请将 creds.txt 文件复制到配置目录(与配置文件位于同一目录)。

    Linux

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

    Windows

    cp creds.txt c:/opt/chronicle/config/creds.txt
    
  4. 验证 creds.txt 文件是否位于目标目录中:

    Linux

      ls /opt/chronicle/config
    

    Windows

    ls c:/opt/chronicle/config
    

Syslog 数据

转发器可以作为 Syslog 服务器运行。您可以配置任何支持通过 TCP 或 UDP 连接发送 Syslog 数据的服务器,以将其数据转发到 Google SecOps 转发器。您可以控制服务器发送给转发器的数据,然后转发器可以将数据转发到 Google SecOps。

FORWARDER_NAME.conf 配置文件(由Google Cloud提供)指定了要监控每种转发数据(例如,端口 10514)的端口。默认情况下,Google SecOps 转发器同时接受 TCP 和 UDP 连接。

您可以自定义 TCP 缓冲区空间。默认 TCP 缓冲区空间为 64 KB。connection_timeout 的默认值和建议值均为 60 秒。如果连接处于非活动状态的时间超过 60 秒,TCP 连接就会终止。

配置 rsyslog

如需配置 rsyslog,您需要为每个端口(例如,每种数据类型)指定目标。以下示例展示了 rsyslog 目标配置:

  • TCP 日志流量:dns.* @@192.168.0.12:10514

  • UDP 日志流量:dns.* @192.168.0.12:10514

如需了解详情,请参阅系统文档。

为 Syslog 配置启用 TLS

您可以为与 Google SecOps 转发器的 Syslog 连接启用 TLS。在转发器配置文件 (FORWARDER_NAME.conf) 中,指定您自己生成的证书和证书密钥的位置,如以下示例所示。 您可以在 configuration 目录下创建 certs 目录,并将证书文件存储在该目录下。

Linux:

证书 /opt/chronicle/external/certs/client_generated_cert.pem
certificate_key /opt/chronicle/external/certs/client_generated_cert.key

Windows:

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

根据显示的示例,按如下方式修改转发器配置文件 (FORWARDER_NAME.conf):

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"

输入请求的 TLS 版本应高于最低 TLS 版本。最低 TLS 版本应为以下值之一:TLSv1_0、TLSv1_1、TLSv1_2、TLSv1_3。

文件数据

文件收集器旨在从绑定到 Docker 容器的文件中提取日志。如果您想手动上传单个日志文件中的日志,可以使用此方法。

从 Docker 容器启动 Google SecOps 转发器,以将负载量映射到容器:

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

您可以使用多个选项或多个范围添加多个端口。例如:-p 3001:3000 -p 2023:2022-p 7000-8000:7000-8000。 示例代码中提供的端口号仅供参考。根据您的需求替换端口号。

根据此示例,您可以按如下方式修改 Google SecOps 转发器配置(FORWARDER_NAME.conf 文件):

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:

sample.txt 文件应位于 /var/log/crowdstrike/falconhostclient 文件夹中。

标志配置

skip_seek_to_end(布尔值):此标志默认设置为 false,文件输入仅发送新的日志行作为输入。如果将此值设置为 true,则在转发器重启期间,系统会再次发送所有之前的日志行。这会导致日志重复。在某些情况下(例如,在中断期间),将此标志设置为 true 会很有帮助,因为重新启动转发器会再次发送丢失的日志行。

poll (bool):文件收集器使用 Tail 库检查文件系统中的任何更改。通过将此标志设置为 true,Tail 库将使用轮询方法,而不是默认的通知方法。

数据包数据

Google SecOps 转发器可以直接从网络接口捕获数据包,而不是日志条目。

Linux 系统

Google SecOps 转发器可以使用 Linux 上的 libcap 捕获数据包。如需详细了解 libcap,请参阅 libcap - Linux 手册页

捕获原始网络数据包并将其发送到 Google SecOps,而不是发送日志条目。此捕获仅限于本地接口。如需为您的系统启用数据包捕获,请与 Google SecOps 支持团队联系。

Google SecOps 使用捕获数据包(例如,端口 53,而不是 localhost)时使用的伯克利数据包过滤器 (BPF) 表达式来配置 Google SecOps 转发器。如需了解详情,请参阅 Berkeley 封包过滤器

Windows 系统

Google SecOps 转发器可以在 Windows 系统上使用 Npcap 捕获数据包。

捕获原始网络数据包并将其发送到 Google SecOps,而不是发送日志条目。此捕获仅限于本地接口。如需配置 Google SecOps 转发器以进行数据包捕获,请与 Google SecOps 支持团队联系。

数据包捕获 PCAP 转发器的要求:

  • 在 Microsoft Windows 主机上安装 Npcap。

  • 向 Google SecOps 转发器授予 root 或管理员权限,以监控网络接口。

  • 在 Npcap 安装中,启用 WinPcap 兼容模式。

如需配置 PCAP 转发器, Google Cloud 需要用于捕获数据包的接口的 GUID。 在您计划安装 Google SecOps 转发器的机器(服务器或侦听 span 端口的机器)上运行 getmac.exe,然后将输出发送给 Google SecOps。

或者,您可以修改配置文件。找到 PCAP 部分,然后将现有 GUID 值替换为通过运行 getmac.exe 获取的 GUID。

例如,以下是原始 PCAP 部分:

- 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

运行 getmac.exe 的输出:

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

修订后的 PCAP 部分以及新的 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

传输名称的 getmac.exe 输出以 \Device\Tcpip 开头,而类似的 pcap 部分以 \Device\NPF 开头。

来自 Kafka 主题的数据

Google SecOps 转发器支持直接从 Kafka 主题提取数据。您可以利用消费者群组的概念部署最多三个转发器,并从同一 Kafka 主题拉取数据,以实现高效的并行处理。如需了解详情,请参阅 Kafka。如需详细了解 Kafka 使用方群组,请参阅 Kafka 使用方

以下转发器配置展示了如何设置转发器,以从 Kafka 主题注入数据。

Linux

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
   

FORWARDER_NAME_auth.conf 文件

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

Windows

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

FORWARDER_NAME_auth.conf 文件

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

WebProxy 数据

Google SecOps 转发器可以直接从网络接口捕获 WebProxy 数据。

Linux

Google SecOps 转发器可以使用 Linux 上的 libcap 捕获 WebProxy 数据。如需详细了解 libcap,请参阅 libcap - Linux 手册页。如需为您的系统启用 WebProxy 数据捕获,请与 Google SecOps 支持团队联系。

按如下方式修改 Google SecOps 转发器配置(FORWARDER_NAME.conf 文件):

   - 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

转发器可以使用 Npcap 捕获 WebProxy 数据,并将其发送到 Google Cloud。

如需为您的系统启用 WebProxy 数据捕获,请与 Google SecOps 支持团队联系。

在运行 WebProxy 转发器之前,请按以下步骤操作:

  1. 在 Microsoft Windows 主机上安装 Npcap。在安装期间启用 WinPcap 兼容模式。

  2. 向转发器授予 root 或管理员权限,以监控网络接口。

  3. 获取用于捕获 WebProxy 数据包的接口的 GUID。

    在要安装 Google SecOps 转发器的机器上运行 getmac.exe,并将输出发送给 Google SecOps。或者,您也可以修改配置文件。找到 WebProxy 部分,然后将接口旁边显示的 GUID 替换为运行 getmac.exe 后显示的 GUID。

    按如下方式修改 Google SecOps 转发器配置 (FORWARDER_NAME.conf) 文件:

      - 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
    

在配置文件中配置关键属性

下表列出了转发器配置文件中使用的重要参数。

参数 说明
data_type 收集器可以收集和处理的日志数据类型。
元数据 用于替换全局元数据的元数据。
max_file_buffer_bytes 磁盘或文件缓冲区中可累积的最大字节数。默认值为 1073741824,即 1 GB。
max_memory_buffer_bytes 内存缓冲区中可累积的最大字节数。默认值为 1073741824,即 1 GB。
write_to_disk_dir_path 用于文件或磁盘缓冲区的路径。
write_to_disk_buffer_enabled 如果为 true,则使用磁盘缓冲区代替内存缓冲区。默认值为 false
batch_n_bytes 收集器可以累积的最大字节数,达到此字节数后,数据会进行批处理。默认值为 1048576,即 1 MB。
batch_n_seconds 收集器收集的数据进行批处理的秒数。默认值为 11 秒。
data_hint 收集器可以接收的数据格式(通常是描述格式的日志文件头)。

如需查看配置文件中使用的参数的完整列表,请参阅转发器配置字段收集器配置字段

数据压缩

默认情况下,日志压缩处于停用状态。启用日志压缩功能可能会减少带宽消耗。不过,启用日志压缩功能也可能会增加 CPU 使用率。根据您的环境和日志数据评估这种权衡。

如需启用日志压缩功能,请将 Google SecOps 转发器配置文件中的 compression 字段设置为 true,如以下示例所示:

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

FORWARDER_NAME_auth.conf 文件

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

磁盘缓冲

磁盘缓冲允许您将积压的消息缓冲到磁盘,而不是内存。

您可以配置自动内存缓冲,以在收集器之间使用动态共享缓冲区,从而更好地应对流量高峰。如需启用动态共享缓冲区,请在转发器配置中添加以下内容:

auto_buffer:
  enabled: true
  target_memory_utilization: 80

如果启用了自动磁盘缓冲,但未定义 target_memory_utilization,则使用默认值 70

如果您使用 Docker 运行转发器,我们建议您将卷独立于配置卷进行装载,以实现隔离。此外,每个输入都应与其自己的目录或卷隔离,以避免冲突。

配置示例

以下配置包括用于启用磁盘缓冲的语法:

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

正则表达式过滤条件

借助正则表达式过滤条件,您可以根据与原始日志数据匹配的模式来过滤日志。过滤条件采用 RE2 语法。过滤条件必须包含正则表达式,并视需要定义匹配时的行为。

匹配时的默认行为是 block。您可以使用 allow 行为指定过滤条件。如果您指定了 allow 过滤条件,则转发器会屏蔽与至少一个 allow 过滤条件不匹配的任何日志。

您可以定义任意数量的过滤条件。Block 过滤条件优先于 allow 过滤条件。

定义过滤器时,必须为其指定名称。活跃过滤器的名称将通过转发器运行状况指标报告给 Google SecOps。在配置根中定义的过滤条件与在收集器级层定义的过滤条件合并。如果名称有冲突,收集器级别过滤条件优先。如果未在根级别或收集器级别定义过滤条件,则行为是允许所有日志。

配置示例

在以下转发器配置中,与根过滤条件 (allow_filter) 不匹配的 WINEVTLOG 日志会被屏蔽。根据正则表达式,过滤条件仅允许优先级介于 0 到 99 之间的日志。但即便有 allow_filter,包含“foo”或“bar”的任何 NIX_SYSTEM 日志均会被阻止。这是因为过滤条件使用逻辑 OR。过滤器会一直触发,直到触发过滤器为止。

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

任意标签

标签用于使用键值对将自定义元数据附加到日志。您可以为整个转发器或转发器的特定收集器配置标签。如果两者都存在,则当键重叠时,收集器级标签会替换转发器级标签。

配置示例

在以下转发器配置中,“foo=bar”和“meow=mix”键值对都附加到 WINEVTLOG 日志,而“foo=baz”和“meow=mix”键值对会附加到 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

命名空间

您可以使用命名空间标签来标识来自不同网络段的日志,并解决重叠的 IP 地址冲突。 为转发器配置的任何命名空间都将与 Google SecOps 界面中的关联资产一起显示。您还可以使用 Google SecOps 搜索功能搜索命名空间。

如需了解如何在 Google SecOps 界面中查看命名空间,请参阅资产命名空间

配置示例

在以下转发器配置中,WINEVTLOG 日志将附加到 FORWARDER 命名空间,而 NIX_SYSTEM 日志将附加到 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

负载均衡和高可用性选项

您可以在转发器配置文件的 server 部分下配置 HTTP 服务器、负载均衡和高可用性选项。这些选项支持设置超时持续时间和所返回的状态代码,此类状态代码用于响应在容器调度器和基于编排的部署中收到的健康检查,以及从负载平衡器返回的健康检查。

使用以下网址路径进行运行状况、就绪性和活跃性检查。 <host:port> 值在转发器配置中定义。

  • http://<host:port>/meta/available:容器调度程序或编排器的活跃性检查
  • http://<host:port>/meta/ready:就绪性检查和负载平衡器健康检查

以下转发器配置是用于负载均衡和高可用性的配置示例:

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
配置路径 说明
server : graceful_timeout 转发器返回不佳的就绪性/健康检查结果并且继续接受新连接的时间量。这也是在收到停止信号和实际开始关闭服务器之间等待的时间。这可让负载均衡器有时间从池中移除转发器。
server : drain_timeout 转发器在关闭服务器之前等待活跃连接自行关闭的时间量。
server : http : port HTTP 服务器侦听来自负载均衡器的健康检查的端口号。必须介于 1024-65535 之间。
server : http : host 服务器应该侦听的 IP 地址或可解析为 IP 地址的主机名。如果为空,则默认值为本地系统 (0.0.0.0)。
server : http : read_timeout 用于微调 HTTP 服务器。通常保留默认设置即可,无需更改。允许用于读取整个请求(标头和正文)的最长时间量。您可以同时设置 read_timeout 和 read_header_timeout。
server : http : read_header_timeout 用于微调 HTTP 服务器。通常保留默认设置即可,无需更改。允许用于读取请求标头的最长时间量。读取标头后,连接的读取截止时间会重置。
server : http : write_timeout 用于微调 HTTP 服务器。通常保留默认设置即可,无需更改。允许发送响应的最长时间量。读取新请求标头时,此值会重置。
server : http : idle_timeout 用于微调 HTTP 服务器。通常保留默认设置即可,无需更改。启用空闲连接后等待下一个请求的最长时间量。如果 idle_timeout 为零,则使用 read_timeout 的值。如果两者均为零,则使用 read_header_timeout。
routes : meta : ready_status 在以下任一情况下,转发器准备好接受流量时返回的状态代码:
  • 从容器调度器或编排器接收就绪性检查。
  • 从传统负载均衡器接收健康检查。
routes : meta : unready_status 转发器未准备好接受流量时返回的状态代码。
routes : meta : available_status 收到活跃性检查且转发器可用时,转发器返回的状态代码。容器调度器或编排器通常会发送活跃性检查。

需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。