我正在尝试查找与Splunk中的特定字符串不匹配的所有事件。就我而言,我正在尝试为所有事件(其中ResponseCode:401,ResponseCode:404等)建立报告。我简而言之,它可能不是200。
但不确定如何做。
以下是一些示例事件。
事件:
DNS:www.mybonuscenter.com Host:10.94.64.74 RequestMS:2414 EventTime:[06/Aug/2018:14:06:57 -0400] Request:"GET /bizrateapp/app.bundle.dd46e01d637d8dbcc456.js HTTP/1.1" ResponseCode:200 Size:414360
DNS:www.mybonuscenter.com Host:10.94.64.74 RequestMS:168 EventTime:[06/Aug/2018:14:11:50 -0400] Request:"GET /favicon.ico HTTP/1.1" ResponseCode:404 Size:209
使用正则表达式搜索Head命令:
index="my_cw_index" | regex (?:[^ResponseCode\:200]*)
输出
Error in 'SearchParser': Missing a search command before '^'. Error at position '39' of search query 'search index="syn_prod_cw" | regex (?:[^ResponseCo'.
答案 0 :(得分:2)
您尝试过不使用正则表达式的内容吗?
index="my_cw_index" AND NOT "ResponseCode:200"
据我所知,这是按不包含“ ResponseCode:200”的元素过滤查询的最简单方法。
如果要提取代码参数以供以后使用,则需要一个正则表达式:
index="my_cw_index" | rex field=_raw "ResponseCode:(?<code>([\w]+))" | where code != 200
注意:我使用的正则表达式尚未经过测试。