You need to enable JavaScript to run this app.
导航
集群 IP 溯源
最近更新时间:2025.03.05 11:41:36首次发布时间:2025.03.04 21:23:58

云搜索服务提供集群 IP 溯源功能。开启 IP 溯源日志,将会在日志中记录 HTTP/HTTPS 请求来源的 IP 地址,以帮助用户确定有哪些客户端在访问云搜索服务。

Opensearch 版本

在集群设置中,设置 logger.org.opensearch.http.HttpTracer 的值为 tracehttp.tracer.include 中是需要记录源IP的请求路径,http.tracer.exclude 中是不需要记录源 IP 的请求路径,exclude 的优先级高于 include。请求路径需要全匹配,支持(*)通配符表示,(*)表示零个或多个任意字符,但不支持关键字。在定位源 IP 结束后,需要更新 http 日志级别到 info,设置 logger.org.opensearch.http.HttpTracer:info,以避免打印过多日志。
示例:

PUT /_cluster/settings
{
 "persistent" : {
    "logger.org.opensearch.http.HttpTracer":"trace",
    "http.tracer.include":[
        "/*/_bulk", // 在 TRACE 日志中记录任意索引的 _bulk 请求的 IP
        "/*/_doc", // 在 TRACE 日志中记录任意索引的 _doc 请求的 IP
        "/your_index/_search"  // 在 TRACE 日志中记录 your_index 的 _search 请求的 IP
    ],
    "http.tracer.exclude":[
        "/your_exclude_index/*" // 在 TRACE 日志中排除 your_exclude_index 索引的所有请求的 IP
    ]
  }
}

ES 版本(仅 7.10.2)

在集群设置中,设置 logger.org.elasticsearch.http.HttpTracer 的值为 tracehttp.tracer.include 中是需要记录源 IP 的请求路径,http.tracer.exclude 中是不需要记录源 IP 的请求路径,exclude 的优先级高于 include。请求路径需要全匹配,支持(*)通配符表示,(*)表示零个或多个任意字符,但不支持关键字。在定位源 IP 结束后,需要更新 http 日志级别到 info,设置 logger.org.opensearch.http.HttpTracer:info,以避免打印过多日志。
示例:

PUT /_cluster/settings
{
 "persistent" : {
    "logger.org.elasticsearch.http.HttpTracer":"trace",
    "http.tracer.include":[
        "/*/_bulk", // 在 TRACE 日志中记录任意索引的 _bulk 请求的 IP
        "/*/_doc", // 在 TRACE 日志中记录任意索引的 _doc 请求的 IP
        "/your_index/_search"  // 在 TRACE 日志中记录 your_index 的 _search 请求的 IP
    ],
    "http.tracer.exclude":[
        "/your_exclude_index/*" // 在 TRACE 日志中排除 your_exclude_index 索引的所有请求的 IP
    ]
  }
}

在云搜索服务日志查询页面查看 IP 溯源日志
日志样例

[2024-12-05T14:43:47,609+0800][TRACE][o.e.h.HttpTracer         ] [es-master-00c0ss3qrs5c-0] [43842][null][GET][/_nodes] received request from [Netty4HttpChannel{localAddress=/9.44.128.40:9200, remoteAddress=/192.168.0.22:39770}]
[2024-12-05T14:43:47,610+0800][TRACE][o.e.h.HttpTracer         ] [es-master-00c0ss3qrs5c-0] [43842][null][OK][application/json; charset=UTF-8][25861] sent response to [Netty4HttpChannel{localAddress=/9.44.128.40:9200, remoteAddress=/192.168.0.22:39770}] success [true]

在日志查询页面,设置日志级别为 TRACE,选择对应的时间段,通过关键字 received 进行搜索,即可看到相应的日志,其中 remoteAddress 即为访问云搜索服务的客户端 IP。

IP 溯源,获取到的 IP 来源。其中,左侧一列是发起 http 请求的位置,分别访问公网地址和私网地址,对应的记录的源 IP。

Client source

访问地址

Ecs node

公网 IP

私网 IP

VKE pod

如果 Pod 所在 Node 绑定了公网 IP,那就是 Pod 所在 Node 的公网 IP。
否则,为 VPC NAT 网关公网 IP。

Pod 所在 Node 的私网 IP:nodeIP 网段与 ES PLB 网段相同。
PodIP:PodIP 网段与 ES PLB 网段相同。

VCI pod

VPC NAT 网关网 IP

Pod IP