跳至主内容

边车

安全数据湖 边车是一个轻量级的日志收集器配置管理系统。它提供集中化框架来部署、配置和管理跨多台主机的日志收集器(如Winlogbeat、Filebeat和NXLog),从而简化分布式环境中的日志收集并确保配置一致性。

边车架构

安全数据湖 节点作为管理日志收集器配置的中央枢纽。边车守护进程通过REST API定期获取每个目标的最新配置。在首次运行或检测到配置变更时,边车会生成必要的后端配置文件并重启受影响的日志收集器。所有收集器配置均通过 安全数据湖 网页界面集中管理,确保配置一致性和简化运维。

边车可在受支持的消息生产设备上以服务形式(Windows主机)或守护进程形式(Linux主机)运行。

log collector diagram.png

安装边车

请按以下步骤安装并配置边车:

1. 在 安全数据湖

中需完成以下步骤 安全数据湖 以创建并配置边车:

1.1 设置输入

安装边车前, 新建Beats输入以接收来自Beats采集器的数据,并 将其配置 为通过 5044端口 .

1.2 创建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

将API服务器令牌保存在安全但可访问的位置以备后续调用。

1.3 下载边车

可下载 .deb , .rpm , .msi , .exe , .arm , .tar.gz 包。请根据版本矩阵选择正确的安装包,并从我们的 GitHub页面 .

2. 准备本地环境

您可以通过交互模式或静默模式在Windows上安装 安全数据湖 边车组件。

交互式安装
  1. 运行安装程序:

    graylog_sidecar_installer_1.5.1-1.exe
  2. 按照安装向导步骤操作:

    • 输入边车实例名称。

    • 提供服务器API令牌。

    • 选择 安装 以完成设置。

安装完成后,可编辑位于以下路径的配置文件:

C:\Program Files\安全数据湖\sidecar\sidecar.yml

大多数配置参数使用默认值,仅需手动配置以下参数: server_urlserver_api_token .

静默安装

要以静默模式运行安装程序,请使用以下命令:

graylog_sidecar_installer_1.5.1-1.exe /S -SERVERURL=http://<您的Security Data LakeIP或DNS名称>/api -APITOKEN=<您的API令牌>

Windows安装程序在静默模式下还支持以下附加选项:

-TAGS=["example","IIS"] -NODENAME=我的节点名 -NODEID=1234 -SENDSTATUS=false -TLSSKIPVERIFY=true -UPDATEINTERVAL=10秒
添加Winlogbeat收集器配置

按照以下步骤为Sidecar添加Winlogbeat收集器配置并开始采集Windows事件日志。

  1. Security Data Lake 中,前往 系统 > Sidecars ,找到您的Windows设备。

  2. 在Windows Sidecar下选择Winlogbeat收集器。

  3. 从右侧的 配置 下拉菜单中,选择您之前创建的 windows_sidecar 配置。

  4. 打开进程下拉菜单并选择要应用的配置。

  5. 选择 开始 开始数据收集。

启动后,您的 安全数据湖 实例将开始接收来自已配置机器的Windows事件日志。

您现在可以继续阅读《Sidecar入门指南》,以获取有关管理和监控收集器的更多详细信息。

必须在要收集日志数据的远程机器上执行以下步骤,以准备将数据发送到 安全数据湖

安全数据湖 Sidecar安装完成后,下一步是安装Sidecar收集器。收集器是负责从系统采集日志数据并转发至 安全数据湖 的代理程序,例如Filebeat、Winlogbeat和NXLog。

您可根据环境和数据源安装一个或多个收集器。安装后,Sidecar将自动检测可用收集器,并通过 安全数据湖 网页界面管理其配置。

sidecar.yml 配置参考

以下是 sidecar.yml 配置文件中使用的参数列表供您参考:

参数

描述

server_url

指定 安全数据湖 REST API的基础URL。路径必须包含 /api/ .

示例: https://192.168.1.1:9000/api/

server_api_token

用于与 安全数据湖 REST API进行身份验证的API令牌。此参数为必填项。

示例: 1jq26cssvc6rj4qac4bt9oeeh0p4vt5u5kal9jocl1g9mdi4og3n

node_id

Sidecar实例的唯一标识符。可以是文件URI或字面字符串。

示例文件路径: file:/etc/graylog/sidecar/node-id

示例ID字符串: 6033137e-d56b-47fc-9762-cd699c11a5a9

默认值: file:/etc/graylog/sidecar/node-id

node_name

在Web界面中显示的Sidecar实例名称。若未设置,默认使用系统主机名。

update_interval

指定Sidecar从服务器获取更新配置的频率(以秒为单位)。

默认值: 10

定期更新的Sidecar会被标记为“活跃”。如需配置非活跃阈值,请前往 系统 > 配置 > Sidecar系统 (在Web界面中)。

tls_skip_verify

决定是否跳过HTTPS连接的TLS证书验证。

默认值: false

send_status

控制Sidecar是否上报详细状态(包括收集器状态、指标及日志列表)。禁用此选项可减轻服务器负载。

默认值: true

list_log_files

定义主机状态页面上将列出的目录。可包含一个或多个路径。

示例: /var/log

默认值: []

cache_path

Sidecar用于存储本地缓存数据的目录。

默认值: /var/cache/graylog-sidecar

collector_configuration_directory

存储生成的收集器配置文件的目录。

默认值: /var/lib/graylog-sidecar/generated

log_path

Sidecar写入自身日志文件的目录。

默认: /var/log/graylog-sidecar

log_rotate_max_file_size

日志文件轮换前的最大大小。

默认: 10MiB

log_rotate_keep_files

保留的旧轮换日志文件数量。

collector_binaries_accesslist

指定Sidecar允许运行的采集器可执行文件。留空则禁用此限制。

默认: /usr/bin/filebeat,/usr/bin/packetbeat,/usr/bin/metricbeat,/usr/bin/heartbeat,/usr/bin/auditbeat,/usr/bin/journalbeat,/usr/share/filebeat/bin/filebeat,/usr/share/packetbeat/bin/packetbeat,/usr/share/metricbeat/bin/metricbeat,/usr/share/heartbeat/bin/heartbeat,/usr/share/auditbeat/bin/auditbeat,/usr/share/journalbeat/bin/journalbeat,/usr/bin/nxlog,/opt/nxlog/bin/nxlog

tags

定义配置标签列表。Sidecar会检索并合并所有匹配这些标签的服务器配置。

Sidecar采集器

采集器是安装在主机系统上的轻量级代理,用于收集日志数据并转发至 安全数据湖 。它负责从本地文件、系统日志或应用程序收集日志,然后安全地发送到 安全数据湖 服务器或输入端点进行集中分析。

采集器通常通过Sidecar进行管理,管理员可通过单一界面配置、部署和监控多个采集器。这种设置有助于确保不同服务器或环境间日志采集的一致性,并减少每台主机上手动配置的需求。

采集器分为两种类型:

  1. 默认采集器 (使用开箱即用的配置)

  2. 手动安装的采集器

默认采集器

Sidecar内置了多个默认采集器配置。这些开箱即用的配置在安装后会自动分配,并立即开始收集事件日志和审计框架信息等数据。当前可用的采集器包括:

操作系统

采集器

Linux x86/x86_64

Filebeat, Auditbeat

Windows x86/x86_64

Filebeat, Winlogbeat

要查看默认运行的采集器,请按以下步骤操作:

  1. 前往 系统 > Sidecars .

  2. 选择 配置 标签页。

    SDL_sidecar_defaults_en_1.png

编辑默认采集器

您可以根据需求修改任何Sidecar配置。但请确保变量 ${user.graylog_host} 使用与 server.conf文件 中定义的相同服务器属性(例如 http_bind_addresshttp_external_uri ).

若移除 默认 配置分配标签下的标签,该配置将不再自动应用于Sidecar。

SDL_sidecar_defaults_en_2.png

自定义采集器

安全数据湖 为Filebeat、Winlogbeat和Auditbeat提供了默认采集器配置,但您也可以安装并配置其他采集器与Sidecar配合使用。

以下章节以安装NXLog为例进行演示,但您可以根据需要安装并集成其他收集器。

由于Sidecar允许您自定义收集器后端,您还可以部署诸如Sysmon、auditd或Packetbeat等工具以满足特定的数据收集需求。

安装NXLog

在Ubuntu系统上安装NXLog,请按以下步骤操作:

  1. 下载 并安装NXLog软件包。

  2. 停止所有正在运行的NXLog实例,并移除默认的系统服务配置。

    由于Sidecar将管理NXLog服务(包括启动和停止),您必须禁用现有NXLog服务才能让Sidecar接管控制权:

    sudo systemctl stop nxlog
    sudo update-rc.d -f nxlog remove
    sudo gpasswd -a nxlog adm
    sudo chown -R nxlog.nxlog /var/spool/nxlog

    注意

    此步骤是必需的,因为Sidecar将管理NXLog服务,包括其启动和停止。

这些步骤确保Sidecar能完全控制NXLog服务并正确管理其生命周期。

在基于Red Hat的系统上安装NXLog,请按以下步骤操作:

  1. 下载 并安装NXLog软件包。

  2. 停止所有正在运行的NXLog实例,并取消默认系统服务的配置。

    由于Sidecar将管理NXLog服务(包括启动和停止),您必须禁用现有NXLog服务才能让Sidecar接管控制权

    sudo service nxlog stop
    sudo chkconfig --del nxlog
    sudo gpasswd -a nxlog root
    sudo chown -R nxlog.nxlog /var/spool/nxlog

在Windows系统上安装NXLog,请按以下步骤操作:

  1. 下载 并安装NXLog软件包。

  2. 停用系统服务。

Sidecar仅需使用NXLog二进制文件。运行以下命令:

"C:\Program Files\nxlog\nxlog" -u

提示

使用PowerShell时,请在命令前添加&amp;符号。

接收应用数据

应用数据可通过多种方式接收,具体取决于所使用的技术栈和日志框架。为展示实际配置方法,本文演示如何配置Ruby on Rails应用将日志发送至 安全数据湖 .

Ruby on Rails

将Ruby on Rails与 安全数据湖 集成,需配置应用使用Lograge和GELF gem发送结构化日志数据。

记录所有请求和日志调用

推荐使用Lograge配合GELF输出来发送每个请求的结构化信息(如HTTP返回码、控制器名称和操作)以及显式的Rails.logger调用。

Lograge将每个请求整合为单条结构化日志条目(替代默认Rails日志生成的多行输出),并从0.2.0版本开始支持 安全数据湖 输出。

按以下步骤配置Lograge和GELF将请求及日志数据发送至 安全数据湖

  1. 将Lograge和GELF gem添加至Gemfile:

    gem "gelf"
    gem "lograge"
  2. 在Rails应用中配置两者。建议将配置添加至 config/environments/production.rb :

    config.lograge.enabled = true
    config.lograge.formatter = Lograge::Formatters::Graylog2.new
    config.logger = GELF::Logger.new(
      "graylog.example.org",
      12201,
      "WAN",
      { host: "hostname-of-this-app", facility: "heroku" }
    )

此配置确保请求日志和显式日志调用(例如 Rails.logger.error"出现错误" )均发送至 安全数据湖 .

仅记录显式日志调用

若需仅记录显式日志调用而非所有请求,只需配置GELF日志器:

  1. 将GELF gem添加至Gemfile:

    gem "gelf"
  2. 在Rails应用中配置GELF日志记录器。建议将以下配置添加到 config/environments/production.rb :

    config.logger = GELF::Logger.new(
      "graylog.example.org",
      12201,
      "WAN",
      { host: "本应用主机名", facility: "heroku" }
    )

注意

此配置仅会发送通过 Rails.logger 显式写入的消息至 安全数据湖 .

Heroku平台

Heroku默认会注入自己的日志记录器(rails_log_stdout),这将覆盖自定义日志配置。要在Heroku上启用GELF自定义日志,需创建虚拟文件使Heroku检测到已存在的日志记录器:

$ touch vendor/plugins/rails_log_stdout/heroku_fix

此变通方案可防止Heroku替换您的自定义日志记录器,从而允许Rails通过GELF将日志转发至 安全数据湖

从文件摄取

日志文件格式多样,可能导致解析和标准化困难。

因此, 安全数据湖 不直接收集日志文件,而是依赖专门构建的多种采集器和代理来从不同系统和应用收集日志。

采集器可:

  • 通过环境中现有的配置管理工具进行配置和管理。

  • 通过Sidecar实现集中管理和监控(需先安装配置)。

  • 若需独立部署,也可手动设置。

此外,任何支持GELF或Syslog协议的程序均可用于向 安全数据湖 .

针对Windows和Linux系统最有效且广泛推荐的采集器之一是 Filebeat Filebeat专用于读取日志文件并将其转发至中央存储库。若要将日志数据发送至 安全数据湖 ,需将Filebeat配置为使用Logstash输出,该输出会连接到 安全数据湖 .

示例 Linux系统Filebeat配置

fields_under_root: true
fields.collector_node_id: ${sidecar.nodeName}
fields.gl2_source_collector: ${sidecar.nodeId}

filebeat.inputs:
  - type: filestream
    id: var-log
    paths:
      - /var/log/*.log

output.logstash:
  hosts: ["graylog:5044"]

path:
  data: /var/lib/graylog-sidecar/collectors/filebeat/data
  logs: /var/lib/graylog-sidecar/collectors/filebeat/log

Windows系统Filebeat配置示例

fields_under_root: true
fields.collector_node_id: ${sidecar.nodeName}
fields.gl2_source_collector: ${sidecar.nodeId}

output.logstash:
  hosts: ["graylog:5044"]

path:
  data: C:\Program Files\Graylog\sidecar\cache\filebeat\data
  logs: C:\Program Files\Graylog\sidecar\logs

tags:
  - windows

filebeat.inputs:
  - type: filestream
    id: c-log-log
    paths:
      - C:\logs\log.log

安装Sidecar

请按以下步骤安装并配置Sidecar:

1. 在 安全数据湖

中设置sidecar 安全数据湖 需执行以下步骤来创建并配置sidecar:

1.1 设置输入

安装Sidecar前, 创建新的Beats输入以接收来自Beats收集器的数据,并 配置该输入 5044端口 .

1.2 创建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

请将API服务器令牌保存在安全但可访问的位置,以备需要时检索。

1.3 下载Sidecar

您可以在我们的软件包仓库中找到 .deb , .rpm , .msi , .exe , .arm , .tar 以及 .gz 格式的软件包。请根据版本矩阵选择正确的软件包,并从我们的 GitHub页面 .

2. 准备本地环境

您可以通过 安全数据湖 Sidecar在Windows上以交互式或静默模式安装。

交互式安装
  1. 运行安装程序:

    graylog_sidecar_installer_1.5.1-1.exe
  2. 按照安装向导步骤操作:

    • 输入Sidecar实例名称。

    • 提供服务器API令牌。

    • 选择 安装 以完成设置。

安装完成后,可编辑位于以下路径的配置文件:

C:\Program Files\Security Data Lake\sidecar\sidecar.yml

多数配置参数采用默认值。必须手动配置的参数仅有 server_urlserver_api_token .

静默安装

如需以静默模式运行安装程序,请使用以下命令:

graylog_sidecar_installer_1.5.1-1.exe /S -SERVERURL=http://<您的Security Data LakeIP或DNS名称>/api -APITOKEN=<您的API令牌>

Windows安装程序还支持静默模式下的附加选项,例如:

-TAGS=["example","IIS"] -NODENAME=mynodename -NODEID=1234 -SENDSTATUS=false -TLSSKIPVERIFY=true -UPDATEINTERVAL=10s
添加Winlogbeat采集器配置

按以下步骤为Sidecar添加Winlogbeat采集器配置,开始采集Windows事件日志。

  1. Security Data Lake 中,前往 系统 > Sidecars ,并识别您的Windows设备。

  2. 在Windows Sidecar下,选择Winlogbeat收集器。

  3. 从右侧的 配置 下拉菜单中,选择您之前创建的 windows_sidecar 配置。

  4. 打开进程下拉菜单,选择要应用的配置。

  5. 点击 开始 以启动数据收集。

启动后,您的 安全数据湖 实例将开始接收来自配置机器的Windows事件日志。

您现在可以继续阅读《Sidecar入门指南》,了解有关管理和监控收集器的更多详细信息。

需要在远程机器上执行以下步骤,以准备将日志数据发送至 安全数据湖

安全数据湖 Sidecar安装完成后,下一步是安装Sidecar收集器。收集器是负责从系统中收集日志数据并将其转发至 安全数据湖 的代理程序。例如Filebeat、Winlogbeat和NXLog。

您可以根据环境和数据源安装一个或多个收集器。安装后,Sidecar将自动检测可用的收集器,并通过 安全数据湖 的Web界面管理其配置。

sidecar.yml 配置参考

以下是 sidecar.yml 配置文件中使用的参数列表供参考:

参数

描述

server_url

指定 安全数据湖 REST API的基础URL。路径必须包含 /api/ .

示例: https://192.168.1.1:9000/api/

server_api_token

用于与 安全数据湖 REST API接口所需的认证参数。此参数为必填项。

示例: 1jq26cssvc6rj4qac4bt9oeeh0p4vt5u5kal9jocl1g9mdi4og3n

节点ID

Sidecar实例的唯一标识符。可为文件URI或字符串字面量。

文件路径示例: file:/etc/graylog/sidecar/node-id

ID字符串示例: 6033137e-d56b-47fc-9762-cd699c11a5a9

默认值: file:/etc/graylog/sidecar/node-id

节点名称

Web界面中Sidecar实例的显示名称。未设置时默认使用系统主机名。

更新间隔

指定Sidecar从服务器获取更新配置的频率(秒)。

默认值: 10

定期更新的Sidecar会被标记为“活跃”。如需配置非活跃阈值,请通过 系统 > 配置 > Sidecar系统 进入Web界面设置。

跳过TLS验证

决定是否跳过HTTPS连接的TLS证书验证。

默认值: false

发送状态

控制Sidecar是否上报详细状态(包括采集器状态、指标及日志列表)。禁用此选项可降低服务器负载。

默认值: true

列出日志文件

定义将在主机状态页面列出的目录。可包含一个或多个路径。

示例: /var/log

默认值: []

cache_path

Sidecar用于存储本地缓存数据的目录。

默认值: /var/cache/graylog-sidecar

collector_configuration_directory

存储生成的采集器配置文件的目录。

默认值: /var/lib/graylog-sidecar/generated

log_path

Sidecar写入自身日志文件的目录。

默认值: /var/log/graylog-sidecar

log_rotate_max_file_size

日志文件轮转前的最大大小。

默认值: 10MiB

log_rotate_keep_files

保留的旧轮转日志文件数量。

collector_binaries_accesslist

指定Sidecar允许运行的采集器可执行文件。留空则禁用此限制。

默认值: /usr/bin/filebeat,/usr/bin/packetbeat,/usr/bin/metricbeat,/usr/bin/heartbeat,/usr/bin/auditbeat,/usr/bin/journalbeat,/usr/share/filebeat/bin/filebeat,/usr/share/packetbeat/bin/packetbeat,/usr/share/metricbeat/bin/metricbeat,/usr/share/heartbeat/bin/heartbeat,/usr/share/auditbeat/bin/auditbeat,/usr/share/journalbeat/bin/journalbeat,/usr/bin/nxlog,/opt/nxlog/bin/nxlog

tags

定义配置标签列表。Sidecar将检索并合并所有匹配这些标签的服务器配置。

管理Sidecar

您可以通过 系统 > 配置 > Sidecars .

当Sidecar安装并运行后,其当前状态会显示在此页面。每个Sidecar实例会将其健康状态和配置详情上报至 安全数据湖 ,便于您验证采集器是否正常连接运行。

注意

闲置超过14天的失效或断开连接的Sidecar将自动从列表中移除。您可以在 Sidecars 页面调整此默认保留期限。

要查看特定Sidecar的详细信息,请点击节点详情下的对应条目。这将打开专属状态页面,显示该Sidecar报告的配置参数、活跃采集器及其他运行时信息。

故障追踪

在包含大量Sidecar的部署环境中,定位单个采集器故障原因可能耗时。为简化故障排查, 安全数据湖 在Sidecar界面中提供了故障追踪页面。

该页面支持搜索和排序,列出的每个采集器均包含名称、状态、错误信息及详细错误描述,使管理员能快速识别并解决跨多个Sidecar的问题。

创建和编辑变量

配置变量可包含任意字符串,例如 安全数据湖 服务器的IP地址或输入端口的编号。这些变量可在多个采集器配置中重复使用,有助于避免重复并简化整体管理。

创建配置变量的步骤如下:

  1. 前往 系统 > Sidecars 页面并选择 配置 选项卡。

  2. 收集器配置参考 部分,选择 创建变量 .

  3. 输入所需详细信息并选择 保存 .

要更新变量,请选择 编辑 按钮(位于需更新的变量旁),进行必要修改后选择 保存 .

示例

以下示例中,我们将Beats输入中硬编码的IP地址和端口替换为名为 ${user.graylog_host} .

此方法可轻松更新连接细节或环境特定参数,而无需修改多个配置文件。

安全通信

为确保收集器与 安全数据湖 间的通信安全,请在输入配置中启用TLS。例如配置Beats输入时,选择启用TLS。 安全数据湖 随后将为该输入生成自签名证书,确保收集器与 安全数据湖 服务器间的数据传输加密。

分配标签

可通过标签控制收集器配置如何分配给主机。标签决定了每个终端接收的配置。

例如,您可以创建一个用于收集Apache访问日志的配置,并为其分配标签 apache 。任何运行在具有相同apache标签的Web服务器上的Sidecar实例都会自动获取并应用此配置,从而收集并将Web访问日志转发至 安全数据湖 .

以下是终端上典型的Sidecar配置YAML文件的相关部分:

# 分配给此Sidecar的标签列表。匹配其中任意标签的采集器配置将自动
# 应用于该Sidecar。
# 示例:
# tags:
# - apache-logs
# - dns-logs

系统标签应用于终端后,该终端会自动开始收集日志并将其转发至 安全数据湖 .

此功能通过自动将采集器配置分配给YAML文件包含相应标签的新客户端,简化了配置管理。

标签可在任何终端上定义,如Windows服务器、Windows工作站或Linux系统,并可用于包括Winlogbeat、Filebeat、Metricbeat和NXLog在内的不同采集器。

Sidecar还支持将多个采集器配置分配给同一终端。例如,Windows客户端可同时应用winlogbeat和sysmon标签的配置。

提示

您还可以使用代码片段来包含可能难以通过系统界面定义的额外采集器配置细节。

代码片段可包含完整配置(如NXLog设置)或扩展现有的输入输出定义。

所有代码片段都会直接包含在生成的采集器配置中,无论其输入或输出是否已定义。

故障排除

Sidecar将其日志文件写入 log_path 配置参数指定的目录。每个后端(采集器)都有独立的日志文件,可用于检查文件权限错误或日志传输问题。

Sidecar自身会写入名为 sidecar.log 的文件,其中包含常规操作消息。诸如 连接安全数据湖API 失败等错误通常记录于此文件。

您还可以启用调试输出在前台启动sidecar,以实时监控其活动:

graylog-sidecar -debug

该命令适用于排查连接问题、配置错误或收集器启动故障。

卸载

卸载边车的流程因其安装的操作系统而异。

Linux系统

在Linux系统中,您可直接通过包管理器卸载软件包。例如:

sudo apt-get remove graylog-sidecar

sudo yum remove graylog-sidecar

Windows系统

在Windows系统中,通过运行以下命令停止并卸载边车服务:

"C:\Program Files\Graylog\graylog-sidecar.exe" -service stop 
"C:\Program Files\Graylog\graylog-sidecar.exe" -service uninstall

注意

使用PowerShell时,需在每个命令前添加 & .

执行完这些命令后,若不再需要可安全删除边车目录。