我正在测试elastalert,在假日周末之前的星期三,有一个奇怪的问题,因此我只是删除了所有警报配置,然后重新启动了elastalert,因此在周末没有警报。现在在星期一,我将其重新打开,并查询自星期三以来的所有日志,并且需要相当长的时间才能赶上。我只想查询最近的数据。这是设置吗?如果需要,如何禁用它?
以下是警报配置示例:
name: alert-name
type: frequency
num_events: 500
timeframe:
minutes: 60
realert:
minutes: 60
index: index.name-*
filter:
- query:
query_string:
query: "message:\"Message\" AND context.debug.type.something"
alert_subject: "This alert happened"
alert:
- pagerduty:
pagerduty_service_key: "nice_try_fbi"
pagerduty_client_name: "company"
这是我在日志中看到的(今天是11/26)
INFO:elastalert:Queried rule alert-name from 2018-11-22 12:49 UTC to 2018-11-22 13:04 UTC: 83 / 83 hits
INFO:elastalert:Queried rule alert-name from 2018-11-22 13:04 UTC to 2018-11-22 13:19 UTC: 83 / 83 hits
INFO:elastalert:Queried rule alert-name from 2018-11-22 13:19 UTC to 2018-11-22 13:34 UTC: 89 / 89 hits
INFO:elastalert:Queried rule alert-name from 2018-11-22 13:34 UTC to 2018-11-22 13:49 UTC: 91 / 91 hits
INFO:elastalert:Queried rule alert-name from 2018-11-22 13:49 UTC to 2018-11-22 14:04 UTC: 87 / 87 hits
看看从4天前开始以15分钟为增量的查询内容吗?时间范围设置为60分钟。我只想查询最近的60分钟。我在这里想念东西吗?
答案 0 :(得分:1)
我想出了答案-好像记得上一次查询何时运行的“状态”是elastalert的功能,如“可靠性” https://github.com/Yelp/elastalert/blob/master/docs/source/elastalert.rst#Reliability
中指定的那样我还发现它将警报的“状态”存储在运行于https://elastalert.readthedocs.io/en/latest/elastalert_status.html
的Elasticsearch集群的索引中因此,我只是删除了Elasticsearch中的所有elastalert *索引,并且elastalert似乎将警报视为“新”警报,并且自上次成功运行以来未尝试处理数据。也许有更好的方法(例如通过警报设置?),但这对我有用。