收集 VMware 网络和安全虚拟化 (NSX) 管理器日志

支持的语言:

本文档介绍了如何收集 VMware 网络和安全虚拟化 (NSX) 管理器日志。解析器会根据消息格式使用各种 grok 模式提取字段。然后,它会执行键值解析、JSON 解析和条件逻辑,将提取的字段映射到 UDM,处理不同的日志格式,并使用其他上下文来丰富数据。

准备工作

  • 确保您拥有 Google Security Operations 实例。
  • 确保您使用的是 Windows 2016 或更高版本,或者具有 systemd 的 Linux 主机。
  • 如果通过代理运行,请确保防火墙端口处于开放状态。
  • 确保您拥有对 VMWare NSX 的管理员权限。

获取 Google SecOps 注入身份验证文件

  1. 登录 Google SecOps 控制台。
  2. 依次前往 SIEM 设置 > 收集代理
  3. 下载注入身份验证文件。将该文件安全地保存在将要安装 Bindplane 代理的系统上。

获取 Google SecOps 客户 ID

  1. 登录 Google SecOps 控制台。
  2. 依次前往 SIEM 设置 > 配置文件
  3. 复制并保存组织详细信息部分中的客户 ID

安装 BindPlane 代理

Windows 安装

  1. 以管理员身份打开命令提示符PowerShell
  2. 运行以下命令:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Linux 安装

  1. 打开具有 root 或 sudo 权限的终端。
  2. 运行以下命令:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

其他安装资源

  • 如需了解其他安装选项,请参阅此安装指南

配置 Bindplane 代理以注入 Syslog 并将其发送到 Google SecOps

  1. 访问配置文件:

    • 找到 config.yaml 文件。通常,它位于 Linux 上的 /etc/bindplane-agent/ 目录中或 Windows 上的安装目录中。
    • 使用文本编辑器(例如 nanovi 或记事本)打开该文件。
  2. 按如下方式修改 config.yaml 文件:

    receivers:
        udplog:
            # Replace the below port <54525> and IP <0.0.0.0> with your specific values
            listen_address: "0.0.0.0:54525" 
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the creds location below according the placement of the credentials file you downloaded
            creds: '{ json file for creds }'
            # Replace <customer_id> below with your actual ID that you copied
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # You can apply ingestion labels below as preferred
            ingestion_labels:
            log_type: SYSLOG
            namespace: vmware_nsx
            raw_log_field: body
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. 根据基础架构的需要替换端口和 IP 地址。

  4. <customer_id> 替换为实际的客户 ID。

  5. /path/to/ingestion-authentication-file.json 更新为获取 Google SecOps 提取身份验证文件部分中保存身份验证文件的路径。

重启 Bindplane 代理以应用更改

  • 在 Linux 中,如需重启 Bindplane 代理,请运行以下命令:

    sudo systemctl restart bindplane-agent
    
  • 在 Windows 中,如需重启 Bindplane 代理,您可以使用服务控制台,也可以输入以下命令:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

NSX Edge 的 Syslog 配置

  1. 登录 vSphere Web 客户端
  2. 依次前往网络和安全性 > NSX Edge
  3. 选择要配置的特定 NSX Edge 实例。
  4. 前往 Syslog 设置
    1. 对于 NSX 6.4.4 及更高版本:
      • 依次前往管理 > 设置 > 设备设置
      • 依次点击设置 > 更改 Syslog 配置
    2. 对于 NSX 6.4.3 及更低版本:
      • 依次前往管理 > 设置 > 配置
      • 详细信息对话框中,点击更改
  5. 配置 Syslog 服务器详细信息:
    • 服务器:输入 Syslog 服务器 (Bindplane) 的 IP 地址或主机名。
    • 协议:选择 UDPTCP(取决于您的 Bindplane 配置)。
    • 端口:输入端口号(取决于您的 Bindplane 配置)。
  6. 点击确定以保存设置。

NSX Manager 的 Syslog 配置

  1. 使用管理员凭据登录 NSX Manager 网页界面,如下所示:
    • https://<NSX-Manager-IP>https://<NSX-Manager-Hostname>
  2. 依次前往管理设备设置 > 常规
  3. 点击修改以配置 Syslog 服务器设置。
  4. 输入 Syslog 服务器详细信息:
    • 服务器:输入 Syslog 服务器 (Bindplane) 的 IP 地址或主机名。
    • 协议:选择 UDPTCP(取决于您的 Bindplane 配置)。
    • 端口:输入端口号(取决于您的 Bindplane 配置)。
  5. 点击确定以保存设置。

NSX 控制器的 Syslog 配置

  1. 登录 vSphere Web 客户端。
  2. 依次前往网络和安全性 > 安装和升级 > 管理 > NSX 控制器节点
  3. 选择管理控制器节点的 NSX Manager
  4. 点击 Common Controller Attributes Edit
  5. Syslog 服务器对话框中,点击添加
    1. 输入 Syslog 服务器名称或 IP 地址。
    2. 选择 UDP 协议(具体取决于您的 Bindplane 配置)。
    3. 设置日志级别(例如 INFO)。
  6. 点击确定以保存设置。

UDM 映射表

日志字段 UDM 映射 逻辑
DST event.idm.read_only_udm.target.ip 目标 IP 地址是从原始日志的 DST 字段中提取的。
ID event.idm.read_only_udm.metadata.product_log_id 商品日志 ID 从原始日志的 ID 字段中提取。
MAC event.idm.read_only_udm.principal.mac MAC 地址是从原始日志的 MAC 字段中提取的。
ModuleName event.idm.read_only_udm.metadata.product_event_type 商品事件类型是从原始日志的 ModuleName 字段中提取的。
Operation event.idm.read_only_udm.principal.resource.attribute.labels.value 该操作从原始日志的 Operation 字段中提取,并添加为键为“Operation”的标签。
PROTO event.idm.read_only_udm.network.ip_protocol IP 协议是从原始日志的 PROTO 字段中提取的。
RES event.idm.read_only_udm.target.resource.name 目标资源名称提取自原始日志中的 RES 字段。
SRC event.idm.read_only_udm.principal.ip 来源 IP 地址是从原始日志的 SRC 字段中提取的。
SPT event.idm.read_only_udm.principal.port 源端口是从原始日志的 SPT 字段中提取的。
UserName event.idm.read_only_udm.principal.user.userid 用户 ID 从原始日志的 UserName 字段中提取。
app_type event.idm.read_only_udm.principal.application 主要应用是从原始日志的 app_type 字段中提取的。
application event.idm.read_only_udm.target.application 目标应用是从原始日志的 application 字段中提取的。
audit event.idm.read_only_udm.principal.resource.attribute.labels.value 审核值从原始日志的 audit 字段中提取,并作为标签(键为“audit”)添加。
cancelTimeUTC event.idm.read_only_udm.principal.resource.attribute.last_update_time 上次更新时间是从原始日志中的 cancelTimeUTC 字段派生出来的。
client event.idm.read_only_udm.principal.ipevent.idm.read_only_udm.principal.administrative_domain 如果 client 字段是 IP 地址,则会映射到正文 IP。否则,它会映射到主管理网域。
comp event.idm.read_only_udm.principal.resource.attribute.labels.value 组件值从原始日志的 comp 字段中提取,并作为键为“Comp”的标签添加。
datetime event.idm.read_only_udm.metadata.event_timestamp 事件时间戳是从原始日志的 datetime 字段中提取的。
description event.idm.read_only_udm.metadata.description 说明是从原始日志的 description 字段中提取的。
details event.idm.read_only_udm.principal.resource.attribute.labels 详细信息会从原始日志的 details 字段中提取,并添加为标签。
direction event.idm.read_only_udm.network.direction 如果 direction 字段为“OUT”,则映射到“OUTBOUND”。
dst_ip event.idm.read_only_udm.target.ip 目标 IP 地址是从原始日志的 dst_ip 字段中提取的。
DPT event.idm.read_only_udm.target.port 目标端口是从原始日志的 DPT 字段中提取的。
errorCode event.idm.read_only_udm.security_result.detection_fields 从原始日志的 errorCode 字段中提取错误代码,并将其添加为检测字段。
eventType event.idm.read_only_udm.metadata.product_event_type 商品事件类型是从原始日志的 eventType 字段中提取的。
filepath event.idm.read_only_udm.principal.process.file.full_path 文件路径是从原始日志的 filepath 字段中提取的。
hostname event.idm.read_only_udm.principal.ip 主机名是从原始日志的 hostname 字段中提取的,如果它是 IP 地址,则会映射到正文 IP。
kv_data 各种 UDM 字段 kv_data 中的键值对会根据其键映射到各种 UDM 字段。
kv_data1 各种 UDM 字段 kv_data1 中的键值对会根据其键映射到各种 UDM 字段。
kv_data2 各种 UDM 字段 kv_data2 中的键值对会根据其键映射到各种 UDM 字段。
kv_data3 各种 UDM 字段 kv_data3 中的键值对会根据其键映射到各种 UDM 字段。
kv_data4 各种 UDM 字段 kv_data4 中的键值对会根据其键映射到各种 UDM 字段。
level event.idm.read_only_udm.security_result.severity 如果 level 字段为“INFO”,则映射到“INFORMATIONAL”。如果为“ERROR”,则映射到“ERROR”。
managedExternally event.idm.read_only_udm.principal.resource.attribute.labels.value 系统会从原始日志中的 managedExternally 字段提取 managedExternally 值,并将其添加为键为“managedExternally”的标签。
message 各种 UDM 字段 系统会解析消息字段以提取各种 UDM 字段。
message_data event.idm.read_only_udm.principal.resource.attribute.labels.value 从原始日志的 message_data 字段中提取消息数据,并以键为“message”的标签形式添加。
network_status event.idm.read_only_udm.additional.fields 网络状态从原始日志的 network_status 字段中提取,并作为附加字段添加到日志中,键为“Network_Connection_Status”。
new_value 各种 event.idm.read_only_udm.target 字段 新值是从原始日志的 new_value 字段中提取的,用于填充各种目标字段。
node event.idm.read_only_udm.principal.resource.attribute.labels.value 节点值从原始日志的 node 字段中提取,并添加为键为“node”的标签。
old_value 各种 UDM 字段 旧值从原始日志的 old_value 字段中提取,并用于填充各种 UDM 字段。
payload 各种 UDM 字段 载荷从原始日志的 payload 字段中提取,并用于填充各种 UDM 字段。
pid event.idm.read_only_udm.target.process.pid 进程 ID 从原始日志的 pid 字段中提取。
reqId event.idm.read_only_udm.metadata.product_log_id 商品日志 ID 从原始日志的 reqId 字段中提取。
resourceId event.idm.read_only_udm.principal.resource.product_object_id 商品对象 ID 是从原始日志的 resourceId 字段中提取的。
s2comp event.idm.read_only_udm.principal.resource.attribute.labels.value 系统会从原始日志的 s2comp 字段中提取 s2comp 值,并将其添加为键为“s2comp”的标签。
ses event.idm.read_only_udm.network.session_id 会话 ID 从原始日志的 ses 字段中提取。
src_host event.idm.read_only_udm.principal.hostname 系统会从原始日志的 src_host 字段中提取主主机名。
src_ip event.idm.read_only_udm.principal.ip 来源 IP 地址是从原始日志的 src_ip 字段中提取的。
src_ip1 event.idm.read_only_udm.principal.ip 来源 IP 地址是从原始日志的 src_ip1 字段中提取的。
src_port event.idm.read_only_udm.principal.port 源端口是从原始日志的 src_port 字段中提取的。
startTimeUTC event.idm.read_only_udm.principal.resource.attribute.creation_time 创建时间是从原始日志中的 startTimeUTC 字段派生出来的。
subcomp event.idm.read_only_udm.network.application_protocolevent.idm.read_only_udm.principal.resource.attribute.labels.value 如果 subcomp 字段为“http”,则映射到“HTTP”。否则,会将其添加为键为“Sub Comp”的标签。
tname event.idm.read_only_udm.principal.resource.attribute.labels.value 系统会从原始日志的 tname 字段中提取 tname 值,并将其添加为键为“tname”的标签。
type event.idm.read_only_udm.metadata.product_event_type 商品事件类型是从原始日志的 type 字段中提取的。
uid event.idm.read_only_udm.principal.user.userid 用户 ID 从原始日志的 uid 字段中提取。
update event.idm.read_only_udm.principal.resource.attribute.labels.value 更新值从原始日志的 update 字段中提取,并作为键为“update”的标签添加。
user event.idm.read_only_udm.principal.user.user_display_name 用户显示名称是从原始日志的 user 字段中提取的。
vmw_cluster event.idm.read_only_udm.target.resource.name 目标资源名称提取自原始日志中的 vmw_cluster 字段。
vmw_datacenter event.idm.read_only_udm.target.resource.attribute.labels.value vmw_datacenter 值是从原始日志的 vmw_datacenter 字段中提取的,并作为键为“vmw_datacenter”的标签添加。
vmw_host event.idm.read_only_udm.target.hostnameevent.idm.read_only_udm.target.ip 如果 vmw_host 字段是主机名,则会映射到目标主机名。否则,如果它是 IP 地址,则会映射到目标 IP。
vmw_object_id event.idm.read_only_udm.target.resource.product_object_id 商品对象 ID 是从原始日志的 vmw_object_id 字段中提取的。
vmw_product event.idm.read_only_udm.target.application 目标应用是从原始日志的 vmw_product 字段中提取的。
vmw_vcenter event.idm.read_only_udm.target.cloud.availability_zone 可用区是从原始日志的 vmw_vcenter 字段中提取的。
vmw_vcenter_id event.idm.read_only_udm.target.resource.attribute.labels.value vmw_vcenter_id 值从原始日志的 vmw_vcenter_id 字段中提取,并作为标签(键为“vmw_vcenter_id”)添加。
vmw_vr_ops_appname event.idm.read_only_udm.intermediary.application 中间应用是从原始日志的 vmw_vr_ops_appname 字段中提取的。
vmw_vr_ops_clustername event.idm.read_only_udm.intermediary.resource.name 中间资源名称提取自原始日志中的 vmw_vr_ops_clustername 字段。
vmw_vr_ops_clusterrole event.idm.read_only_udm.intermediary.resource.attribute.roles.name 中间资源角色名称提取自原始日志中的 vmw_vr_ops_clusterrole 字段。
vmw_vr_ops_hostname event.idm.read_only_udm.intermediary.hostname 中间主机名是从原始日志的 vmw_vr_ops_hostname 字段中提取的。
vmw_vr_ops_id event.idm.read_only_udm.intermediary.resource.product_object_id 中间产品对象 ID 从原始日志的 vmw_vr_ops_id 字段中提取。
vmw_vr_ops_logtype event.idm.read_only_udm.intermediary.resource.attribute.labels.value vmw_vr_ops_logtype 值是从原始日志的 vmw_vr_ops_logtype 字段中提取的,并作为标签(键为“vmw_vr_ops_logtype”)添加。
vmw_vr_ops_nodename event.idm.read_only_udm.intermediary.resource.attribute.labels.value vmw_vr_ops_nodename 值从原始日志的 vmw_vr_ops_nodename 字段中提取,并作为标签(键为“vmw_vr_ops_nodename”)添加。根据其他字段的值通过一系列条件语句确定。可能的值包括 USER_LOGIN、NETWORK_CONNECTION、STATUS_UPDATE 和 GENERIC_EVENT。硬编码为“VMWARE_NSX”。硬编码为“VMWARE_NSX”。硬编码为“VMWARE_NSX”。如果 Operation 为“LOGIN”且 target_details 不为空,或者 message 包含“身份验证失败”且 application 不为空,则设置为“AUTHTYPE_UNSPECIFIED”。如果 PROTO 为“ssh2”,则设置为“SSH”;如果 subcomp 为“http”,则设置为“HTTP”。根据其他字段的值通过一系列条件语句确定。可能的值包括 ALLOW 和 BLOCK。如果 vmw_cluster 不为空,则设置为“VIRTUAL_MACHINE”。

需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。