收集 VMware vCenter 日志

支持的平台:

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

VMware vCenter 是一种服务器管理平台,可针对虚拟机操作、主机管理、身份验证和配置更改生成 JSON 和 syslog 消息。

准备工作

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

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

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

  1. 登录 Google SecOps 控制台。
  2. 依次前往 SIEM 设置 > 收集代理
  3. 下载数据注入身份验证文件
  4. 将文件安全地保存在将要安装 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_vcenter:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: VMWARE_VCENTER
            raw_log_field: body
    
    service:
        pipelines:
            logs/vmware_vcenter_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/vmware_vcenter
    

配置参数

替换以下占位符:

  • 接收器配置

    • 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"
        

在 VMware vCenter 中配置 syslog

  1. 登录 vCenter Server 管理 Web 界面。
  2. 依次前往 Syslog > Forwarding Configuration
  3. 点击配置以创建新的转发配置。
  4. 提供以下配置详细信息:
    • 服务器地址:输入 Bindplane 代理 IP 地址。
    • 协议:选择 UDP
    • 端口:输入 Bindplane 代理端口号(例如 514)。
  5. 点击保存
  6. 点击发送测试消息以验证配置。

UDM 映射表

日志字段 UDM 映射 逻辑
Access Mask principal.process.access_mask 从十六进制转换为十进制。
Account Domain principal.administrative_domain
Account Name principal.user.userid
ApplicationProtocol additional.fields
Authentication Package security_result.about.resource.name
Client Address principal.ip,principal.asset.ip 解析为 IP。
Client Port principal.port 转换为整数。
cmd target.process.command_line
date 时间戳 解析为 yyyy-MM-dd,并与时间合并为 yyyy-MM-dd HH:mm:ss,解析为日期。
date_time 时间戳 解析为采用 RFC 3339、TIMESTAMP_ISO8601、SYSLOGTIMESTAMP 格式的日期。
desc metadata.description
eventid metadata.product_event_type 与任务合并,作为 eventid - task。
host_name principal.hostname,principal.asset.hostname
http_method network.http.method
ip target.ip,target.asset.ip
kv_data1 解析为键值对。
kv_data2 解析为键值对。
kv_msg1.cipher network.tls.cipher
kv_msg1.ctladdr intermediary.labels
kv_msg1.daemon security_result.about.labels
kv_msg1.from network.email.from 如果 mail_from 不包含 @,则附加 @local。
kv_msg1.msgid network.email.mail_id
kv_msg1.proto security_result.about.labels
kv_msg1.relay intermediary.hostname,intermediary.ip 是否解析为 (HOSTNAME)?[IP] 或 HOSTNAME,如果存在 relay_domain,则设置为 intermediary.hostname;如果存在 relay_ip,则合并到 intermediary.ip。
kv_msg1.size network.sent_bytes 转换为无符号整数。
kv_msg1.stat security_result.summary
kv_msg1.verify security_result.description,security_result.action 如果 kv_msg1.verify 为 FAIL,则将 security_result.action 设置为 BLOCK。
kv_msg1.version network.tls.version
labels.log_type metadata.product_event_type
labels.net.host.ip principal.ip,principal.asset.ip
labels.net.host.port principal.port
labels.net.peer.ip target.ip,target.asset.ip
labels.net.peer.port target.port
labels.net.transport network.ip_protocol 如果 labels.net.transport 为 TCP,则为 TCP。
level security_result.severity 如果级别为 INFO/Informational/DEBUG/info/Information,则为 INFORMATIONAL;如果级别为 ERROR/error,则为 ERROR;如果级别为 WARNING,则为 LOW。
log.file.path target.process.file.full_path
logName security_result.category_details
Logon Account principal.user.userid
Logon Type extensions.auth.mechanism 如果 logon_type 为 2/Interactive,则为 INTERACTIVE;如果 logon_type 为 3/8,则为 NETWORK;如果 logon_type 为 4,则为 BATCH;如果 logon_type 为 5,则为 SERVICE;如果 logon_type 为 7,则为 UNLOCK;如果 logon_type 为 9,则为 NEW_CREDENTIALS;如果 logon_type 为 10,则为 REMOTE_INTERACTIVE;如果 logon_type 为 11,则为 CACHED_INTERACTIVE;否则为 MECHANISM_UNSPECIFIED。
mail_from network.email.from 如果 mail_from 不包含 @,则附加 @local。
mail_to network.email.to 如果 mail_to 不包含 @,则附加 @local。
message 使用 grok 模式进行解析。
namespace principal.namespace
port target.port 转换为整数。
process_id target.process.pid
providername principal.application
Relative Target Name target.file.full_path
resource.labels.project_id src.cloud.project.id
resource.type src.labels
response_status network.http.response_code 转换为整数。
sec_desc security_result.description
Security ID target.user.windows_sid
security_result_action_detail security_result.action_details
server_name target.hostname,target.asset.hostname
Share Name target.resource.name
Source Network Address principal.ip,principal.asset.ip 解析为 IP。
Source Port principal.port 转换为整数。
summary security_result.summary
target_host target.hostname,target.asset.hostname
target_url target.url
target_userid target.user.userid
time 时间戳 解析为 HH:mm:ss,并与日期合并为 yyyy-MM-dd HH:mm:ss,解析为日期。
upn_name intermediary.url
URL target.url
User ID target.user.windows_sid
user_id principal.user.userid
UserAgent network.http.user_agent
metadata.event_type 如果消息包含 API_HEALTH 或 JobDispatcher,则设置为 STATUS_UPDATE;如果消息包含“logged in as”且 target_userid 不为空,则设置为 USER_LOGIN;如果消息包含“Leave Validate”,则设置为 SCAN_HOST;如果消息包含“Getting IP Address from host”,则设置为 NETWORK_UNCATEGORIZED;如果消息包含“Wrote vpxd health”,则设置为 RESOURCE_WRITTEN;如果 has_principal 和 has_target 为 true 且 application_protocol 不为空,则设置为 NETWORK_HTTP;如果 process_id 和 cmd 不为空,则设置为 PROCESS_LAUNCH;如果 user_id 不为空或 eventid 为 4776,则设置为 USER_UNCATEGORIZED;如果 eventid 为 4624/4768/4769,则设置为 USER_LOGIN;如果 eventid 为 4634/4647,则设置为 USER_LOGOUT;如果 eventid 为 5145,则设置为 USER_RESOURCE_ACCESS;如果 host_name 不为空,则设置为 STATUS_UPDATE;否则设置为 GENERIC_EVENT。
extensions.auth.type 如果 eventid 为 4624/4768/4769,则设置为 MACHINE。
metadata.log_type 设置为 VMWARE_VCENTER。
metadata.vendor_name 设置为 VMWARE。
metadata.product_name 设置为 VCENTER。
security_result.action 如果 response_status 为 200 或 action 为“允许”,则设置为 ALLOW。
r_name event.idm.read_only_udm.principal.resource.name 从变更日志映射
ppid event.idm.read_only_udm.principal.process.pid 从变更日志映射
p_ip event.idm.read_only_udm.principal.ip 从变更日志映射
p_ip event.idm.read_only_udm.principal.asset.ip 从变更日志映射
p_port event.idm.read_only_udm.principal.port 从变更日志映射
i_ip event.idm.read_only_udm.intermediary.ip 从变更日志映射
i_ip event.idm.read_only_udm.intermediary.asset.ip 从变更日志映射
i_port event.idm.read_only_udm.intermediary.port 从变更日志映射
t_ip event.idm.read_only_udm.target.ip 从变更日志映射
t_ip event.idm.read_only_udm.target.asset.ip 从变更日志映射
o_ip event.idm.read_only_udm.observer.ip 从变更日志映射
o_ip event.idm.read_only_udm.observer.asset.ip 从变更日志映射
o_port event.idm.read_only_udm.observer.port 从变更日志映射
tls_details event.idm.read_only_udm.network.tls.version_protocol 从变更日志映射
duration event.idm.read_only_udm.network.session_duration.seconds 从变更日志映射
r_bytes event.idm.read_only_udm.network.received_bytes 从变更日志映射
s_bytes event.idm.read_only_udm.network.sent_bytes 从变更日志映射
response_flag event.idm.read_only_udm.additional.fields 从变更日志映射
unknown_metric_2 event.idm.read_only_udm.additional.fields 从变更日志映射
unknown_metric_1 event.idm.read_only_udm.additional.fields 从变更日志映射
http_path event.idm.read_only_udm.additional.fields 从变更日志映射
pusername event.idm.read_only_udm.principal.user.user_display_name 从变更日志映射
puserid event.idm.read_only_udm.principal.user.userid 从变更日志映射
log_level event.idm.read_only_udm.security_result.severity 从变更日志映射
response_code event.idm.read_only_udm.network.http.response_code 从变更日志映射
http_details event.idm.read_only_udm.network.http.user_agent 从变更日志映射
http_details event.idm.read_only_udm.network.http.parsed_user_agent 从变更日志映射
t_url event.idm.read_only_udm.target.url 从变更日志映射
hmethod event.idm.read_only_udm.network.http.method 从变更日志映射
p_log_id event.idm.read_only_udm.metadata.product_log_id 从变更日志映射
meta_description event.idm.read_only_udm.metadata.description 从变更日志映射
p_event_type event.idm.read_only_udm.metadata.product_event_type 从变更日志映射
p_hostname event.idm.read_only_udm.principal.hostname 从变更日志映射
p_hostname event.idm.read_only_udm.principal.asset.hostname 从变更日志映射
c_timestamp event.idm.read_only_udm.metadata.collected_timestamp 从变更日志映射
action event.idm.read_only_udm.additional.fields 从变更日志映射
conn_id event.idm.read_only_udm.additional.fields 从变更日志映射
facility event.idm.read_only_udm.additional.fields 从变更日志映射
process event.idm.read_only_udm.additional.fields 从变更日志映射
tenant event.idm.read_only_udm.additional.fields 从变更日志映射
duration_ms event.idm.read_only_udm.additional.fields 从变更日志映射
provider event.idm.read_only_udm.additional.fields 从变更日志映射
provider_type event.idm.read_only_udm.additional.fields 从变更日志映射
cor_id event.idm.read_only_udm.metadata.product_log_id 从变更日志映射
inter_ip event.idm.read_only_udm.intermediary.ip 从变更日志映射
tls_cipher event.idm.read_only_udm.network.tls.cipher 从变更日志映射
event_status event.idm.read_only_udm.security_result.summary 从变更日志映射
file_path event.idm.read_only_udm.target.file.full_path 从变更日志映射
target_userid event.idm.read_only_udm.target.user.userid 从变更日志映射
open_connections event.idm.read_only_udm.additional.fields 从变更日志映射
total_connections event.idm.read_only_udm.additional.fields 从变更日志映射
channel_id event.idm.read_only_udm.additional.fields 从变更日志映射
line_number event.idm.read_only_udm.additional.fields 从变更日志映射
timestamps' read_only_udm.metadata.event_timestamp 从变更日志映射
event_name' event.idm.read_only_udm.metadata.product_event_type 从变更日志映射
srcip event.idm.read_only_udm.principal.ipevent.idm.read_only_udm.principal.asset.ip之间 从变更日志映射
usrName event.idm.read_only_udm.target.user.userid 从变更日志映射
user_agent event.idm.read_only_udm.network.http.user_agent 从变更日志映射
LEEF_version_label event.idm.read_only_udm.additional.fields 从变更日志映射
msg event.idm.read_only_udm.metadata.description 从变更日志映射
opID event.idm.read_only_udm.additional.fields 从变更日志映射
sub event.idm.read_only_udm.additional.fields 从变更日志映射
api_invocations additional.fields 从变更日志映射
response_details target.resource.attribute.labels 从变更日志映射
usr_agnt network.http.user_agent 从变更日志映射
ver_proto network.tls.version 从变更日志映射
DeviceUUID metadata.product_log_id 从变更日志映射
InstanceId target.asset_id 从变更日志映射
EventPriority security_result.severity 从变更日志映射
AccessControlRuleAction security_result_action 从变更日志映射
SrcIP principal.ip 从变更日志映射
DstIP target.ip 从变更日志映射
ICMPType", "ICMPCode", "IngressInterface", "EgressInterface", "WebApplication", "DNSQuery", "DNSRecordType", "DNSResponseType", "DNS_TTL", "service.type", "log.syslog.facility.code", "log.syslog.facility.name", "log.syslog.severity.code","log.syslog.severity.name", "log.syslog.priority additional.fields 从变更日志映射
IngressZone principal.location.name 从变更日志映射
EgressZone target.location.name 从变更日志映射
ACPolicy security_result.rule_labels 从变更日志映射
AccessControlRuleName security_result.rule_name 从变更日志映射
NAPPolicy security_result.rule_labels 从变更日志映射
InitiatorPackets network.sent_packets 从变更日志映射
ResponderPackets network.received_packets 从变更日志映射
InitiatorBytes network.sent_bytes 从变更日志映射
ResponderBytes network.received_bytes 从变更日志映射
FirstPacketSecond" and "ConnectionID security_result.about.labels 从变更日志映射
Client target.labels 从变更日志映射
ClientVersion target.platform_version 从变更日志映射
ReferencedHost target.hostname 从变更日志映射
HTTPResponse network.http.response_code 从变更日志映射
ApplicationProtocol network.application_protocol 从变更日志映射
host1.ip principal.ip 从变更日志映射
version metadata.product_version 从变更日志映射
principal_ip1 principal.ip 从变更日志映射
principal_ip2 principal.ip 从变更日志映射
target_ip1 target.ip 从变更日志映射
target_ip2 target.ip 从变更日志映射
principal_port principal.port 从变更日志映射
target_port target.port 从变更日志映射
Client port principal.port 从变更日志映射
Source port principal.port 从变更日志映射
insertId metadata.product_log_id 从变更日志映射
@fields.host principal.hostname 从变更日志映射
@fields.facility principal.resource.type 从变更日志映射
@fields.company_name principal.user.company_name 从变更日志映射
@fields.privatecloud_id principal.cloud.project.id 从变更日志映射
@fields.privatecloud_name principal.cloud.project.name 从变更日志映射
@fields.procid principal.process.pid 从变更日志映射
@fields.region_id principal.location.country_or_region 从变更日志映射
@version principal.platform_version 从变更日志映射
basedn_group_iden target.user.group_identifiers 从变更日志映射
get_error intermediary.labels 从变更日志映射
ssh_proto network.application_protocol 从变更日志映射
file_path target.process.file.full_path 从变更日志映射

更新日志

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

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