【发布时间】:2020-08-28 19:34:56
【问题描述】:
构建脚本到
a) 检查 splunk 中所有查找文件的大小
b) 如果大小超过特定阈值,则下载 csv 文件
c) 删除查找文件或重新创建一个虚拟查找文件
【问题讨论】:
-
您想在 Splunk 搜索中还是通过命令行执行此操作?为什么?查找文件通常是为了丰富搜索,因此将它们清空会适得其反。
-
我需要使用 splunk 搜索。
构建脚本到
a) 检查 splunk 中所有查找文件的大小
b) 如果大小超过特定阈值,则下载 csv 文件
c) 删除查找文件或重新创建一个虚拟查找文件
【问题讨论】:
在 SPL 中没有获取查找文件大小的内置方法。您将使用inputlookup 读取文件并通过将每个字段的长度相加来计算大小,记住要考虑分隔符和标题。
您可以根据定义的限制测试计算的大小,但没有根据此类测试的结果更改查询行为的功能。
这在 shell 脚本中会容易得多。
你想解决什么问题?
【讨论】:
您可以通过 REST 命令获取此信息,点击查找表文件端点。在此处查看文档:https://docs.splunk.com/Documentation/SplunkCloud/latest/RESTREF/RESTknowledge#data.2Fprops.2Flookups
例如,试试这个搜索:
| rest splunk_server=local /services/data/lookup-table-files/
| rename eai:acl.app as app
| table app title
| search NOT title IN (*.kmz)
| map maxsearches=990 search="| inputlookup $title$
| eval size=0
| foreach * [ eval size=size+coalesce(len('<<FIELD>>'),0), app=\"$app$\", title=$title$ | fields app title size]"
| stats sum(size) by app title
| sort - sum(size)
(我在尝试做同样的事情时在这里找到了 https://www.pixelchef.net/find-size-lookup-files-splunk-web,它对我有用)
【讨论】: