ElastAlert flatline 找不到结果
ElastAlert flatline not finding results
正在使用 ElastAlert 框架创建 flatline
警报类型。
当我在 Kibana UI 中使用查询时,它的语法完全相同 returns 结果,但 ElastAlert 没有 returning 任何结果。
这是我的 elastalert-rule-file.xml
name: Test Flatline
type: flatline
run_every:
seconds: 15
relalert:
minutes: 0
es_host: localhost
es_port: 9200
threshold: 1
timeframe:
minutes: 5
index: my-index-*
filter:
- query:
query_string:
query: "_type:metric" # this returns results in both kibana and elastalert
#query: "_type:metric AND _exists_:My\ Field\ With\ Spaces.value" # this returns results in kibana but not in elastalert
timestamp_type: unix_ms
alert:
- command
command: ["my-bash-script.sh"]
所以我尝试使用查询,如果我只指定 _type:metric
,那么 Kibana 中的搜索结果似乎与 ElastAlert 中的搜索结果相匹配。
然而,当我尝试在第二个查询中使用带有 _exists_
lucene 语法的查询时,ElastAlert 没有 return 任何东西,而 Kibana 似乎对语法没问题。
有什么想法吗?
我知道了...只是忘了 post 一个答案。
显然,对于带有空格的字段,您需要转义反斜杠,以便相关行看起来像这样:
query: "_type:metric AND _exists_:My\ Field\ With\ Spaces.value"
此外,在您使用 Ansible (YAML) 配置的特殊情况下,您需要添加一个反斜杠来转义每个反斜杠。
所以 YAML 文件中的条目看起来像这样:
query: "My\\ field\\ With\\ Spaces.value"
字段数据使用双引号可以避免转义:
query: '_type:metric AND _exists_:"My Field With Spaces.value"'
正在使用 ElastAlert 框架创建 flatline
警报类型。
当我在 Kibana UI 中使用查询时,它的语法完全相同 returns 结果,但 ElastAlert 没有 returning 任何结果。
这是我的 elastalert-rule-file.xml
name: Test Flatline
type: flatline
run_every:
seconds: 15
relalert:
minutes: 0
es_host: localhost
es_port: 9200
threshold: 1
timeframe:
minutes: 5
index: my-index-*
filter:
- query:
query_string:
query: "_type:metric" # this returns results in both kibana and elastalert
#query: "_type:metric AND _exists_:My\ Field\ With\ Spaces.value" # this returns results in kibana but not in elastalert
timestamp_type: unix_ms
alert:
- command
command: ["my-bash-script.sh"]
所以我尝试使用查询,如果我只指定 _type:metric
,那么 Kibana 中的搜索结果似乎与 ElastAlert 中的搜索结果相匹配。
然而,当我尝试在第二个查询中使用带有 _exists_
lucene 语法的查询时,ElastAlert 没有 return 任何东西,而 Kibana 似乎对语法没问题。
有什么想法吗?
我知道了...只是忘了 post 一个答案。
显然,对于带有空格的字段,您需要转义反斜杠,以便相关行看起来像这样:
query: "_type:metric AND _exists_:My\ Field\ With\ Spaces.value"
此外,在您使用 Ansible (YAML) 配置的特殊情况下,您需要添加一个反斜杠来转义每个反斜杠。
所以 YAML 文件中的条目看起来像这样:
query: "My\\ field\\ With\\ Spaces.value"
字段数据使用双引号可以避免转义:
query: '_type:metric AND _exists_:"My Field With Spaces.value"'