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

支持的平台:

本文档介绍了如何使用 Bindplane 代理将 VMware NSX Manager 日志注入到 Google Security Operations。

VMware NSX 是一种网络虚拟化和安全平台,可针对防火墙事件、分布式防火墙规则、路由更改、审核日志和控制器事件生成 syslog 消息。解析器使用 Grok 模式、键值对解析和 JSON 解析来提取字段,并将这些字段映射到统一数据模型 (UDM)。

准备工作

请确保满足以下前提条件:

  • Google SecOps 实例
  • Windows Server 2016 或更高版本,或者具有 systemd 的 Linux 主机
  • Bindplane 代理与 VMware NSX 环境之间的网络连接
  • 如果在代理后面运行,请确保防火墙端口已根据 Bindplane 代理要求打开
  • 对 VMware NSX 的管理员访问权限

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

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

获取 Google SecOps 客户 ID

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

安装 Bindplane 代理

按照以下说明在 Windows 或 Linux 操作系统上安装 Bindplane 代理。

Windows 安装

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

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. 等待安装完成。

  4. 运行以下命令,验证安装是否成功:

    sc query observiq-otel-collector
    

    该服务应显示为 正在运行

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
    
  3. 等待安装完成。

  4. 运行以下命令,验证安装是否成功:

    sudo systemctl status observiq-otel-collector
    

    该服务应显示为有效(正在运行)

其他安装资源

如需了解其他安装选项和问题排查信息,请参阅 Bindplane 代理安装指南

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

找到配置文件

  • Linux

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • Windows

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

修改配置文件

  • config.yaml 的全部内容替换为以下配置:

    receivers:
        udplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/vmware_nsx:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: VMWARE_NSX
            raw_log_field: body
    
    service:
        pipelines:
            logs/vmware_nsx_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/vmware_nsx
    

配置参数

替换以下占位符:

  • 接收器配置

    • listen_address:要监听的 IP 地址和端口:
      • 0.0.0.0 侦听所有接口(推荐)
      • 端口 514 是标准 syslog 端口(在 Linux 上需要 root 权限;对于非 root 用户,请使用 1514
  • 导出器配置

    • creds_file_path:提取身份验证文件的完整路径:
      • Linux/etc/bindplane-agent/ingestion-auth.json
      • WindowsC:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • customer_id:从 Google SecOps 控制台复制的客户 ID
    • endpoint:区域端点网址:
      • 美国malachiteingestion-pa.googleapis.com
      • 欧洲europe-malachiteingestion-pa.googleapis.com
      • 亚洲asia-southeast1-malachiteingestion-pa.googleapis.com
      • 如需查看完整列表,请参阅区域级端点

保存配置文件

  • 修改后,保存文件:
    • Linux:依次按 Ctrl+OEnterCtrl+X
    • Windows:依次点击文件 > 保存

重启 Bindplane 代理以应用更改

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

    sudo systemctl restart observiq-otel-collector
    
    1. 验证服务是否正在运行:

      sudo systemctl status observiq-otel-collector
      
    2. 检查日志是否存在错误:

      sudo journalctl -u observiq-otel-collector -f
      
  • 如需在 Windows 中重启 Bindplane 代理,请选择以下选项之一:

    • 以管理员身份运行命令提示符或 PowerShell:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • 服务控制台:

      1. Win+R,输入 services.msc,然后按 Enter 键。
      2. 找到 observIQ OpenTelemetry 收集器
      3. 右键点击并选择重新启动
      4. 验证服务是否正在运行:

        sc query observiq-otel-collector
        
      5. 检查日志是否存在错误:

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

NSX Edge 的 syslog 配置

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

NSX Manager 的 syslog 配置

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

NSX 控制器的 Syslog 配置

  1. 登录 vSphere Web Client
  2. 依次前往网络和安全性 > 安装和升级 > 管理 > NSX 控制器节点
  3. 选择管理控制器节点的 NSX Manager
  4. 点击 Common Controller Attributes Edit
  5. Syslog 服务器对话框中,点击添加
    • 输入 syslog 服务器名称或 IP 地址。
    • 选择 UDP 协议(具体取决于您的 Bindplane 配置)。
    • 设置日志级别(例如 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 包含“authentication failure”且 application 不为空,则设置为“AUTHTYPE_UNSPECIFIED”。如果 PROTO 为“ssh2”,则设置为“SSH”;如果 subcomp 为“http”,则设置为“HTTP”。根据其他字段的值通过一系列条件语句确定。可能的值包括 ALLOW 和 BLOCK。如果 vmw_cluster 不为空,则设置为“VIRTUAL_MACHINE”。
Resource event.idm.read_only_udm.additional.fields 从变更日志映射
zone_action event.idm.read_only_udm.security_result.detection_fields 从变更日志映射
product_id event.idm.read_only_udm.metadata.product_log_id 从变更日志映射
dst_port event.idm.read_only_udm.target.port 从变更日志映射
sent_pkt event.idm.read_only_udm.network.sent_packets 从变更日志映射
received_pkt event.idm.read_only_udm.network.received_packets 从变更日志映射
sent_byte event.idm.read_only_udm.network.sent_bytes 从变更日志映射
received_byte event.idm.read_only_udm.network.received_bytes 从变更日志映射
msg1 event.idm.read_only_udm.metadata.description 从变更日志映射
ip_version event.idm.read_only_udm.additional.fields 从变更日志映射
ip_protocol_type event.idm.read_only_udm.additional.fields 从变更日志映射
ip_protocol_code event.idm.read_only_udm.additional.fields 从变更日志映射
interface_id event.idm.read_only_udm.additional.fields 从变更日志映射
tcp_flags event.idm.read_only_udm.additional.fields 从变更日志映射
src_zone_value event.idm.read_only_udm.principal.resource.attribute.labels 从变更日志映射
sec_desc event.idm.read_only_udm.security_result.description 从变更日志映射
Originated_Ip event.idm.read_only_udm.principal.ip 从变更日志映射
Originated_Ip event.idm.read_only_udm.principal.asset.ip 从变更日志映射
event_source event.idm.read_only_udm.target.resource.name 从变更日志映射
Resource_Name event.idm.read_only_udm.target.resource.name 从变更日志映射
Universal_Object event.idm.read_only_udm.target.resource.attribute.labels 从变更日志映射
Severity event.idm.read_only_udm.security_result.severity 从变更日志映射
Code event.idm.read_only_udm.security_result.rule_id 从变更日志映射
Event_Message event.idm.read_only_udm.metadata.description 从变更日志映射
Above_supported_instances event.idm.read_only_udm.additional.fields 从变更日志映射
Above_threshold_instances event.idm.read_only_udm.additional.fields 从变更日志映射
Below_threshold_instances event.idm.read_only_udm.additional.fields 从变更日志映射
supported_compact event.idm.read_only_udm.additional.fields 从变更日志映射
supported_quadlarge event.idm.read_only_udm.additional.fields 从变更日志映射
supported_large event.idm.read_only_udm.additional.fields 从变更日志映射
supported_xlarge event.idm.read_only_udm.additional.fields 从变更日志映射
action security_result.action_details 从变更日志映射
rule_id security_result.rule_id 从变更日志映射
network.direction INBOUND 从变更日志映射
security_result.action_details ALLOW 从变更日志映射
security_result.action_details BLOCK 从变更日志映射
metadata.event_type NETWORK_CONNECTION 从变更日志映射
unique_id principal.resource.product_object_id 从变更日志映射
resource_type principal.resource.sub_type 从变更日志映射
_create_user","_last_modified_user principal.user.email_addresses 从变更日志映射
action security_result.action 从变更日志映射
display_name principal.resource.name 从变更日志映射
_last_modified_time principal.resource.attribute.last_update_time 从变更日志映射
_create_time principal.resource.attribute.creation_time 从变更日志映射
parent_path principal.resource.parent 从变更日志映射
id principal.resource.id 从变更日志映射
resource_type target.resource.sub_type 从变更日志映射
unique_id target.resource.product_object_id 从变更日志映射
path target.process.file.full_path 从变更日志映射
id target.resource.id 从变更日志映射
vmw_host target_details.hostname or target_details.ip 从变更日志映射
vmw_vr_ops_clusterrole intermediary.resource.attribute.labels.roles.name 从变更日志映射
vmw_host","vmw_product","vmw_vcenter","vmw_cluster","vmw_vr_ops_id","vmw_object_id","vmw_datacenter","vmw_vcenter_id","vmw_vr_ops_logtype","vmw_vr_ops_appname","vmw_vr_ops_hostname","vmw_vr_ops_nodename","vmw_vr_ops_clustername","vmw_vr_ops_clusterrole","managedExternally","update","filepath","eventType","resourceId principal.resource.attribute.labels 从变更日志映射
tname", "s2comp", "node principal.resource.attribute.labels 从变更日志映射
exe target.process.file.full_path 从变更日志映射

更新日志

查看相应解析器的更改日志

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