我在splunk中加载了一个简单的cvs文件,名为StandardMaintenance.csv,看起来像这样...
UnderMaintenance
NO
我们当前在维护窗口中受到警报的轰炸。在维护开始时,我希望能够将其更改为“是”以停止警报(我有一种简单的方法)。我正在寻找某种标准内容添加到所有检查此csv的状态的警报查询(据我了解的查找),并且如果UnderMaintenance = YES则查询不返回任何内容,因此不会生成与查询的匹配项。
它基本上是二进制的,ON或OFF。非常感谢您能提供的帮助。
答案 0 :(得分:1)
注意:
您无法通过执行splunk查询来禁用警报,因为 Rest API需要执行POST操作。
第1步:使用以下查询,与所有者保存所有已保存搜索的csv文件。您可以根据需要安排查询时间。例如,下面的搜索创建 maintenance.csv 并在执行时替换所有内容。
| rest /servicesNS/-/search/saved/searches | table title eai:acl.owner | outputlookup maintenance.csv
该文件将在$ SPLUNK_HOME / etc / apps / << em>应用名称> / lookups
中创建步骤2:编写脚本以读取 maintenance.csv 文件中的数据,并执行以下命令禁用搜索。 (在维护窗口之前运行)
curl -X POST -k -u admin:pass https://<splunk server>:8089/servicesNS/<owner>/search/saved/searches/<search title>/disable
步骤3:执行相同的操作启用所有搜索,只需将命令更改为(在维护窗口后运行) >
curl -X POST -k -u admin:pass https://<splunk server>:8089/servicesNS/<owner>/search/saved/searches/<search title>/enable
在$ SPLUNK_HOME / etc / apps / search / lookups下创建StandardMaintenance.csv文件。 StandardMaintenance.csv文件包含:
UnderMaintenance
"No"
仅当 UnderMaintenance =否时,才使用下面的搜索查询来获取现有已保存搜索的结果:
| rest /servicesNS/-/search/saved/searches
| eval UnderMaintenance = "No"
| table title eai:acl.owner UnderMaintenance
| join UnderMaintenance
[| inputlookup StandardMaintenance.csv ]
| table title eai:acl.owner
希望这会有所帮助!
答案 1 :(得分:0)
在每个查询之前创建一个变量(例如,称为foo),如果maintain为NO,则将其设置为true,否则不进行设置,如下所示:
... | eval foo=case(maintenance=="NO","true")
然后将以下内容放在查询的末尾:
| eval foo=$foo$
这将使您的查询仅在维护为否的情况下执行