在ElasticSearch中创建警报的最佳方式是什么?我想创建警报,并通过邮件通知,如果它越过阈值。我使用的是Elastic Stack 7.9.0
对于这种用例,最好的方法是使用新的警报框架,该框架在本周早些时候(2021年2月10日)发布了7.11。
在7.9版本中也可以使用,因为它在7.7版本中首次发布测试版。试一试。
值得注意的是,这个功能在OSS版本中是不可用的,而只适用于Free Basic License。
使用当前最新的ELK 8.8版本,我创建了Kibana警报,如下所示:
例如,如果主机上有SSH滥用,这里有一个警报向我发送Slack通知(我有黄金许可证,我认为您需要许可证才能发出警报)
转到堆栈管理>规则比;创建新规则(rule type = Elasticsearch Query)
使用KQL或Lucene定义查询,
select dataview = auditbeat-*
定义查询=事件。类型:"authentication_failure">
当count()在过去3分钟内对所有文档的计数大于2时
设置要发送的文档# = 1
运行Test Query按钮,看看是否有任何命中,通过尝试以不存在的用户ssh到您的主机来生成一些命中测试
为Actions创建一个到某个通道的Slack连接器,当Query匹配时运行
对于Message,要从命中获取值,可以这样使用,
SSH Abuse on {{ context.hits.0._source.host.name }}
{{ context.hits.0._source.message }}
,它导致了这个空闲消息
SSH Abuse on host123
Failed login by user test1 (UID: -1) on ssh:notty (PID: 29080) from 172.31.13.145 (IP: 172.31.13.145)