跳至主内容

边车

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

边车架构

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

Sidecar可作为服务(Windows主机)或守护进程(Linux主机)运行在支持消息生成的设备上。

log collector diagram.png

安装Sidecar

请按照以下步骤完成Sidecar的安装和必要配置:

1. 在 安全数据湖

中完成以下 安全数据湖 配置步骤以创建和配置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. 准备本地环境

您可以通过交互式或静默模式在Windows上安装 Security Data Lake Sidecar。

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

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

    • 为您的Sidecar实例输入名称。

    • 提供您的服务器API令牌。

    • 选择 安装 以完成设置。

安装后,您可以编辑位于以下位置的配置文件:

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

大多数配置参数使用默认值。必须手动配置的参数仅为 server_urlserver_api_token .

静默安装

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

graylog_sidecar_installer_1.5.1-1.exe /S -SERVERURL=http://<您的安全数据湖IP或DNS名称>/api -APITOKEN=<您的API令牌>

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

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

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

  1. 安全数据湖 中,转至 系统 > 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认证的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服务才能移交控制权:

    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服务才能移交控制权

    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输出,该输出会连接到 安全数据湖 .

示例 Filebeat配置 (Linux系统)

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端口接收Sidecar日志 .

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. 准备本地环境

您可以通过交互式或静默模式 在Windows上安装 Security Data Lake Sidecar。

交互式安装
  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=我的节点名 -NODEID=1234 -SENDSTATUS=false -TLSSKIPVERIFY=true -UPDATEINTERVAL=10秒
添加Winlogbeat收集器配置

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

  1. 安全数据湖 中,前往 系统 > 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进行身份验证的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

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

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

标签

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

管理Sidecar

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

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

注意

过期或断连的Sidecar在14天无活动后会自动从列表中移除。您可以在 Sidecar 页面调整此默认保留期限。

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

故障追踪

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

这个可搜索和排序的页面会列出每个采集器的名称、状态、错误消息及详细(冗长)错误信息,帮助管理员快速识别并解决跨多个Sidecar的问题。

创建和编辑变量

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

要创建配置变量,请按以下步骤操作:

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

  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

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

卸载

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

Linux

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

sudo apt-get remove graylog-sidecar

sudo yum remove graylog-sidecar

Windows

在Windows系统上,通过以下命令停止并卸载Sidecar服务:

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

注意

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

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