收集 Kong Gateway 日志

支持的平台:

本文档介绍了如何使用多种提取方法(包括 webhook、通过 Bindplane 代理的 syslog 和 Cloud Storage)将 Kong Gateway 和 Kong Konnect 日志收集到 Google Security Operations 中。

Kong Gateway 是一款基于 NGINX 构建的开源云原生 API 网关。它为 API 和微服务提供流量管理、身份验证、速率限制、分析和日志记录功能。Kong Konnect 是 Kong Gateway 的 SaaS 管理平台,可提供集中式控制平面管理、审核日志记录和可观测性。

准备工作

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

  • Google SecOps 实例
  • 正在运行的 Kong Gateway 实例(自行管理)或 Kong Konnect 账号 (SaaS)
  • 对端口 8001 (HTTP) 或 8444 (HTTPS) 上的 Kong Gateway Admin API 的管理访问权限
  • 对于 Kong Konnect:具有相应权限的个人访问令牌 (PAT) 或系统账号令牌
  • 对 Google Cloud Console 的访问权限(用于创建 API 密钥,如果使用 Webhook 提取)

配置 Kong Gateway 以使用 Webhook(HTTP Log 插件)推送日志

此方法使用 Kong Gateway HTTP Log 插件通过 HTTP POST 将请求和响应日志直接发送到 Google SecOps 网络钩子端点。每个代理请求都会生成一个 JSON 日志条目,并发送到配置的端点。

在 Google SecOps 中创建 Webhook Feed

创建 Feed

  1. 依次前往 SIEM 设置 > Feed
  2. 点击添加新 Feed
  3. 在下一页上,点击配置单个 Feed
  4. Feed 名称字段中,输入 Feed 的名称(例如 Kong Gateway Logs)。
  5. 选择 Webhook 作为来源类型
  6. 选择 Kong Gateway 作为日志类型
  7. 点击下一步
  8. 为以下输入参数指定值:
    • 定界符(可选):输入 \n 以拆分以换行符分隔的 JSON 事件
    • 资产命名空间资产命名空间
    • 注入标签:要应用于此 Feed 中事件的标签
  9. 点击下一步
  10. 最终确定界面中查看新的 Feed 配置,然后点击提交

生成并保存密钥

创建 Feed 后,您必须生成用于身份验证的密钥:

  1. 在 Feed 详情页面上,点击生成密钥
  2. 系统会显示一个对话框,其中包含密钥。
  3. 复制并妥善保存此密钥。

重要提示:密钥只会显示一次,之后无法再检索。如果您丢失了密钥,必须生成新的密钥。

获取 Feed 端点网址

  1. 前往相应 Feed 的详细信息标签页。
  2. 端点信息部分,复制 Feed 端点网址
  3. 网址格式为:

    https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate
    

    https://<REGION>-malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate
    
  4. 保存此网址以供后续步骤使用。

  5. 点击完成

创建 Google Cloud API 密钥

Chronicle 需要 API 密钥进行身份验证。在 Google Cloud Console 中创建受限 API 密钥。

创建 API 密钥

  1. 前往 Google Cloud 控制台的“凭据”页面
  2. 选择您的项目(与您的 Chronicle 实例关联的项目)。
  3. 依次点击创建凭据> API 密钥
  4. 系统会创建一个 API 密钥,并在对话框中显示该密钥。
  5. 点击修改 API 密钥以限制密钥。

限制 API 密钥

  1. API 密钥设置页面中:
    • 名称:输入一个描述性名称(例如 Chronicle Webhook API Key
  2. API 限制下:
    1. 选择限制密钥
    2. 选择 API 下拉菜单中,搜索并选择 Google SecOps API(或 Chronicle API)。
  3. 点击保存
  4. 从页面顶部的 API 密钥字段复制 API 密钥值。
  5. 安全地保存 API 密钥。

构建网络钩子网址

  • 将 Chronicle 端点网址和 API 密钥组合在一起:

    <ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY>
    
  • 示例

    https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=AIzaSyD...&secret=abcd1234...
    

保存此完整网址,以用于 Kong Gateway HTTP Log 插件配置。

配置 Kong Gateway HTTP Log 插件

HTTP 日志插件会通过 JSON 格式的 POST 请求将请求和响应日志发送到 HTTP 端点。您可以使用 Kong Admin API 全局启用插件(适用于所有服务和路由)、按服务启用插件或按路由启用插件。

全局启用 HTTP 日志插件

  • 如需将所有代理请求的日志发送到 Google SecOps,请向 Kong Admin API 发送以下请求,以全局启用该插件:

    curl -i -X POST http://localhost:8001/plugins/ \
        --header "Accept: application/json" \
        --header "Content-Type: application/json" \
        --data '{
            "name": "http-log",
            "config": {
                "http_endpoint": "<ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY>",
                "method": "POST",
                "timeout": 3000,
                "keepalive": 60000,
                "retry_count": 1,
                "queue": {
                    "max_batch_size": 100,
                    "max_coalescing_delay": 10
                }
            }
        }'
    

替换以下内容:

  • <ENDPOINT_URL>:Google SecOps Feed 端点网址
  • <API_KEY>:Google Cloud API 密钥
  • <SECRET_KEY>:Google SecOps 网络钩子密钥

为特定服务启用 HTTP 日志插件

  • 如需仅发送特定服务的日志,请发送以下请求:

    curl -i -X POST http://localhost:8001/services/{serviceName|Id}/plugins/ \
        --header "Accept: application/json" \
        --header "Content-Type: application/json" \
        --data '{
            "name": "http-log",
            "config": {
                "http_endpoint": "<ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY>",
                "method": "POST",
                "timeout": 3000,
                "keepalive": 60000,
                "retry_count": 1
            }
        }'
    

    {serviceName|Id} 替换为目标服务的名称或 ID。

为特定路由启用 HTTP 日志插件

  • 如需仅发送特定路线的日志,请发送以下请求:

    curl -i -X POST http://localhost:8001/routes/{routeName|Id}/plugins/ \
        --header "Accept: application/json" \
        --header "Content-Type: application/json" \
        --data '{
            "name": "http-log",
            "config": {
                "http_endpoint": "<ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY>",
                "method": "POST",
                "timeout": 3000,
                "keepalive": 60000,
                "retry_count": 1
            }
        }'
    

    {routeName|Id} 替换为目标路由的名称或 ID。

通过 Kong Konnect API 启用 HTTP Log 插件

  • 如果您通过 Kong Konnect 管理 Kong Gateway,请使用 Konnect API 启用 HTTP Log 插件:

    curl -X POST https://{region}.api.konghq.com/v2/control-planes/{controlPlaneId}/core-entities/plugins/ \
        --header "accept: application/json" \
        --header "Content-Type: application/json" \
        --header "Authorization: Bearer $KONNECT_TOKEN" \
        --data '{
            "name": "http-log",
            "config": {
                "http_endpoint": "<ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY>",
                "method": "POST",
                "timeout": 3000,
                "keepalive": 60000,
                "retry_count": 1
            }
        }'
    

替换以下内容:

  • {region}:托管 Kong Konnect 的地理区域(例如 useu
  • {controlPlaneId}:控制平面的 ID
  • $KONNECT_TOKEN:您的个人访问令牌 (PAT)

通过声明性配置 (decK) 启用 HTTP 日志插件

  • 将以下内容添加到 kong.yaml 配置文件中:

    _format_version: "3.0"
    plugins:
        - name: http-log
            config:
                http_endpoint: "<ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY>"
                method: POST
                timeout: 3000
                keepalive: 60000
                retry_count: 1
                queue:
                    max_batch_size: 100
                    max_coalescing_delay: 10
    

验证 HTTP 日志插件

  1. 通过 Kong Gateway 发送测试请求:

    curl -i http://localhost:8000/your-route
    
  2. 通过列出插件来验证插件是否已启用:

    curl -s http://localhost:8001/plugins/ | grep http-log
    
  3. 在 Google SecOps 中,前往搜索,然后搜索包含 metadata.log_type = "KONG_GATEWAY" 的日志,以确认日志提取。

配置 Kong Konnect 审核日志网络钩子

此方法用于配置 Kong Konnect (SaaS),以将审核日志(身份验证、授权和访问事件)推送到 Google SecOps webhook 端点。

生成 Kong Konnect 个人访问令牌

  1. 登录 Kong Konnect
  2. 点击右上角的用户图标,打开上下文菜单。
  3. 点击个人访问令牌
  4. 点击 Generate Token(生成令牌)。
  5. 输入令牌的名称(例如,Chronicle Audit Log Setup)。
  6. 选择失效期限。
  7. 点击生成
  8. 复制并妥善保存令牌。令牌只会显示一次。

为 Konnect 审核日志创建 Google SecOps Webhook Feed

  1. 依次前往 SIEM 设置 > Feed
  2. 点击添加新 Feed
  3. 在下一页上,点击配置单个 Feed
  4. Feed 名称字段中,输入 Feed 的名称(例如 Kong Konnect Audit Logs)。
  5. 选择 Webhook 作为来源类型
  6. 选择 Kong Gateway 作为日志类型
  7. 点击下一步
  8. 为以下输入参数指定值:
    • 拆分定界符:输入 \n 可拆分以换行符分隔的事件
    • 资产命名空间资产命名空间
    • 注入标签:要应用于此 Feed 中事件的标签
  9. 点击下一步
  10. 最终确定界面中查看新的 Feed 配置,然后点击提交
  11. 点击 Generate Secret Key(生成密钥),然后保存密钥。
  12. 前往详细信息标签页,然后复制 Feed 端点网址
  13. 按照上一部分中的步骤创建 Google Cloud API 密钥。
  14. 构建完整的网络钩子网址:

    <ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY>
    

在 Konnect 中创建审核日志目标位置

  • 向 Konnect API 发送 POST 请求,以创建审核日志目的地:

    curl -X POST "https://global.api.konghq.com/v3/audit-log-destinations" \
        --header "Authorization: Bearer $KONNECT_TOKEN" \
        --header "Content-Type: application/json" \
        --data '{
            "endpoint": "<ENDPOINT_URL>?key=<API_KEY>",
            "authorization": "<SECRET_KEY>",
            "log_format": "json",
            "name": "Chronicle SecOps"
        }'
    

替换以下内容:

  • $KONNECT_TOKEN:您的 Kong Konnect 个人访问令牌
  • <ENDPOINT_URL>:Google SecOps Feed 端点网址
  • <API_KEY>:Google Cloud API 密钥
  • <SECRET_KEY>:Google SecOps 网络钩子密钥

保存响应中的 id 值以供下一步使用。

启用审核日志 Webhook

  • 发送 PATCH 请求以启用 webhook:

    curl -X PATCH "https://us.api.konghq.com/v3/audit-log-webhook" \
        --header "Authorization: Bearer $KONNECT_TOKEN" \
        --header "Content-Type: application/json" \
        --data '{
            "audit_log_destination_id": "<DESTINATION_ID>",
            "enabled": true
        }'
    

    <DESTINATION_ID> 替换为上一步返回的 ID。

验证 Konnect 审核日志传送

  1. 通过发出 Konnect API 请求来触发审核日志事件:

    curl -X GET "https://us.api.konghq.com/v2/control-planes" \
        --header "Authorization: Bearer $KONNECT_TOKEN"
    
  2. 等待 1-2 分钟,让日志传播。

  3. 在 Google SecOps 中,搜索包含 metadata.log_type = "KONG_GATEWAY" 的日志。

Konnect 审核日志 webhook 行为

  • 对于 429(请求过多)和 500(服务器错误)HTTP 状态代码,Konnect 会重试网络钩子传送。
  • 重试等待时间下限:1 秒。
  • 重试等待时间上限:30 秒。
  • 重试次数上限:4。
  • Konnect 会将审核日志保留 7 天。7 天后,日志会被永久删除。
  • 支持的日志格式:cef(ArcSight CEF 格式)、jsoncps(CrowdStrike 解析标准)。

身份验证方法参考

Chronicle webhook Feed 支持多种身份验证方法。选择供应商支持的方法。

方法 1:查询参数

  • Kong Gateway HTTP Log 插件支持在网址中传递凭据。

  • 网址格式

    <ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY>
    
  • 示例

    https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=AIzaSyD...&secret=abcd1234...
    

方法 2:带有查询参数的自定义标头

Kong Gateway HTTP Log 插件通过 config.headers 参数支持自定义 HTTP 标头。您可以在网址中传递 API 密钥,并在自定义标头中传递密钥。

  • Kong Admin API 示例

    curl -i -X POST http://localhost:8001/plugins/ \
        --header "Accept: application/json" \
        --header "Content-Type: application/json" \
        --data '{
            "name": "http-log",
            "config": {
                "http_endpoint": "<ENDPOINT_URL>?key=<API_KEY>",
                "method": "POST",
                "timeout": 3000,
                "headers": {
                    "x-chronicle-auth": "<SECRET_KEY>"
                }
            }
        }'
    

身份验证标头名称

Chronicle 接受以下身份验证标头名称:

对于 API 密钥

  • x-goog-chronicle-auth(推荐)
  • X-Goog-Chronicle-Auth(不区分大小写)

对于密钥

  • x-chronicle-auth(推荐)
  • X-Chronicle-Auth(不区分大小写)

Webhook 限制和最佳实践

请求限制

限制
最大请求大小 4 MB
最大 QPS(每秒查询次数) 15000
请求超时 30 秒
重试行为 自动(使用指数退避算法)

Kong HTTP Log 插件队列配置

参数 说明 推荐值
config.queue.max_batch_size 每个批次的日志条目数量上限 100
config.queue.max_coalescing_delay 发送批次之前的最长等待时间(以秒为单位) 10
config.queue.max_entries 队列中的条目数量上限 10000
config.queue.max_retry_time 重试失败的传送操作的最长时间(以秒为单位) 60
config.queue.initial_retry_delay 重试前的初始等待时间(以秒为单位) 0.01

使用 Bindplane 代理配置 Kong Gateway syslog 转发

此方法使用 Kong Gateway Syslog 插件将日志写入本地 syslog 守护程序,然后由 Bindplane 代理收集这些日志并将其转发到 Google SecOps。此方法适用于自管理的 Kong Gateway 部署。

获取 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 /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/kong_gateway:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<CUSTOMER_ID>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: KONG_GATEWAY
            raw_log_field: body
    
    service:
        pipelines:
            logs/kong_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/kong_gateway
    

配置参数

替换以下占位符:

  • 导出器配置

    • <CUSTOMER_ID>:在上一步中复制的 Google SecOps 客户 ID
    • creds_file_path:数据注入身份验证文件的完整路径:
      • Linux/etc/bindplane-agent/ingestion-auth.json
      • WindowsC:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • 端点:区域端点网址:
      • 美国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"
      

配置 Kong Gateway syslog 转发

您可以通过 syslog 转发 Kong Gateway 日志,具体有两种方法:使用 Syslog 插件(用于每个请求的 API 流量日志)和使用 kong.conf(用于系统级访问和错误日志)。

方法 1:通过 Admin API 启用 Syslog 插件

  • Syslog 插件以 JSON 格式将每个代理的请求和响应记录到本地 syslog 守护程序。通过向 Kong Admin API 发送以下请求,全局启用该插件:

    curl -i -X POST http://localhost:8001/plugins/ \
        --header "Accept: application/json" \
        --header "Content-Type: application/json" \
        --data '{
            "name": "syslog",
            "config": {
                "log_level": "info",
                "successful_severity": "info",
                "client_errors_severity": "info",
                "server_errors_severity": "info"
            }
        }'
    

Syslog 插件配置参数:

  • log_level:要发送到 syslog 的最低日志级别。接受的值:debuginfonoticewarningerrcritalertemerg。默认值:info
  • successful_severity:成功请求(2xx 状态代码)的 Syslog 严重程度。默认值:info
  • client_errors_severity:客户端错误请求(状态代码为 4xx)的 Syslog 严重程度。默认值:info
  • server_errors_severity:服务器错误请求(状态代码为 5xx)的 Syslog 严重程度。默认值:info

方法 2:配置 kong.conf 以进行远程 syslog 转发

  • 如需将 Kong Gateway 系统日志(访问日志和错误日志)直接转发到远程 syslog 服务器,请修改 kong.conf 文件并设置以下参数:

    proxy_access_log=syslog:server=<BINDPLANE_IP>:514,facility=user,tag=kong_proxy_access,severity=info
    proxy_error_log=syslog:server=<BINDPLANE_IP>:514,facility=user,tag=kong_proxy_error,severity=info
    admin_access_log=syslog:server=<BINDPLANE_IP>:514,facility=user,tag=kong_admin_access,severity=info
    admin_error_log=syslog:server=<BINDPLANE_IP>:514,facility=user,tag=kong_admin_error,severity=info
    

<BINDPLANE_IP> 替换为运行 Bindplane 代理的主机的 IP 地址。

  • 修改 kong.conf 后,重启 Kong Gateway:

    kong restart
    

方法 3:通过声明性配置 (decK) 启用 Syslog 插件

  • 将以下内容添加到 kong.yaml 配置文件中:

    _format_version: "3.0"
    plugins:
        - name: syslog
            config:
                log_level: info
                successful_severity: info
                client_errors_severity: info
                server_errors_severity: info
    

验证 Syslog 转发

  1. 通过 Kong Gateway 发送测试请求:

    curl -i http://localhost:8000/your-route
    
  2. 检查 Bindplane 代理日志中是否有传入的 syslog 消息:

    sudo journalctl -u observiq-otel-collector -f
    
  3. 在 Google SecOps 中,搜索包含 metadata.log_type = "KONG_GATEWAY" 的日志,以确认日志注入。

Kong Gateway 日志格式参考

所有 Kong Gateway 日志记录插件(HTTP Log、Syslog、File Log、TCP Log、UDP Log)都以相同的 JSON 格式输出日志。每个日志条目都包含以下字段:

字段 说明
请求 客户端请求的属性,包括标头、方法、URI、大小和网址
响应 响应的属性,包括状态代码、标头和大小
latencies.kong 内部 Kong 网关处理延迟时间(以毫秒为单位)
latencies.proxy 上游服务处理请求的时间(以毫秒为单位)
latencies.request 从收到第一个字节到发送最后一个字节的总请求时间(以毫秒为单位)
latencies.receive 接收和处理上游响应的时间(以毫秒为单位)
服务 与请求关联的网关服务的属性
路线 所请求的特定路线的属性
client_ip 原始客户端 IP 地址
尝试次数 负载平衡器迭代,包括 IP、端口和均衡器延迟时间
工作区 与请求关联的 Workspace 的 UUID
workspace_name 与请求关联的工作区的名称
upstream_uri 发送给上游服务的 URI
upstream_status 从上游服务收到的 HTTP 状态代码
source 指明回答是由 kong 还是 upstream 生成的
started_at 请求处理开始时的 Unix 时间戳
consumer 经过身份验证的消费者(仅在启用身份验证时存在)
authenticated_entity 经过身份验证的凭据的属性(仅在启用身份验证时显示)

UDM 映射表

日志字段 UDM 映射 逻辑
intermediary_host 中介 从包含 intermediary_host 中的主机名和 xff_ips 中的 IP 的中间哈希合并而来
xff_ips 中介
service.host metadata.event_type 如果 service.host 或 client_ip 不为空,则设置为“NETWORK_CONNECTION”;否则,如果 target 不为空,则设置为“STATUS_UNCATEGORIZED”;否则设置为“GENERIC_EVENT”
client_ip metadata.event_type
request.headers.x-consumer-id metadata.ingestion_labels 合并为标签,键为“x-consumer-id”,值为 request.headers.x-consumer-id
metadata._id metadata.product_log_id 直接复制值
metadata.version metadata.product_version 直接复制值
application_protocol network.application_protocol 从 route.protocols 或 service.protocol 设置的 application_protocol 的值
request.method network.http.method 直接复制值
response.status network.http.response_code 转换为整数
response.size network.received_bytes 已转换为 uinteger
request.size network.sent_bytes 已转换为 uinteger
agent.name observer.asset_id 由 agent.name 和 agent.id 连接而成
agent.id observer.asset_id
agent.hostname observer.hostname 直接复制值
agent.version observer.platform_version 直接复制值
agent.ephemeral_id observer.resource.attribute.labels 合并为键为“ephemeral_id”、值为 agent.ephemeral_id 的标签
cloud.availability_zone principal.cloud.availability_zone 直接复制值
cloud.instance.id principal.cloud.project.id 直接复制值
cloud.instance.name principal.cloud.project.name 直接复制值
cloud.machine.type principal.cloud.project.type 如果不为空,则设置为“VIRTUAL_MACHINE”
principal_host principal.hostname 如果 principal_host 中的值不为空,则返回该值;否则返回 host.fqdn
host.fqdn principal.hostname
host.ip principal.ip 从 host.ip 数组合并
host.mac principal.mac 从 host.mac 数组合并
host.os.name principal.platform 如果匹配 (?i)Linux,则设置为“LINUX”;如果匹配 (?i)windows,则设置为“WINDOWS”;如果匹配 (?i)mac,则设置为“MAC”
host.os.version principal.platform_version 直接复制值
request.headers.content-type principal.resource.attribute.labels 从以下标签合并而来:键为“content-type”且值为 request.headers.content-type 的标签,以及键为“auth_type”且值为 request.decoded_headers.authorization.auth_type 的标签
request.decoded_headers.authorization.auth_type principal.resource.attribute.labels
request.url principal.url 直接复制值
request.decoded-headers.authorization.user principal.user.user_display_name 直接复制值
log_level security_result 根据 log_level 正则表达式匹配结果设置严重程度,并从 security_result 哈希合并
service.host target.asset_id 由 service.host 和 service.id 连接而成
service.id target.asset_id
log.file.path target.file.full_path 直接复制值
service.host target.hostname 如果 service.host 不是 IP,则直接复制值
client_ip target.ip 如果 service.host 是 IP,则从 client_ip 和 service_host 合并
service_host target.ip
service.port target.port 转换为整数
response.headers.set-cookie target.resource.attribute.labels 从具有以下键和值的标签合并而来:键为“set-cookie”,值为 response.headers.set-cookie;键为“route.id”,值为 route.id
route.id target.resource.attribute.labels
metadata.vendor_name metadata.vendor_name 设置为“KONG_GATEWAY”
metadata.product_name metadata.product_name 设置为“KONG_GATEWAY”

更新日志

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

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