安装和配置转发器

支持的平台:

本文档介绍了如何在 Linux 和 Windows 系统上使用 Docker 安装和配置 Google 安全运营转发器。

转发器是一种软件组件,可安装在网络中的计算机或设备(例如服务器)上。它会收集日志数据,并将这些数据转发到您的 Google SecOps 实例。

您可以使用转发器将日志直接从您的环境发送到 Google SecOps,而无需针对不受支持的日志类型使用云存储分区或第三方 API。转发器可用作可立即部署的解决方案,无需手动与提取 API 集成。

Google SecOps 提供了一个 Docker 容器,用于安全地部署转发器。您可以在物理机或虚拟机上运行和管理 Docker 容器。

系统要求

下面是一些常规建议。如需了解与您的系统相关的建议,请与 Google SecOps 支持团队联系。

Linux 系统

各种 Linux 发行版(例如 Debian、Ubuntu、Red Hat 和 Suse)都支持转发器。为了获得最佳性能,建议使用 Docker 版本 20.10.21 或更高版本。

  • RAM:对于 Google SecOps 接受用于提取的每种收集的数据类型,都需要 1 GB RAM。例如,如果您指定了四个不同的收集器,则需要 4 GB RAM 才能收集这四个收集器的数据。

  • CPU:两个 CPU 足以处理所有数据类型的每秒最多 10,000 个事件 (EPS)。如果您预计转发器处理的 EPS 超过 10,000,请分配 4 到 6 个 CPU。

  • 磁盘:无论转发器处理多少数据,建议分配 20 GB 的磁盘空间。

Windows 系统

Microsoft Windows Server 2022 支持转发器。为了获得最佳性能,建议使用 Docker 版本 20.10.21 或更高版本。

  • RAM:对于 Google SecOps 接受用于提取的每种收集数据类型,都需要 1.5 GB RAM。例如,如果您指定了四个不同的收集器,则需要 6 GB RAM 才能收集这四个收集器的数据。

  • CPU:两个 CPU 足以处理所有数据类型的每秒最多 10,000 个事件 (EPS)。如果您预计转发器处理的 EPS 超过 10,000,请分配 4 到 6 个 CPU。

  • 磁盘:建议为 20 GB 的磁盘空间,无论转发器处理多少数据。

准备工作

在开始实现转发器之前,请考虑以下事项。

Google IP 地址范围

配置转发器时,您可能需要调整涉及指定 IP 地址范围的防火墙设置。Google API 和服务使用的默认网域 IP 地址范围是动态分配的,并且经常变化。如需了解详情,请参阅获取 Google IP 地址范围

验证防火墙配置

如果您的转发器容器位于任何防火墙或经过身份验证的代理后面,您需要开放对以下主机的访问权限:

连接类型 目标 端口
TCP malachiteingestion-pa.googleapis.com 443
TCP asia-northeast1-malachiteingestion-pa.googleapis.com 443
TCP asia-south1-malachiteingestion-pa.googleapis.com 443
TCP asia-southeast1-malachiteingestion-pa.googleapis.com 443
TCP australia-southeast1-malachiteingestion-pa.googleapis.com 443
TCP europe-malachiteingestion-pa.googleapis.com 443
TCP europe-west2-malachiteingestion-pa.googleapis.com 443
TCP europe-west3-malachiteingestion-pa.googleapis.com 443
TCP europe-west6-malachiteingestion-pa.googleapis.com 443
TCP europe-west9-malachiteingestion-pa.googleapis.com 443
TCP europe-west12-malachiteingestion-pa.googleapis.com 443
TCP me-central1-malachiteingestion-pa.googleapis.com 443
TCP me-central2-malachiteingestion-pa.googleapis.com 443
TCP me-west1-malachiteingestion-pa.googleapis.com 443
TCP northamerica-northeast2-malachiteingestion-pa.googleapis.com 443
TCP southamerica-east1-malachiteingestion-pa.googleapis.com 443
TCP accounts.google.com 443
TCP gcr.io 443
TCP cloud.google.com/artifact-registry 443
TCP oauth2.googleapis.com 443
TCP storage.googleapis.com 443

规划您的实现

在开始配置转发器之前,请先规划您的实现。这有助于您将数据源和配置属性与安全目标、基础架构功能和可伸缩性要求保持一致。

确定要提取的数据

从以下选项中确定与您的转发器最相关的数据源:

  • Splunk:如果您已经在使用 Splunk 进行日志管理,则非常适合。

  • Syslog:适用于各种设备的系统日志和应用日志。

  • 文件:灵活地提取任何日志文件。

  • 数据包:通过捕获原始流量,提供深入的网络可见性。

  • Kafka:非常适合从分布式系统中进行大量实时日志聚合。

  • WebProxy:非常适合深入了解网站流量和用户行为。

限制

数据 Feed 的日志行大小上限为 4 MB。

确定配置

在安装转发器之前,请确定以下关键属性,以确保成功实现。

数据压缩

数据或日志压缩可以降低将日志传输到 Google SecOps 时的网络带宽消耗。不过,这可能会导致 CPU 使用率增加。在节省带宽和降低 CPU 使用率之间取得最佳平衡取决于多个因素,例如日志类型、数据的可压缩性、可用的 CPU 资源以及网络带宽限制。

例如,基于文本的日志通常可以很好地压缩,可以在降低 CPU 使用率的情况下显著节省带宽,而加密数据或二进制数据可能无法高效压缩,并且可能会导致 CPU 使用率更高。

日志压缩默认处于停用状态。根据您的具体环境和日志数据的性质评估权衡。

磁盘缓冲

建议启用磁盘缓冲。磁盘缓冲允许您将积压的消息缓冲到磁盘,而不是内存,以防转发器或主机崩溃时数据丢失。不过,启用磁盘缓冲会影响性能。

如果停用磁盘缓冲,转发器会为每种日志类型(例如,每个连接器)分配 1 GB 的内存 (RAM)。磁盘缓冲区允许的内存上限为 4 GB。

正则表达式过滤条件

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

任意标签

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

命名空间

您可以使用命名空间标签来标识来自不同网络段的日志,并解决重叠的 IP 地址冲突。您可以为整个转发器或在转发器的特定收集器中配置命名空间标签。如果同时存在这两者,则收集器级命名空间会替换转发器级命名空间。

日志类型

Google SecOps 支持多种日志类型。如需查看完整列表,请参阅支持的数据集

负载均衡和高可用性选项

只有 syslog 集合类型支持负载均衡。

转发器可以部署在数据源与转发器实例之间安装了第 4 层负载均衡器的环境中。这样,您就可以在多个转发器之间分配日志收集,在发生故障时通过将日志重定向到其他转发器来提高可靠性。

转发器有一个内置 HTTP 服务器,该服务器会响应来自负载平衡器的健康检查,并防止在启动和关闭期间丢失日志。您可以配置 HTTP 服务器、负载均衡和高可用性选项,以指定健康检查的超时时长和状态代码。此配置与基于容器的部署和负载平衡器兼容。

设置 说明
正常超时 转发器在响应健康检查时返回 unready 状态后,接受新连接的时间量。这也是在收到停止信号和实际开始关闭服务器之间等待的时间。这可让负载均衡器有时间从池中移除转发器。

有效值以秒为单位。例如,如需指定 10 秒,请输入 10.。不允许使用小数值。

默认值:15 秒
排空超时 转发器在关闭服务器之前等待活跃连接自行关闭的时间量。例如,如需指定 5 秒,请输入 5.。不允许使用小数值。

默认值:10 秒
Port(端口) HTTP 服务器侦听来自负载均衡器的健康检查的端口号。该值必须介于 1,024 到 65,535 之间。

默认值: 8080
IP 地址或主机名 服务器应该监听的 IP 地址或可解析为 IP 地址的主机名。

默认值:0.0.0.0(本地系统)
读取超时 用于微调 HTTP 服务器。通常保留默认设置即可,无需更改。允许用于读取整个请求(标头和正文)的最长时间。您可以同时设置读取超时字段和读取标头超时字段。

默认值:3 秒
读取标头超时 用于微调 HTTP 服务器。通常保留默认设置即可,无需更改。允许用于读取请求标头的最长时间。读取标头后,连接的读取截止时间会重置。

默认值:3 秒
写入超时 用于微调 HTTP 服务器。通常保留默认设置即可,无需更改。允许发送响应的最长时间。读取新请求标头时,此值会重置。

默认值:3 秒
空闲超时 用于微调 HTTP 服务器。通常保留默认设置即可,无需更改。启用空闲连接后等待下一个请求的最长时间。如果 idle_timout 字段设置为零,则使用 read_timout 字段的值。如果两者均为零,则使用读取标头超时 字段。

默认值:3 秒
可用状态代码 收到活跃性检查且转发器可用时,转发器返回的状态代码。容器调度器和编排器通常会发送活跃性检查。

默认值:204
“准备就绪”状态代码 在以下任一情况下,转发器准备好接受流量时返回的状态代码:
  • 从容器调度器或编排器接收就绪性检查。
  • 从负载均衡器接收健康检查。
默认值:204
“未就绪”状态代码 转发器未准备好接受流量时返回的状态代码。

默认值:503

第 1 步:定义转发器配置

每个部署的转发器都需要一个转发器配置文件。转发器配置文件指定了将数据传输到 Google SecOps 实例的设置。我们建议您为每个主机生成新的配置文件,以便清楚地区分与每个主机关联的收集器。

Google Cloud 会使用每个转发器实例的特定元数据自定义这些配置文件。您可以修改这些文件以满足您的具体要求,并添加有关您要注入的日志类型的详细信息。

您可以通过界面、API 或手动生成转发器配置文件。

  • 该界面提供了用于配置转发器的图形界面,是创建转发器配置的推荐方法。这是最简单的上手方式,无需任何编程。如需使用 Google SecOps 界面下载配置文件,请参阅通过 Google SecOps 界面管理转发器配置

  • 该 API 提供了一种程序化方式来配置转发器。如需程序化地下载转发器配置,请参阅 Forwarder Management API

  • 您可以手动创建配置文件,并向其中添加配置选项。我们建议使用界面方法生成配置文件,以确保准确性并尽可能减少潜在错误。如需手动生成该文件,请参阅手动管理转发器配置文件

第 2 步:安装 Docker

本部分介绍了如何在系统上安装 Docker。

Linux 系统

Docker 是开源的,所有必要的文档都可以从开源 Docker 社区获取。如需了解 Docker 安装说明,请参阅安装 Docker Engine

如需检查 Docker 是否已正确安装在您的系统上,请执行以下命令(需要提升权限):

   docker ps
  

以下响应表明 Docker 已正确安装:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

Windows 系统

以管理员权限启动 Windows PowerShell,然后按照以下步骤检查与 Google Cloud 的网络连接:

  1. 点击开始

  2. 输入 PowerShell,然后右键点击 Windows PowerShell

  3. 点击以管理员身份运行

  4. 运行以下命令:

    C:\> test-netconnection <host> -port <port>
    

    命令输出指示 TcpTestSucceeded 状态为 true

    示例:

    C:\> test-netconnection malachiteingestion-pa.googleapis.com -port 443
    ComputerName     :  malachiteingestion-pa.googleapis.com
    RemoteAddress    : 198.51.100.1
    RemotePort       : 443
    InterfaceAlias   : Ethernet
    SourceAddress    : 203.0.113.1
    TcpTestSucceeded : True
    

如需安装 Docker,请在 Windows 服务器上执行以下操作。

  1. 启用 Microsoft Windows 容器功能:

    Install-WindowsFeature containers -Restart
    
  2. 在 PowerShell 管理员模式下执行以下命令以安装 Docker CE:

    Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/microsoft/Windows-Containers/Main/helpful_tools/Install-DockerCE/install-docker-ce.ps1" -o install-docker-ce.ps1
    
    .\install-docker-ce.ps1
    
    
  3. 运行命令 docker ps 来测试 Docker 命令行界面,该命令会返回正在运行的容器的列表。如果 Docker 未正确安装,系统会显示错误消息。

    如需了解详情,请参阅使用入门:为容器准备 Windows

    对于企业部署,请安装 Mirantis Container Runtime(也称为 Docker EE)。

第 3 步:安装转发器

本部分介绍了如何使用 Docker 容器安装转发器。

第 3a 步:将配置文件移至转发器目录

转发器安装流程的第一步是将必要的配置文件放置在指定的转发器目录中。

Linux 系统

请按以下步骤将配置文件放置在转发器目录中:

  1. 使用终端连接到 Linux 转发器主机。

  2. 将目录更改为运行 Docker 容器的主目录。

  3. 创建一个目录以存储转发器配置文件。

      mkdir /opt/chronicle/'CONFIG'
    

    您可以将目录名称 CONFIG 替换为您选择的任意名称。确保您在运行 docker run 命令时使用相同的目录名称。

  4. 更改目录。

      cd /opt/chronicle/config
    

  5. 传输文件后,确保配置文件位于 /opt/chronicle/config 目录中。

      ls -l
    

Windows 系统

创建一个 C:\config 文件夹,并将配置文件放入其中。您可以将文件夹名称 config 替换为您选择的任意名称。确保在运行 docker run 命令时使用相同的文件夹名称。

第 3b 步:运行转发器

将配置文件放置在指定的转发器目录中后,您可以启动转发器或升级到最新版本的 Google SecOps 容器。

如果要升级容器,请通过执行以下命令清理之前的所有 Docker 运行。

      docker stop 'cfps'
    

      docker rm 'cfps'
    

在示例中,Docker 容器名称为 cfps

如需首次启动转发器或升级到最新版本的 Google SecOps 容器,请执行以下操作:

  1. 从 Google Cloud 获取最新的 Docker 映像:

    Linux 系统:

        docker pull gcr.io/chronicle-container/cf_production_stable
    

    Windows 系统:

      docker pull gcr.io/chronicle-container/cf_production_stable_windows
    
  2. 从 Docker 容器启动转发器:

    Linux 系统:

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

    Windows 系统:

      docker run `
        --detach `
        --name cfps `
        --restart=always `
        --log-opt max-size=100m `
        --log-opt max-file=10 `
        -p 0.0.0.0:10515-10520:10515-10520/udp `
        -v C:\config\:C:/opt/chronicle/external `
        gcr.io/chronicle-container/cf_production_stable_windows
    

--log-opt 选项自 Docker 1.13 起可用。这些选项可限制容器日志文件的大小,并且只要您使用的 Docker 版本支持这些选项,则必须使用这些选项。

管理转发器

以下部分介绍了如何管理转发器。

查看转发器日志

  • 如需查看转发器日志,请执行以下命令:

    docker logs cfps
    
  • 如需查看存储日志的文件的路径,请执行以下命令:

    docker inspect --format='{{.LogPath}}' CONTAINER_NAME
    
  • 如需查看实时运行日志,请执行以下命令:

    docker logs cfps -f
    
  • 如需将日志存储在文件中,请执行以下命令:

    docker logs cfps &> logs.txt
    

卸载转发器

以下 Docker 命令可帮助您停止、卸载或移除转发器。

  • 如需停止或卸载转发器容器,请执行以下命令:

    docker stop cfps
    
  • 如需移除转发器容器,请执行以下命令:

    docker rm cfps
    

更新转发器

转发器由两个组件组成,每个组件都有以下更新流程:

  • 转发器软件包:此组件会自动更新,无需重启。

  • 转发器 Docker 映像:此组件的更新是手动执行的。您需要停止当前的转发器实例并启动一个新实例,如第 3b 步中所述。

适用于特定数据集的转发器提取指南

如需了解如何使用转发器提取特定数据集,请参阅以下内容: