转发器
转发器是独立代理程序,负责将日志数据传输至 安全数据湖 。通常作为后台服务运行,持续将日志数据流式传输至配置的 安全数据湖 目标。
转发器通过传输层安全协议(TLS)连接至 安全数据湖 以确保日志数据安全传输。同时采用API令牌认证机制,仅允许授权转发器接入您的环境。
安装与配置转发器
至少需配置一个转发器进行数据摄取,但可通过配置多个转发器实现负载均衡或冗余。为确保正常运行,转发器必须通过传输层安全协议(TLS)加密连接至您的环境,并使用API令牌进行身份验证,从而确保仅授权转发器可传输日志数据。
配置转发器需先完成安装、启动,随后配置必要凭证以完成在 安全数据湖 并开始安全地发送日志数据。
获取API令牌和主机名(接收)URL
创建一个将在转发器安装和配置过程中使用的API令牌:
-
选择屏幕右上角的用户图标并选择 编辑个人资料 .
-
选择 编辑令牌 屏幕右上角的按钮。
-
输入令牌详细信息并选择 创建令牌 .
获取将用于相同目的的主机名(接收)URL:
-
登录到您的 安全数据湖 控制台。
-
从主页URL中复制这部分地址:
https://***.gravityzone.bitdefender.com/welcome -
将其附加到
ingest-前缀:ingest-***.gravityzone.bitdefender.com
安装转发器
转发器的分发包装和安装方法与 安全数据湖 服务器类似。您可以选择操作系统软件包、Docker或二进制安装方法来安装转发器。如果您计划在操作系统软件包或二进制文件上运行该工具,请确保 Java 已安装在您的操作系统上。详见 转发器安装 页面获取更多信息。
您可以通过以下任一方式安装转发器:
-
操作系统包安装:
-
DEB包 ——适用于基于Debian的发行版(如Ubuntu)。
-
RPM包 ——适用于基于Red Hat的发行版(如RHEL、CentOS或Fedora)。
-
-
Docker ——适用于容器化环境,转发器以托管容器形式运行。
-
独立二进制文件 ——适用于手动安装或不使用包管理的自定义环境。
先决条件
为获得最佳性能,建议为转发器分配至少2个CPU核心(3 GHz)和4 GB内存。
二进制安装
要以二进制形式安装转发器,请下载二进制文件并手动安装到系统中。
要获取最新版转发器,请下载 此文件 并安装转发器。
注意
请使用在 获取API令牌和主机名(摄取)URL 步骤中获得的信息。
操作系统包安装
转发器最常见的安装方式是使用Linux操作系统包。您可以选择
DEB
或
RPM
格式。
安装前请确保:
-
系统已安装Java。支持的版本请参考 系统要求 。
-
您拥有有效的TLS证书。
-
您已从 安全数据湖 获取用于认证的API令牌。
通过DEB(Debian包)安装
在基于Debian的Linux系统上使用DEB包安装转发器,请按以下步骤操作:
-
下载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
-
安装 安全数据湖 转发器包。
sudo apt-get install graylog-forwarder
-
创建TLS证书并更新配置文件。
sudo vi /etc/graylog/forwarder/forwarder.conf
注意
使用在 获取API令牌和主机名(摄取)URL 步骤中获得的信息。
-
启动 安全数据湖 转发器服务。
sudo systemctl start graylog-forwarder.service
通过RPM(红帽包管理器)安装
在基于Red Hat的Linux系统上使用RPM包安装转发器,请按以下步骤操作:
-
安装Java。
sudo yum install java-17-openjdk-headless
-
安装 安全数据湖 仓库配置文件。
sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-forwarder-repository-6-5.noarch.rpm
-
安装 安全数据湖 转发器软件包。
sudo yum install graylog-forwarder
-
创建TLS证书并更新配置文件。
sudo vi /etc/graylog/forwarder/forwarder.conf
注意
请使用在 获取API令牌和主机名(接收端)URL 步骤中获得的信息。
-
启动 安全数据湖 转发器服务:
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安装转发器,启动命令已包含在安装流程中,转发器应已自动运行。
若通过二进制文件安装转发器,请按以下步骤启动:
-
打开终端窗口。
-
进入应用程序目录。
-
执行以下命令运行启动脚本:
./bin/graylog-forwarder run --configfile forwarder.conf
配置转发器
转发器设置向导
安全数据湖 内置转发器设置向导,可简化转发器配置及环境连接流程。
配置转发器请按以下步骤操作:
-
前往 企业版 > 转发器 .
系统将显示 转发器 管理页面。
-
选择 新建转发器 或 开始使用 以启动向导。
此时将弹出 新建转发器 窗口,默认选中 欢迎 选项卡。
-
在 欢迎 选项卡下,选择 开始配置 .
-
在 选择转发器 选项卡中,按以下步骤操作:
-
选择 启动新转发器 或选择最近安装的转发器并点击 配置所选转发器 .
-
在 1. 安装转发器 部分,点击 继续 .
-
在 2. 创建API令牌 部分,若已完成 获取API令牌和主机名(接收端)URL 的步骤,请选择跳过此步骤。直接继续第5步。
或者,输入 令牌名称 及 令牌有效期 后,点击 创建令牌 .
-
在 3. 配置转发器 部分,填写以下字段并点击 继续 :
-
forwarder_server_hostname - 必填。转发器接收主机名(例如:
ngest-<您的账户>.datainsights.gravityzone.bitdefender.com). -
forwarder_grpc_api_token - 用于验证转发器身份的API令牌。
-
-
在 4. 选择转发器 步骤中,选择您刚添加的转发器,并点击 配置所选转发器 .
-
-
在 配置转发器 部分,填写以下字段并点击 添加转发输入 .
-
标题 - 输入描述性名称以标识此转发器。
-
描述(可选) - 提供额外细节以帮助识别转发器并描述其用途。
注意
该 配置转发器 部分还包含 主机名 字段,该字段会自动填充,显示运行转发器系统的主机名。
-
-
在 添加输入 选项卡下,按以下步骤操作:
-
选择 创建输入配置文件 .
-
为输入输入标题和描述,并选择 添加输入 .
-
选择要创建的输入类型并点击 创建输入 .
-
填写以下字段以配置输入,然后点击 创建输入 .
-
输入类型 – 选择要创建的输入类型(例如:Bitdefender GravityZone)。
-
标题 – 输入描述性名称以标识此输入。
-
绑定地址 – 指定输入监听的网络地址(例如:
0.0.0.0或127.0.0.1). -
端口 – 定义输入接收数据所用的TCP端口号。
-
时区 – 设置消息时间戳的时区(例如:
Etc/UTC或America/Chicago). -
接收缓冲区大小(可选) – 指定网络连接接收缓冲区的字节大小。
-
工作线程数(可选) – 定义处理传入连接的工作线程数量。
-
TLS证书文件(可选) – 安全连接所用的TLS证书文件路径。
-
TLS私钥文件(可选) – 与TLS证书关联的私钥文件路径。
-
启用TLS – 为传入连接启用TLS加密以保障通信安全。
-
TLS密钥密码(可选) – 加密TLS密钥文件的密码(如适用)。
-
TLS客户端认证(可选) – 决定客户端是否必须使用TLS证书进行认证。
-
TLS客户端认证信任证书(可选) – 包含TLS认证可信客户端证书的文件或目录。
-
TCP保活 – 启用保活数据包以维持空闲TCP连接。
-
启用批量接收(必须始终勾选) – 允许批量处理通过换行符分隔的接收消息。
-
启用CORS – 为基于浏览器的请求启用跨域资源共享头。
-
最大HTTP分块大小(可选) – 处理传入请求体的最大HTTP分块字节数。
-
空闲写入超时(可选) – 关闭空闲客户端连接前的等待时间(秒,0表示禁用)。
-
授权头名称 – 用于授权的HTTP头名称。事件推送通过该头验证请求。
-
授权头值 – 用于请求验证的预期授权头值(如持有者令牌)。事件推送通过该值验证请求。
-
区域设置(可选) – 定义解析时间戳的区域设置(例如
en或en_US). -
使用完整字段名 ——启用完整的通用事件格式(CEF)字段名称以确保符合CEF规范。
-
-
选择 添加另一个输入 并重复上述步骤,或选择 保存输入 .
-
-
在 摘要 选项卡下,选择配置另一个转发器并重复上述步骤,或选择 退出配置 .
该转发器将出现在 转发器 列表中,位于 转发器 页面下。
设置新的输入配置文件
输入配置文件作为模板供转发器使用,以确定收集哪些数据以及如何将数据发送至 安全数据湖 .
输入配置文件是一种可重复使用的配置,用于将来自不同源的一个或多个日志数据收集输入进行分组。每个输入配置文件包含一组可应用于一个或多个转发器的输入配置,从而提供一种一致且高效的方式来管理整个环境中的数据收集。
输入配置文件通过以下方式简化大规模部署:
-
在多个转发器间标准化输入配置。
-
为不同位置、系统或环境复用相同的输入定义。
-
轻松在一处修改数据收集设置,而无需手动配置每个转发器。
输入配置文件的工作原理
创建转发器时,您需要为其分配一个输入配置文件。随后,转发器将使用该配置文件中定义的输入从配置的源(例如Syslog、Beats或原始/纯文本)收集日志。
若需采集相同类型数据(例如以下场景),可将同一输入配置文件分配给多个转发器:
-
从多台主机收集Windows事件日志。
-
从多台路由器采集Syslog流量。
-
从不同区域的服务器获取Filebeat日志。
注意
如需按业务单元或地理区域分离/组织数据流,可创建多个输入配置文件并分别分配。
创建新输入配置文件
请按以下步骤创建新输入配置文件:
-
前往 系统 > 转发器 .
-
选择页面左上角的 输入配置文件 标签页,然后选择 新建输入配置文件 .
-
输入配置文件的描述性标题和说明,然后选择 创建 .
-
选择 创建输入 以新建并配置将分配给此配置文件的输入项。
注意
所有兼容输入类型列表及配置说明详见 输入类型 .
需添加至该配置文件的每个输入项均需重复此步骤。
-
完成后返回 系统 > 转发器 。新建的输入配置文件将显示在 输入 表格下方。
编辑和删除输入配置文件
要编辑或删除输入配置文件,请前往 系统 > 转发器 ,然后从页面左上角选择 输入配置文件 标签页。
要编辑输入配置文件的名称或描述,请点击 名称 列下的配置文件名称。
要进入配置窗口,请选择 编辑 按钮(位于 操作 列下方)。
要删除输入配置文件,请选择 选择操作 (位于 操作 列下方),然后选择 删除 .
注意
删除输入配置文件时,所有基于该配置文件创建的输入项也会从已分配的转发器中移除。若转发器正在使用该配置文件,相关输入项将立即停止数据收集或转发。删除操作不可撤销,请确认无转发器依赖此配置文件后再执行删除。
监控转发器
当转发器成功连接至 安全数据湖 后,您可监控其输入活动与性能表现。具体方式包括:查看 安全数据湖 环境中的活跃转发器、通过REST API调用检查健康状态与输入详情,以及将转发器指标导出至Prometheus等监控工具。
在 安全数据湖
中监控转发器 要访问 转发器 页面,请选择控制台右上角的 企业版 菜单并选择 .
。转发器页面会列出所有已添加到 安全数据湖 实例的转发器。每个转发器以表格形式展示,包含以下分类字段的详细信息:
-
标题 – 转发器的唯一标识符。
-
状态 – 显示当前连接状态。绿色 已连接 徽章表示转发器正在向云实例发送消息。
-
描述 – 转发器的简要说明。
-
主机名 – 转发器或转发器输入项所在系统的主机名。
-
版本 – 转发器的版本号。
-
输入配置文件 – 与转发器关联的输入配置文件。
-
指标 – 显示当前消息速率(msg/s),有助于验证活动状态。
注意
“指标”列中的活跃消息速率也表明转发器运行正常。
-
操作 – 允许您编辑转发器或执行其他可用操作。
使用REST API调用监控转发器
转发器代理REST API允许您检查转发器的健康状态和输入,并导出Prometheus指标进行监控。要启用API,请按以下步骤更新转发器配置:
-
打开
forwarder.conf文件。 -
添加以下行:
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
成功响应将返回一个JSON对象,其中列出每个已配置的输入及其ID和标题。例如:
{
"inputs": [
{
"id": "5fc91564d44bfd2000249e8c",
"title": "随机"
},
{
"id": "5fc91550d44bfd2000249e74",
"title": "Beats"
}
]
}
您可以通过深入输入配置文件并检查转发器部分来进一步探索输入详情,确保其正在接收消息。如果看不到数据,请创建新输入。
要查看配置详情,请点击输入名称打开其主配置文件——该页面显示您在初始设置时定义的参数。
如果输入处于故障状态,
/api/inputs
端点不会返回其ID或标题的任何信息。
如需深入了解转发器活动和节点健康状况,请选择节点上的 详情 按钮查看消息缓存(缓冲区)信息。日志中的消息数量代表转发器的磁盘存储队列,该队列临时保存消息以确保即使其他 安全数据湖 组件出现问题也不会丢失数据。
使用Prometheus指标导出监控转发器
转发器本身不提供内置界面来查看内部指标。要访问这些信息,您可以配置本地Prometheus容器作为转发器指标的接口。这些指标与传统 安全数据湖 指标类似,但以标准Prometheus格式导出。
要为转发器监控设置Prometheus,请按以下步骤操作:
-
下载 并启动Prometheus。
-
在您的机器上 安装Docker。
-
创建Prometheus配置文件,例如:
touch /tmp/prometheus.yml
-
在文件中添加以下配置:
global: scrape_interval: 15s scrape_timeout: 10s evaluation_interval: 15s alerting: alertmanagers: - static_configs: - targets: [] scheme: http timeout: 10s api_version: v1 scrape_configs: - job_name: prometheus honor_timestamps: true scrape_interval: 15s scrape_timeout: 10s metrics_path: /api/metrics/prometheus scheme: http static_configs: - targets: - host.docker.internal:9001 -
运行以下Docker命令启动Prometheus容器:
docker run \ -p 9090:9090 \ -v /tmp/prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus
容器运行后,Prometheus将开始从指定端点抓取转发器指标,使您能够实时监控转发器性能。
转发器可靠性
为提高可靠性并确保在重大中断(无论是广泛性、持久性还是破坏性事件)期间的连续性,您可以通过部署额外转发器作为弹性策略的一部分。这需要整合适当的工具、流程和策略,以在不利条件下维持运营。
若您的环境存在中断风险,建议同时实施消息恢复机制和负载均衡,以保护数据流并保持性能。
消息恢复
转发器的磁盘日志提供内置缓存功能,确保在网络中断期间的数据弹性。当与 安全数据湖 的连接中断时,传入消息会暂存于磁盘中。
即使互联网连接不可用,转发器仍会持续接收并存储消息。一旦连接恢复,转发器将自动恢复正常运行,将日志中的缓存消息发送至 安全数据湖 .
负载均衡选项
随着部署规模扩大,数据吞吐量增加,意味着系统需处理更多请求。在大型或多转发器环境中,建议配置负载均衡器以均匀分配数据流量。这有助于管理高请求量、降低延迟并保持整体弹性。
负载均衡器会自动将请求路由至本地或外部数据中心内的健康节点,确保持续性能与容错能力。
版本控制
转发器采用
主版本.次版本
的版本控制方案,其发布独立于
安全数据湖
.
请定期将转发器更新至最新可用版本。