如何用单条查询获取Splunk中Lookup的完整Scheme
获取Splunk Lookup完整Schema的可行查询方案
方法1:查询所有Lookup的字段与数据类型
通过Splunk的REST接口结合字段统计命令,能批量获取所有lookup的完整schema:
| rest /servicesNS/-/-/data/lookup-table-files | rename title AS lookup_name, eai:data AS lookup_path | where lookup_path != "" | eval lookup_cmd = "| inputlookup " . lookup_name . " | head 1 | fieldsummary" | map maxsearches=100 search=$lookup_cmd$ | stats values(data_type) AS data_types BY lookup_name, field | sort lookup_name, field
- 先用
rest命令拉取所有lookup的基础信息(名称、存储路径) - 用
map遍历每个lookup,通过fieldsummary提取字段的数据类型(只取1条数据就足够统计类型) - 最后用
stats汇总每个lookup下各字段的类型,按名称和字段排序
方法2:查询指定Lookup列表
如果只需要特定几个lookup的schema,在过滤环节指定名称即可:
| rest /servicesNS/-/-/data/lookup-table-files | rename title AS lookup_name, eai:data AS lookup_path | where lookup_name IN ("user_lookup", "asset_lookup") // 替换成你要查询的lookup名称 | eval lookup_cmd = "| inputlookup " . lookup_name . " | head 1 | fieldsummary" | map maxsearches=100 search=$lookup_cmd$ | stats values(data_type) AS data_types BY lookup_name, field | sort lookup_name, field
关键提示
- 空的lookup文件无法提取类型,会被自动排除
maxsearches值可根据需要调整,避免因数量限制遗漏lookup- 确保执行查询的账号有对应lookup的读取权限,否则会返回空结果
内容的提问来源于stack exchange,提问作者Dvir Naim
相关产品推荐
相关产品推荐

