如何查询Splunk活跃用户及其创建的报表、仪表盘与用例?
获取Splunk活跃用户及他们创建的报表、仪表盘与用例
你当前的查询仅能获取用户基础信息,要关联用户创建的各类对象,需要结合Splunk的多个REST端点,通过用户ID(owner字段)进行关联。以下是完整的实现方案:
完整查询语句
| rest /services/authentication/users splunk_server=local | fields title roles realname | rename title as userName, realname as Name | eval 类型="用户基础信息" | append [ | rest /services/saved/searches splunk_server=local | fields title owner | rename title as "对象名称", owner as userName | eval 类型="报表/已保存搜索" ] | append [ | rest /services/data/ui/views splunk_server=local | fields title owner | rename title as "对象名称", owner as userName | eval 类型="仪表盘" ] | append [ | rest /services/alerts/alerts splunk_server=local | fields title owner | rename title as "对象名称", owner as userName | eval 类型="告警/用例" ] | sort userName, 类型
关键说明
- 第一个
rest块拉取本地Splunk实例的用户列表,包含用户名、真实姓名和角色信息 - 后续
append块分别获取报表/已保存搜索、仪表盘、告警/用例三类对象,通过userName(对应对象的owner字段)与用户信息关联 - 新增
类型字段用于区分记录类型,方便快速筛选不同内容
可选优化
- 筛选活跃用户:如果只需要最近有登录行为的用户,可以添加登录时间过滤:
| rest /services/authentication/users splunk_server=local | fields title roles realname last_login | rename title as userName, realname as Name | where last_login > relative_time(now(), "-30d@d") // 保留30天内登录过的用户 | eval 类型="用户基础信息" | append [...] // 追加后续对象查询块 - 扩展字段:根据需求可以添加更多字段,比如报表的描述、仪表盘的创建时间等,只需调整对应
rest命令中的fields参数即可。
内容的提问来源于stack exchange,提问作者Avanti07
相关产品推荐
相关产品推荐

