我需要帮助编写ElasticSearch(v5.3)的Watcher输入查询。我的要求是在apache状态代码变为500或更多时触发警报。
Index name: Apache-access-log
Field name: status_code
Kibana Discover query: status_code: [500 TO 600]
Time period: Last 15 minutes.
这是我使用的Watcher输入查询,但它没有按预期工作。
{
"search": {
"request": {
"index": [
"Apache-access-log"
],
"body": {
"query": {
"filtered": {
"query": {
"query_string": {
"query": "status_code: 500",
}
},
"filter": {
"range": {
"@timestamp": {
"gte": "now-15m",
"lte": "now"
}
}
}
}
}
}
}
}
}
答案 0 :(得分:0)
Elasticsearch 5.5不再支持筛选查询。使用带过滤器的布尔查询
BOOL: 必须: 请求参数: 查询:' status_code:[500:600]' 过滤: 范围: @timestamp:...
在将其放入观察者之前,始终首先尝试作为独立查询进行查询。如果你有时间,我强烈建议你this blog post如何编写和调试手表