跳至主内容

转发器

转发器是独立代理程序,负责将日志数据传输至 安全数据湖 。通常作为后台服务持续运行,将日志数据实时传输至配置的 安全数据湖 目标。

转发器通过 安全数据湖 通过传输层安全性协议(TLS)连接,确保日志数据安全传输。同时采用API令牌认证机制,仅允许经授权的转发器接入您的环境。

安装与配置转发器

系统至少需配置一个转发器进行数据采集,但可通过部署多个转发器实现负载均衡或冗余容错。转发器必须通过TLS加密通道连接至您的环境,并使用API令牌完成身份验证,确保仅限授权转发器传输日志数据。

部署转发器需依次完成安装、启动操作,随后配置必要凭证以完成 安全数据湖 的注册流程,方可开始安全发送日志数据。

获取API令牌及主机名(数据采集)URL

创建用于转发器安装配置的API令牌:

  1. 点击屏幕右上角用户图标并选择 编辑个人资料 .

    DI_Sidecar_installation_1257545_en_1.png
  2. 点击屏幕右上角的 编辑令牌 按钮。

    DI_Sidecar_installation_1257545_en_2.png
  3. 输入令牌详细信息后点击 创建令牌 .

    DI_Sidecar_installation_1257545_en_3.png

获取用于相同用途的主机名(数据采集)URL:

  1. 登录 安全数据湖 控制台。

  2. 从主页URL中复制以下地址部分:

    https://***.gravityzone.bitdefender.com/welcome
  3. 将其与 ingest- 前缀拼接:

    ingest-***.gravityzone.bitdefender.com

安装转发器

转发器的分发包装和安装方式与 安全数据湖 服务器类似。您可以选择操作系统安装包、Docker或二进制安装方法来安装转发器。若计划通过OS安装包或二进制文件运行该工具,请确保您的操作系统已安装 Java 。更多信息请参阅 转发器安装 页面。

您可通过以下任一方式安装转发器:

  • 操作系统安装包方式:

    • DEB安装包 ——适用于基于Debian的发行版(如Ubuntu)。

    • RPM安装包 ——适用于基于Red Hat的发行版(如RHEL、CentOS或Fedora)。

  • Docker ——适用于容器化环境,转发器以托管容器形式运行。

  • 独立二进制文件 ——适用于手动安装或不使用包管理的自定义环境。

先决条件

为获得最佳性能,建议为转发器分配至少2个CPU核心(3 GHz)和4 GB内存。

二进制安装

要以二进制形式安装转发器,请下载二进制文件并在系统中手动安装。

要获取最新版转发器,请下载 此文件 并安装转发器。

注意

请使用在 获取API令牌和主机名(摄取)URL 步骤中获得的信息。

操作系统安装包方式

转发器最常见的安装方式是使用Linux操作系统软件包。您可以选择 DEBRPM 格式。

安装前请确保:

  • 系统已安装Java。支持的版本请参考 系统要求

  • 您拥有有效的TLS证书。

  • 您已从 安全数据湖 生成用于身份验证的API令牌。

通过DEB(Debian软件包)安装

要在基于Debian的Linux系统上使用DEB软件包安装转发器,请按以下步骤操作:

  1. 下载DEB软件包并安装所需依赖项。

    sudo apt-get install apt-transport-https openjdk-17-jdk-headless wget
    wget https://packages.graylog2.org/repo/packages/graylog-forwarder-repository_6-5_all.deb
    sudo dpkg -i graylog-forwarder-repository_6-5_all.deb
    sudo apt-get update
  2. 安装 安全数据湖 转发器软件包。

    sudo apt-get install graylog-forwarder
  3. 创建TLS证书并更新配置文件。

    sudo vi /etc/graylog/forwarder/forwarder.conf

    注意

    请使用 获取API令牌和主机名(摄取)URL 步骤中获得的信息。

  4. 启动 安全数据湖 转发器服务。

    sudo systemctl start graylog-forwarder.service
通过RPM(Red Hat包管理器)安装

要在基于Red Hat的Linux系统上使用RPM包安装转发器,请按照以下步骤操作:

  1. 安装Java。

    sudo yum install java-17-openjdk-headless
  2. 安装 安全数据湖 仓库配置。

    sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-forwarder-repository-6-5.noarch.rpm
  3. 安装 安全数据湖 转发器软件包。

    sudo yum install graylog-forwarder
  4. 创建TLS证书并更新配置文件。

    sudo vi /etc/graylog/forwarder/forwarder.conf

    注意

    使用在 获取API令牌和主机名(摄取)URL 步骤中获得的信息。

  5. 启动 安全数据湖 转发器服务:

    sudo systemctl start graylog-forwarder.service

通过Docker安装

转发器也提供Docker镜像。无论采用哪种安装方式,都必须创建数字证书以确保转发器与 安全数据湖 .

下载镜像请运行:

docker pull graylog/graylog-forwarder:<release-version>

注意

我们建议使用 最新稳定版本 .

运行容器时,必须提供以下环境变量:

注意

配置容器选项时,所有选项名称必须大写并以 GRAYLOG_ .

GRAYLOG_FORWARDER_SERVER_HOSTNAME
GRAYLOG_FORWARDER_GRPC_API_TOKEN

运行容器时还需将证书文件挂载为卷。

docker run \
  -e GRAYLOG_FORWARDER_SERVER_HOSTNAME=ingest-<服务器名称> \
  -e GRAYLOG_FORWARDER_GRPC_API_TOKEN=<API令牌> \
  -v /证书路径/cert.pem:/etc/graylog/forwarder/cert.pem \
  graylog/graylog-forwarder:<发布版本>

注意

请使用 获取API令牌和主机名(接收端)URL 步骤中获得的信息。

示例: Graylog转发器的Docker Compose配置

以下示例展示如何部署 安全数据湖 转发器,需配合Docker Compose及辅助的 .env 文件使用。

.env文件

# 转发器接收主机名由"ingest-"字符串加上安全数据湖集群域名组成(例如ingest-<您的账户>.datainsights.gravityzone.bitdefender.com)。
# 该值在安全数据湖的转发器设置向导中提供。[必填]
GRAYLOG_FORWARDER_SERVER_HOSTNAME=""
# 用于验证转发器的API令牌。
# 该值在安全数据湖的转发器设置向导中提供。[必填]
GRAYLOG_FORWARDER_GRPC_API_TOKEN=""
# 启用转发器通信的TLS加密。
# 生产环境请始终启用TLS。
GRAYLOG_FORWARDER_GRPC_ENABLE_TLS="true"

docker-compose.yml

services:
  forwarder:
    image: "graylog/graylog-forwarder:6.6";
    environment:
      GRAYLOG_FORWARDER_SERVER_HOSTNAME: 
"${GRAYLOG_FORWARDER_SERVER_HOSTNAME:?请在.env文件中配置GRAYLOG_FORWARDER_SERVER_HOSTNAME}"
      GRAYLOG_FORWARDER_GRPC_API_TOKEN: 
"${GRAYLOG_FORWARDER_GRPC_API_TOKEN:?请在.env文件中配置GRAYLOG_FORWARDER_GRPC_API_TOKEN}"
      GRAYLOG_FORWARDER_GRPC_ENABLE_TLS: "${GRAYLOG_FORWARDER_GRPC_ENABLE_TLS:-true}"
    ports:
      - "5044:5044/tcp"   # Beats
      - "5140:5140/udp"   # Syslog
      - "5140:5140/tcp"   # Syslog
      - "5555:5555/tcp"   # RAW TCP
      - "5555:5555/udp"   # RAW TCP
      - "12201:12201/tcp" # GELF TCP
      - "12201:12201/udp" # GELF UDP
      #- "10000:10000/tcp" # 自定义TCP端口
      #- "10000:10000/udp" # 自定义UDP端口
    volumes:
      - "forwarder-data:/var/lib/graylog-forwarder";
      #- "/自定义路径/jvm.options:/etc/graylog/forwarder/jvm.options";
    restart: "on-failure"

volumes:
  forwarder-data:

启动转发器

完成配置后启动转发器,以便设置向导能在下一步检测到它。

若通过操作系统包或Docker安装转发器,安装过程已包含启动命令,转发器应已自动运行。

若通过二进制文件安装,请按以下步骤启动:

  1. 打开终端窗口。

  2. 进入应用程序目录。

  3. 使用以下命令运行启动脚本:

    ./bin/graylog-forwarder run --configfile forwarder.conf

配置转发器

转发器设置向导

安全数据湖 内置转发器设置向导,可简化转发器配置及与环境的连接流程。

配置转发器需按以下步骤操作:

  1. 前往 企业版 > 转发器 .

    系统将显示 转发器 页面。

    DI_setup_forwarder_1319444_en_1.png
  2. 选择 新建转发器 开始 以启动向导。

    此时会弹出 新建转发器 窗口,默认选中 欢迎 选项卡。

  3. 欢迎 选项卡下,选择 开始配置 .

    DI_setup_forwarder_1319444_en_2.png
  4. 选择转发器 选项卡下,按照以下步骤操作:

    1. 选择 新建转发器 或选择最近安装的转发器,然后选择 配置所选转发器 .

      DI_setup_forwarder_1319444_en_5.png
    2. 1. 安装转发器 部分,选择 继续 .

      DI_setup_forwarder_1319444_en_3.png
    3. 2. 创建API令牌 部分,若已完成 获取API令牌和主机名(摄取)URL 下的步骤,请选择跳过此步骤。继续执行第5步。

      或者,输入 令牌名称 令牌有效期 ,然后选择 创建令牌 .

      DI_setup_forwarder_1319444_en_4.png
    4. 3. 配置转发器 部分,填写以下字段并选择 继续 :

      DI_setup_forwarder_1319444_en_6.png
      • forwarder_server_hostname - 必填。转发器接收主机名(例如, ngest-<your-account>.datainsights.gravityzone.bitdefender.com ).

      • forwarder_grpc_api_token - 用于验证转发器的API令牌。

    5. 4. 选择转发器 部分,选择您刚刚添加的转发器,并点击 配置所选转发器 .

  5. 配置转发器 部分,填写以下字段并点击 添加转发输入 .

    • 标题 - 输入一个描述性名称以标识此转发器。

    • 描述(可选) - 提供更多详细信息以帮助识别转发器并描述其用途。

    注意

    配置转发器 部分还包含 主机名 字段,该字段会自动填充。它显示转发器运行所在系统的主机名。

  6. 添加输入 选项卡下,按以下步骤操作:

    1. 选择 创建输入配置文件 .

      DI_setup_forwarder_1319444_en_7.png
    2. 为输入项填写标题和描述,并选择 添加输入 .

      DI_setup_forwarder_1319444_en_8.png
    3. 选择要创建的输入类型,然后选择 创建输入 .

      DI_setup_forwarder_1319444_en_9.png
    4. 填写以下字段以配置输入,并选择 创建输入 .

      DI_setup_forwarder_1319444_en_10.png
      • 输入类型 – 选择要创建的输入类型(例如Bitdefender GravityZone)。

      • 标题 – 输入描述性名称以标识此输入。

      • 绑定地址 – 指定输入监听的网络地址(例如 0.0.0.0127.0.0.1 ).

      • 端口 – 定义输入用于接收数据的TCP端口号。

      • 时区 – 设置消息时间戳的时区(例如 Etc/UTCAmerica/Chicago ).

      • 接收缓冲区大小(可选) – 指定网络连接接收缓冲区的字节大小。

      • 工作线程数(可选) – 定义处理传入连接的工作线程数量。

      • TLS证书文件(可选) – 安全连接所需的TLS证书文件路径。

      • TLS私钥文件(可选) – 与TLS证书关联的私钥文件路径。

      • 启用TLS – 为传入连接启用TLS加密以保障通信安全。

      • TLS密钥密码(可选) – 加密TLS密钥文件的密码(如适用)。

      • TLS客户端认证(可选) – 决定客户端是否必须使用TLS证书进行认证。

      • TLS客户端认证信任证书(可选) – 包含TLS认证可信客户端证书的文件或目录。

      • TCP保活 – 启用保活数据包以维持空闲TCP连接。

      • 启用批量接收(必须始终勾选) – 允许批量处理通过换行符分隔的接收消息。

      • 启用CORS – 为基于浏览器的请求启用跨域资源共享标头。

      • 最大HTTP分块大小(可选) – 处理传入请求体的最大HTTP分块字节数。

      • 空闲写入器超时(可选) – 关闭空闲客户端连接前的等待时间(秒,0表示禁用)。

      • 授权标头名称 – 用于授权的HTTP标头名称。事件推送通过该标头验证请求

      • 授权标头值 – 用于请求验证的预期授权头值(例如承载令牌)。Event Push使用该值验证其请求

      • 区域设置(可选) – 定义解析时间戳的区域设置(例如 enen_US ).

      • 使用完整字段名 – 启用完整通用事件格式(CEF)字段名以符合CEF规范。

    5. 选择 添加另一个输入 并重复上述步骤,或选择 保存输入 .

      DI_setup_forwarder_1319444_en_11.png
      DI_setup_forwarder_1319444_en_12.png
  7. 摘要 选项卡下,选择配置另一个转发器并重复上述步骤,或选择 退出配置 .

    DI_setup_forwarder_1319444_en_13.png

该转发器将出现在 转发器 列表中,位于 转发器 页面下。

DI_setup_forwarder_1319444_en_14.png

设置新的输入配置文件

输入配置文件作为模板供转发器使用,以确定要收集哪些数据以及如何将其发送至 安全数据湖 .

输入配置文件是可重复使用的配置,用于将来自不同源的日志数据收集的一个或多个输入分组。每个输入配置文件包含一组可应用于一个或多个转发器的输入配置,为环境中的数据收集管理提供一致且高效的方式。

输入配置文件通过以下方式简化大规模部署:

  • 在多个转发器之间标准化输入配置。

  • 为不同位置、系统或环境复用相同的输入定义。

  • 集中修改数据采集设置,无需手动配置每个转发器。

输入配置文件工作原理

创建转发器时需为其分配输入配置文件。该转发器随后使用配置文件中定义的输入项,从指定源(如Syslog、Beats或原始/纯文本)采集日志。

若多个转发器需采集同类数据(例如以下场景),可分配相同输入配置文件:

  • 多台主机的Windows事件日志

  • 多台路由器的Syslog流量

  • 不同区域服务器的Filebeat日志

注意

如需按业务单元或地理区域分离/组织数据流,可创建多个输入配置文件并分别分配。

创建新输入配置文件

创建步骤如下:

  1. 进入 系统 > 转发器 .

    SDL_input_profiles_1419152_en_1.png
  2. 选择页面左上角 输入配置文件 标签页,点击 新建输入配置文件 .

  3. 输入描述性标题和说明后,点击 创建 .

    SDL_input_profiles_1419152_en_3.png
  4. 选择 创建输入 以配置将分配给此配置文件的新输入项。

    注意

    您可以在 输入类型 .

    请为每个需要添加到配置文件的输入重复此步骤。

  5. 完成后,返回 系统 > 转发器 ,新建的输入配置文件将显示在 输入 表格中。

    SDL_input_profiles_1419152_en_4.png

编辑和删除输入配置文件

要编辑或删除输入配置文件,请前往 系统 > 转发器 ,然后从页面左上角选择 输入配置文件 选项卡。

要编辑输入配置文件的名称或描述,请点击 名称 列下的配置文件名称。

SDL_input_profiles_1419152_en_7.png

要进入配置窗口,请选择 编辑 按钮(位于 操作 列下)。

SDL_input_profiles_1419152_en_5.png

要删除输入配置文件,请在 选择操作 下方选择 操作 列,然后选择 删除 .

SDL_input_profiles_1419152_en_6.png

注意

删除输入配置文件时,从该配置文件创建的所有输入也将从已分配的任何转发器中移除。如果转发器正在使用该配置文件,相关输入将立即停止收集或转发数据。删除配置文件的操作不可撤销,因此在确认删除前请确保没有转发器依赖该配置文件。

监控转发器

当您的转发器连接到 安全数据湖 后,您可以监控其输入以跟踪活动和性能。这可以通过查看 安全数据湖 环境中的活跃转发器、使用REST API调用检查健康状态和输入详情,以及将转发器指标导出到Prometheus等监控工具来实现。

安全数据湖

中监控转发器 转发器 页面,请选择控制台右上角的 企业 菜单,然后选择 转发器 .

DI_monitor_forwarder_1418537_en_1.png

转发器页面列出了所有已添加到您的 安全数据湖 实例的转发器。每个转发器以表格形式显示,包含以下列组织的相关详细信息:

DI_setup_forwarder_1319444_en_14.png
  • 标题 – 转发器的唯一标识符。

  • 状态 – 显示当前连接状态。绿色 已连接 徽章表示转发器正在向您的云实例发送消息。

  • 描述 – 转发器的简短描述。

  • 主机名 – 转发器或转发器输入所安装系统的主机名。

  • 版本 – 转发器的版本号。

  • 输入配置 – 与转发器关联的输入配置。

  • 指标 – 显示当前消息速率(msg/s),用于验证活动状态。

    注意

    “指标”列中的活跃消息速率也表明转发器运行正常。

  • 操作 – 允许您编辑转发器或执行其他可用操作。

通过REST API调用监控转发器

转发器代理REST API允许您检查转发器的健康状态和输入,并导出Prometheus指标进行监控。要启用API,请按以下步骤更新转发器配置:

  1. 打开 forwarder.conf 文件。

  2. 添加以下行:

    forwarder_api_enabled = true

启用后,API将监听由forwarder_api_socket_path参数定义的Unix域套接字,除非使用 forwarder_api_tcp_bind_address 指定了TCP地址。您可以使用 curl 等工具查询端点并获取转发器信息。若不熟悉Unix套接字,请参阅 官方指南 了解使用详情。

检查转发器状态

要验证转发器的健康状态,请查询以下REST端点:

GET /api/health

成功响应将返回一个JSON对象,汇总转发器的整体健康状况、输入状态及上游连接情况。例如:

{ 
    "healthy": true,
    "inputs": { 
        "healthy": true,
        "running": 2,
        "failed": 0,
        "not running": 0
    },
    "upstream": { 
        "healthy": true 
    }
}

此例中所有组件均运行正常,两个配置的输入源均无异常运行。

获取特定转发器的输入源列表

要获取转发器上运行的输入源列表,请查询以下REST端点:

GET /api/inputs

成功响应将返回列出每个已配置输入源及其ID和标题的JSON对象。例如:

{ 
    "inputs": [ 
        { 
            "id": "5fc91564d44bfd2000249e8c", 
            "title": "随机输入"
        }, 
        { 
            "id": "5fc91550d44bfd2000249e74", 
            "title": "Beats输入" 
        } 
    ] 
}

可通过深入输入源配置文件并检查转发器部分来进一步确认消息接收状态。若无数据显示,请新建输入源。

点击输入源名称打开主配置文件可查看配置详情,该页面显示初始设置时定义的参数。

若输入源处于故障状态,则 /api/inputs 端点不会返回其ID或标题信息。

要深入了解转发器活动及节点健康状况,请点击节点上的 详情 按钮查看消息缓存(缓冲区)信息。日志中的消息数量代表转发器的磁盘存储队列,该队列临时存储消息以确保即使其他 安全数据湖 组件出现故障也不会丢失数据。

使用Prometheus指标导出监控转发器

转发器本身不提供查看内部指标的内置界面。需配置本地Prometheus容器作为指标接口,这些指标与传统 安全数据湖 指标类似,但以标准Prometheus格式导出。

配置Prometheus监控转发器的步骤如下:

  1. 下载 并启动Prometheus。

  2. 在主机上 安装Docker

  3. 创建Prometheus配置文件,例如:

    touch /tmp/prometheus.yml
  4. 将以下配置添加到文件中:

    全局配置:
      抓取间隔: 15秒
      抓取超时: 10秒
      评估间隔: 15秒
    
    告警配置:
      告警管理器:
        - 静态配置:
            - 目标: []
          协议: http
          超时: 10秒
          API版本: v1
    
    抓取配置:
      - 任务名称: prometheus
        保留时间戳: true
        抓取间隔: 15秒
        抓取超时: 10秒
        指标路径: /api/metrics/prometheus
        协议: http
        静态配置:
          - 目标:
              - host.docker.internal:9001
  5. 运行以下Docker命令启动Prometheus容器:

    docker run \
      -p 9090:9090 \
      -v /tmp/prometheus.yml:/etc/prometheus/prometheus.yml \
      prom/prometheus

容器运行后,Prometheus将开始从指定端点抓取转发器指标,使您能实时监控转发器性能。

转发器可靠性

为提高可靠性并确保在重大中断(无论是广泛性、持久性还是破坏性)期间的连续性,您可以部署额外转发器作为弹性策略的一部分。这需要整合适当的工具、流程和策略,以在不利条件下维持运营。

若您的环境存在中断风险,建议同时实施消息恢复机制和负载均衡,以保护数据流并维持性能。

消息恢复

转发器的磁盘日志提供内置缓存,确保网络中断期间的数据弹性。当与 安全数据湖 的连接中断时,传入消息会暂存于磁盘。

即使互联网连接不可用,转发器仍会持续接收并存储消息。连接恢复后,转发器将自动恢复正常运行,将日志中的缓存消息发送至 安全数据湖 .

负载均衡选项

随着部署规模扩大,数据吞吐量增加,意味着系统需处理更多请求。在大型或多转发器环境中,建议配置负载均衡器以均匀分配数据流量。这有助于管理高请求量、降低延迟并保持整体弹性。

负载均衡器会自动将请求路由至本地或外部数据中心内的健康节点,确保持续性能与容错能力。

版本控制

转发器采用 主版本.次版本 的版本控制方案,并独立于 安全数据湖 .

请定期将转发器更新至最新可用版本。