【问题标题】:how to run a splunk search for every found orderid如何对每个找到的 orderid 运行 splunk 搜索
【发布时间】:2019-01-21 00:12:59
【问题描述】:

我想先选择每个 ORDERID,然后搜索我当天找到的每个 ORDERID。

所以我需要一个 foreach ORDID。我只找到了 map 命令,但它不会像我那样工作。

我的搜索应该是这样的:

`index=* sourcetype=dat ORDID!="" |dedup ORDID| foreach ORDID| ...search

我必须为每个 ORDID 单独执行它。所以我需要能够像 $ORDID$ 一样选择 ORDID。

谢谢你们。

【问题讨论】:

    标签: search foreach splunk spl


    【解决方案1】:

    foreach 命令循环遍历字段,而不是值。如果您有名为“ORDID1”、“ORDID2”、“ORDID3”等的字段,那么foreach ORDID* 将允许您处理它们而无需将它们全部列出。

    你可能想要map,但你说那没有用。想详细说明一下吗?

    您可能还想考虑使用子搜索来获取主搜索的 ORDID 值。在 Splunk 中,子搜索在其他命令之前执行。像这样的:

    <your current per-ORDID search> [ index=foo sourcetype=dat ORDID!="" |dedup ORDID | format ]
    

    顺便说一句,避免使用index=*,因为到处搜索的成本很高。

    【讨论】:

    • 感谢您的回复,我认为即使我先选择我想要的 ORDID,它也不会起作用,因为我无法为每个 orderid 说:做 smth。就像每个 ORDID 的循环一样。
    • 请详细说明您想对每个 ORDID 值做什么。有些命令可用于操作值。少关注如何进行循环,多关注最终目标。
    • 好的,我现在的搜索是在仪表板中,并在几个子搜索中选择每个模型类型中的材料,然后选择从另一个搜索传递的 $ORDID$ 的百分比,其中有多少这是最常见的材料。但我想搜索我得到的每个订单,以便从中发出警报。所以我只需要获取当天的每种材料,例如并通过每种材料进行搜索。
    • 对不起,我还是不明白你想做什么。
    • 对不起。我只想选择 Ordernumbers 进行搜索。所以 SELECT ORDID FROM SOURCETYPE 1 into array[] |比我希望能够引用每个 ORDID 之类的数组 [1].... 数组 [n] 来执行以下操作:数组 [1] +5 等
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多