如何用Elasticsearch、Kibana或Postman获取去重的端点用户ID列表
获取唯一用户ID列表的实现方法
一、Kibana可视化实现(推荐,适合非技术人员查看)
- 打开Kibana的Discover页面,选中存储日志的目标索引。
- 添加过滤规则:匹配调用指定端点的日志(比如用请求路径字段
request.path,设置条件为request.path: "/你的目标端点",替换成实际的端点标识字段和值)。 - 切换到Visualize页面,创建一个Data Table类型的可视化。
- 配置聚合规则:
- Metrics区域选择任意聚合类型(比如Count),仅作为占位。
- 在Buckets的Rows选项中添加Terms聚合,选择字段
event.user_id,设置Size为足够大的数值(如10000,确保覆盖所有唯一用户),可按需选择排序方式。
- 保存该可视化后,添加到自定义仪表盘,非技术人员可直接访问查看去重后的用户ID列表。
- 如需导出成指定格式,点击可视化右上角的Export按钮,选择CSV格式导出后整理即可。
二、Postman调用Elasticsearch API实现
- 构造GET请求,URL为
http://你的ES服务地址:9200/日志索引名称/_search。 - 请求体使用以下JSON(替换其中的端点匹配字段和值):
{ "size": 0, "query": { "term": { "request.path": "/你的目标端点" } }, "aggs": { "unique_users": { "terms": { "field": "event.user_id", "size": 10000 } } } }
- 发送请求后,从响应结果的
aggregations.unique_users.buckets节点中提取key字段值,即为去重后的用户ID,整理成如下格式:
event.user_id ------------- john.smith barbie.ch pedro.gonzalez ...
内容的提问来源于stack exchange,提问作者dlopezgonzalez
相关产品推荐
相关产品推荐

