收集 Citrix NetScaler 日志

支持的平台:

本文档介绍了如何使用 Bindplane 将 Citrix NetScaler 日志注入到 Google Security Operations。

解析器从 Citrix NetScaler syslog 和键值格式的日志中提取字段。它使用 grok 和/或 kv 来解析日志消息,然后将这些值映射到统一数据模型 (UDM)。它还会为事件来源和类型设置默认元数据值。

准备工作

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

  • Google SecOps 实例
  • Windows Server 2016 或更高版本,或者具有 systemd 的 Linux 主机
  • 如果通过代理运行,请确保防火墙端口已根据 Bindplane 代理要求打开
  • 对 Citrix NetScaler 网页界面的特权访问权限

获取 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
    

该服务应显示为 RUNNING

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 /etc/bindplane-agent/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/chronicle_w_labels:
            compression: gzip
            creds_file_path: '/path/to/ingestion-authentication-file.json'
            customer_id: 'YOUR_CUSTOMER_ID'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: 'CITRIX_NETSCALER'
            raw_log_field: body
            ingestion_labels:
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    

配置参数

  • 替换以下占位符:

    • 接收器配置

      • udplog:使用 udplog 表示 UDP syslog,使用 tcplog 表示 TCP syslog
      • 0.0.0.0:要监听的 IP 地址(0.0.0.0 表示监听所有接口)
      • 514:要监听的端口号(标准 syslog 端口)
    • 导出器配置

      • creds_file_path:提取身份验证文件的完整路径:
        • Linux/etc/bindplane-agent/ingestion-auth.json
        • WindowsC:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
      • YOUR_CUSTOMER_ID:从“获取客户 ID”部分获取的客户 ID
      • endpoint:区域端点网址:
        • 美国malachiteingestion-pa.googleapis.com
        • 欧洲europe-malachiteingestion-pa.googleapis.com
        • 亚洲asia-southeast1-malachiteingestion-pa.googleapis.com
        • 如需查看完整列表,请参阅区域级端点
      • log_type:日志类型,与在 Chronicle 中显示的完全一致 (CITRIX_NETSCALER)

保存配置文件

  • 修改后,保存文件:
    • 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"
        

在 Citrix NetScaler 上配置 Syslog 转发

  1. 登录 Citrix NetScaler 网页界面 (NSIP)。
  2. 依次前往系统 > 审核 > Syslog
  3. 点击 Servers 标签页。
  4. 点击添加以创建新的 syslog 服务器。
  5. 提供以下配置详细信息:
    • 名称:输入一个描述性名称(例如 Google-SecOps-Bindplane)。
    • 服务器 IP:输入 Bindplane 代理主机 IP 地址。
    • 端口:输入 514
    • 日志级别:选择所有适用的级别:
      • 全部(建议用于全面日志记录)
    • 设备:选择 LOCAL0(或您偏好的设备)。
    • 日期格式:选择 MMDDYYYY
    • 时区:选择 GMT_TIME(建议使用世界协调时间)。
    • TCP 日志记录:选择 NONE(适用于 UDP)。
    • 日志设备:选择 LOCAL0
  6. 点击创建
  7. 前往政策标签页。
  8. 点击添加以创建新的 syslog 审核政策。
  9. 提供以下配置详细信息:
    • 名称:输入一个描述性名称(例如 Google-SecOps-Policy)。
    • 服务器:选择之前创建的 syslog 服务器。
  10. 点击创建
  11. 全局绑定政策:
    1. 依次前往系统 > 审核
    2. 点击 Syslog Audit Policies(Syslog 审核政策)下的 Global Bindings(全局绑定)。
    3. 点击添加绑定
    4. 选择之前创建的政策。
    5. 点击 Bind(绑定)。
  12. 通过检查 Bindplane 代理日志,验证是否正在发送 syslog 消息。

或者,通过 CLI 进行配置:

add audit syslogAction Google-SecOps-Bindplane BINDPLANE_IP -serverPort 514 -logLevel ALL -dateFormat MMDDYYYY -timeZone GMT_TIME
add audit syslogPolicy Google-SecOps-Policy ns_true Google-SecOps-Bindplane
bind audit syslogGlobal -policyName Google-SecOps-Policy -priority 100
  • BINDPLANE_IP 替换为 Bindplane 代理主机 IP 地址。

UDM 映射表

日志字段 UDM 映射
aaa_info_flags additional.fields
aaa_trans_id security_result.detection.fields
aaad_flags additional.fields
aaad_resp additional.fields
aaaFlags additional.fields
aaaFlags2 additional.fields
act securtiy_result.action_details,
security_result.action
action security_result.action
ADM_User additional.fields
allowed_interface security_result.detection.fields
applicationname target.application
auth_type additional.fields
authActionLen security_result.detection_fields
AuthAgent additional.fields
AuthDuration network.session_duration.seconds
authnvs additional.fields
authorizationStatus security_result.detection.fields
AuthStage additional.fields
Authtype additional.fields
C principal.location.country_or_region
caseId additional.fields
cfg_limit additional.fields
cgp_tag sec_result.detection_fields
channel_id_X additional.fields
channel_id_X_val additional.fields
channel_update_begin additional.fields
channel_update_end additional.fields
cipher_suite network.tls.cipher
client_fip target.ip target.asset.ip
client_fport target.port
client_ip principal.ip,
principal.asset.ip
client_port principal.port
Client_security_expression additional.fields
client_type additional.fields
client_version network.tls.version
client.nat.ip principal.nat_ip,
principal.asset.nat_ip
clientside_jitter additional.fields
clientside_packet_retransmits additional.fields
clientside_rtt additional.fields
clientside_rxbytes network.sent_bytes
clientside_txbytes network.received_bytes
ClientVersion network.tls.version_protocol
CN principal.resource.attribute.labels
cn1 additional.fields
cn2 additional.fields
code additional.fields
commandExecutionStatus security_result.action_details
Compression_ratio_recv additional.fields
Compression_ratio_send additional.fields
configurationCmd security_result.detection.fields
connectionId network.session_id
copied_nsb sec_result.detection_fields
core_id additional.fields
core_refmask additional.fields
cs1 additional.fields
cs2 additional.fields
cs4 additional.fields
cs5 additional.fields
cs6 additional.fields
CSappid additional.fields
CSAppname -
csg_flags additional.fields
ctx_flags additional.fields
cur_attempts additional.fields
CurfactorPolname additional.fields
customername additional.fields
days_for_pwd_exp additional.fields
days_for_pwd_exp_STR additional.fields
delinkTime additional.fields
Denied_by_policy security_result.rule_name
desc metadata.description
destination.ip target.ip,
target.asset.ip
destination.port target.resource.attribute.labels
device_event_class_id metadata.product_event_type
device_version metadata.product_version
Deviceid target.resource.product_object_id
Devicetype additional.fields
dht_delete_status additional.fields
diagnostic_info additional.fields
digestSignatureAlgorithm security_result.detection_fields
dns_additional_count additional.fields
dns_answer_count additional.fields
dns_authority_count additional.fields
dns_flags additional.fields
dns_flags_raw network.dns.recursion_desired
dns_flags_raw network.dns.recursion_available
dns_id network.dns.id
dns_question_count additional.fields
dns_question_name network.dns.question.name
domain security_result.detection.fields,
additional.fields
domain target.administrative_domain
ecs_version additional.fields
encrypt_status security_result.detection_fields
end_time additional.fields
End_time additional.fields
entityName target.resource.name
Error Code additional.fields
event_id metadata.product_log_id
event_name metadata.product_event_type
event_type sec_result.summary
expired_refmask additional.fields
factor security_result.detection.fields
flags additional.fields
flags2 additional.fields
flags3 additional.fields
flags4 additional.fields
func security_result.detection_fields
geolocation location.country_region
Group(s) target.user.group_identifiers
Group(s) target.user.group.identifiers
handshake_time network.session_duration.seconds
HandshakeTime additional.fields
host_hostname principal.hostname
host_ip principal.ip principal.asset.ip
host.name target.hostname,
target.asset.hostname
hostname intermediary.hostname,
intermediary.asset.hostname
hostname target.hostname,
target.asset.hostname
hostname_1 target.hostname,
target.asset.hostname
http_method network.http.method
Http_resources_accessed security_result.detection.fields
http_uri target.url
HTTPS network.application_protocol
ica_conn_owner_refmask sec_result.detection_fields
ica_rtt additional.fields
ica_uuid network.session_id
ICAUUID network.session_id
id metadata.id
init_icamode_homepage additional.fields
inter_hostname intermediary.hostname
interfaceKind security_result.detection.fields
ip intermediary.asset.ip
ip_x principal.ip principal.asset.ip
ipaddress target.ip,
target.asset.ip
is_post additional.fields
IssuerName network.tls.server.certificate.issuer
L principal.location.city
last_contact additional.fields
loc target.url
localdate additional.fields
lock_duration additional.fields
log_action sec_result.detection_fields
log_action security_result.detection.fields
log_category additional.fields
log_data additional.fields
log_format additional.fields
log_timestamp additional.fields
log_type additional.fields
log.syslog.priority additional.fields
login_count sec_result.detection_fields
login_count security_result.detection_fields
LogoutMethod additional.fields
max_attempts additional.fields
message_content security_result.summary
message_id metadata.product_log_id
message_status_code additional.fields
method network.http.method
monitored_resource additional.fields
msg metadata.description
msi_client_cookie additional.fields
msticks additional.fields
Nat_ip additional.fields
principal.nat_ip
principal.asset.nat_ip
(如果 Nat_ip 不是 IP 地址,则为 additional.fields。)
netscaler_principal_ip_context principal.resource.attribute.labels
netscaler_tag intermediary.asset.product_object_id
netscaler_target_ip_context target.resource.attribute.labels
new_webview additional.fields
newWebview additional.fields
NonHttp_services_accessed security_result.detection.fields
nsPartitionName additional.fields
on_port additional.fields
Organization principal.resource.attribute.labels
OU principal.resource.attribute.labels
owner_from additional.fields
owner_id additional.fields
pcb_devno additional.fields
pcbdevno additional.fields
Policyname security_result.rule_name
port principal.port
port_details principal.port
prin_ip principal.ip principal.asset.ip
prin_user principal.user.userid
principal_ip principal.ip,
principal.asset.ip
principal_port principal.port
prod_event_type metadata.product_event_type
protocol network.ip_protocol
protocol_feature security_result.detection.fields
ProtocolVersion network.tls.protocol_version
pwdlen additional.fields
pwdlen2 additional.fields
q_flags additional.fields
reason_val security_result.description
receiver_version additional.fields
record_type network.dns.question.type
refmask additional.fields
remote_ip principal.ip principal.asset.ip
remote_port principal.port
request target.url
ReqURL additional.fields
resource_cmd target.resource.name
resource_name principal.resource.name
response additional.fields
response_code additional.fields
rule_id security_result.rule.id
rule_name security_result.rule_name
SerialNumber network.tls.server.certificate.serial
server_authenticated additional.fields
serverside_jitter additional.fields
serverside_packet_retransmits additional.fields
serverside_rtt additional.fields
service_name principal.applications
sess_flags2: additional.fields
sess_seq network.session_id
sessFlags2 additional.fields
Session additional.fields
session_cookie security_result.detection_fields
session_guid network.session_id
session_id_label network.session_id
session_setup_time additional.fields
session_type sec_result.description
SessionId network.session_id
skip_code additional.fields
source_file additional.fields
source_hostname principal.hostname,
principal.asset.hostname
source_line additional.fields
source.ip principal.ip,
principal.asset.ip
source.port principal.resource.attribute.labels
spcb_id security_result.detecrion.fields
SPCBId sec_result.detection_fields
spt principal.port
src principal.ip principal.asset.ip
src_hostname principal.hostname principal.asset.hostname
src_ip principal.ip principal.asset.ip
src_ip1 src.ip,
src.asset.ip
src_port principal.port
ssid network.session_id
SSLVPN_client_type additional.fields
SSO additional.fields
sso additional.fields
sso_auth_type additional.fields
sso_flags security_result.detection_fields
sso_state additional.fields
SSOduration additional.fields
SSOurl additional.fields
ssoUsername additional.fields
ssoUsername2 additional.fields
ST principal.location.state
sta_port additional.fields
sta_ticket additional.fields
start_time additional.fields
Start_time additional.fields
State security_result.action_details
state additional.fields
state_value additional.fields
StatusCode additional.fields
SubjectName network.tls.client.certificate.subject
summ security_result.summary
summary security_result.summary
sysCmdPolLen security_result.detection.fields
syslog_priority additional.fields
tags additional.fields
tar_ip target.ip target.asset.ip
tar_port target.port
target_id target.resource.id
target_port target.port
TCP network.ip_protocol
timeout_ms additional.fields
timestamp metadata.event_timestamp
Total_bytes_send network.sent_bytes
Total_compressedbytes_recv additional.fields
Total_compressedbytes_send additional.fields
Total_policies_allowed security_result.detection.fields
Total_policies_denied security_result.detection.fields
Total_TCP_connections security_result.detection.fields
Total_UDP_flows security_result.detection.fields
track_flags additional.fields
trans_id -
tt metadata.event_timestamp
User principal.user.userid
user_agent.original network.http.user_agent
user_email principal.user.email_addresses
user_id principal.user.userid
user.domain target.administrative_domain
user.name principal.user.user_display_name
userids target.user.userid
ValidFrom network.tls.server.certificate.not_before
ValidTo network.tls.server.certificate.not_after
version additional.fields
VPNexportState additional.fields
Vport target.port
Vserver Timestamp additional.fields
vserver_id target.resource.product_object_id
Vserver_ip target.ip,
target.asset.ip
vserver_port target.port
Vserver_port target.port
vserver_timestamp additional.fields
vserver.ip target.ip,
target.asset.ip
wirep additional.fields
wirep_name additional.fields
wirep_ref_cnt additional.fields

UDM 映射增量参考信息

2026 年 2 月 3 日,Google SecOps 发布了新版 NetScaler 解析器,其中对 NetScaler 日志字段到 UDM 字段的映射以及事件类型的映射进行了重大更改。

日志字段映射增量

下表列出了 2026 年 2 月 3 日之前和之后公开的 NetScaler 日志到 UDM 字段的映射增量(分别列在“旧映射”列和“当前映射”列中):

日志字段 旧映射 当前映射
act securit_.result.detetction_fields securtiy_result.action_details,
security_result.action
client_ip additional.fields principal.ip,
principal.asset.ip
ClientVersion network.tls.version network.tls.version_protocol
connectionId security_result.detection_fields network.session_id
CSAppname - -
domain target.user.administrative_domain security_result.detection.fields,
additional.fields
end_time security_result.detection.fields security_result.last_discovered_time additional.fields
event_id additional.fields metadata.product_log_id
geolocation location.city location.country_region
Group(s) target.user.group_display_name target.user.group_identifiers
HandshakeTime network.session_duration.seconds additional.fields
host.name intermediary.hostname target.hostname,
target.asset.hostname
hostname target.hostname,
target.asset.hostname
intermediary.hostname,
intermediary.asset.hostname
hostname principal.hostname,
principal.asset.hostname
target.hostname,
target.asset.hostname
ipaddress principal.ip,
principal.asset.ip
target.ip,
target.asset.ip
Nat_ip principal.ip,
principal.asset.ip
principal.nat_ip
principal.nat_ip
port_details principal.labels principal.port
principal_ip target.ip,
target.asset.ip
principal.ip,
principal.asset.ip
request security_result.summary target.url
sess_seq additional.fields network.session_id
session_guid metadata.product_log_id network.session_id
source_hostname target.hostname,
target.asset.hostname
principal.hostname,
principal.asset.hostname
spcb_id additional.fields security_result.detecrion.fields
ssid additional.fields network.session_id
start_time security_result.detection.fields security_result.first_discovered_time additional.fields
SubjectName principal.resource.attribute.labels network.tls.client.certificate.subject
summary metadata.descritption security_result.summary
target_port principal.port target.port
trans_id security_result.detection.fields -
user_id target.user.userid principal.user.userid

事件类型映射增量

下表列出了 2026 年 2 月 3 日之前和之后(分别列在旧 event_type当前 event_type 列中)NetScaler 事件类型处理方式的差异:

旧 event_type 当前 event_type 原因
NETWORK_CONNECTION NETWORK_DNS 如果 message_typeDNS_QUERY 或在 has_network_dnstrue 时命名。
NETWORK_CONNECTION NETWORK_HTTP message_typeSSLVPN HTTPREQUEST 时。
STATUS_UPDATE NETWORK_CONNECTION 映射到适当的特定事件类型。
STATUS_UPDATE USER_RESOURCE_UPDATE_CONTENT message_type 为 SNMP TRAP_SENThas_target_resourcetrue 时,系统会将其映射到适当的特定事件类型。
STATUS_UPDATE USER_UNCATEGORIZED 当存在正文 userid 时,映射到适当的特定事件类型。
USER_RESOURCE_ACCESS NETWORK_HTTP 当 message_type 为 SSLVPN HTTPREQUEST
USER_STATS GENERIC_EVENT USER_STATS 已被废弃,因此会映射到适当的特定事件类型。
USER_STATS NETWORK_CONNECTION USER_STATS 已被废弃,因此会映射到适当的特定事件类型。
USER_STATS USER_LOGIN USER_STATS 已被废弃,因此会映射到适当的特定事件类型。
USER_STATS USER_LOGOUT USER_STATS 已被废弃,因此当 message_typeLOGOUT 时,此值会映射到适当的特定事件类型。
USER_UNCATEGORIZED GENERIC_EVENT 日志中没有任何可供映射的主机器字段。
USER_UNCATEGORIZED NETWORK_CONNECTION 映射到适当的特定事件类型。
USER_UNCATEGORIZED USER_LOGIN 映射到适当的特定事件类型。

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