我已经配置了一个elk堆栈(Logstash,Elastic search和kibana),我们有一个自定义日志文件,如下所示。
05 / August / 2015:16:55:10:www。****。com:statuscode = 200:Time in 加载秒数= 0.734 05 / August / 2015:16:55:11:****。my:statuscode = 403:加载的秒数= 0.340 05 / August / 2015:17:00:01:www。 ****。mx:statuscode = 200:加载秒数的时间= 2.282 05 / August / 2015:17:00:03:www。 ****。我的:statuscode = 200:时间 加载秒数= 2.663 05 / August / 2015:17:00:06:www。 ****。co.id: statuscode = 200:加载的时间(秒)= 1.455 05 / August / 2015:17:00:08:****。 ****。我的:statuscode = 200:时间 加载秒数= 1.684
我已经在logstash上成功配置了这个日志,它在Kibana中正常显示。 现在,如果日志中的任何上述网站连续显示超过5个计数的504或403状态代码,我想配置电子邮件警报。 我知道我需要添加一个匹配日志文件模式的过滤器。但由于这是一个自定义日志,我无法做到。
答案 0 :(得分:1)
最好的方法是编写自己的脚本,我是用Python编写的。
需要以下内容:
我知道这可能看起来很复杂但是如果你使用的是logstash基础设施,那么编写这个脚本是值得的,一旦编写它就可以很容易地将它调整到不同的搜索。
另一种选择可能是等待Elastic的观察者插件,从他们网站上的帖子开始,他们计划在官方GA版本发布后添加GUI界面,我不知道什么时候会发生,但它可能是一个更好的解决方案,即使它比使用python更有限。
答案 1 :(得分:1)
另一个项目是elastalert。
它是开源的。您还可以找到介绍性的博客文章: http://engineeringblog.yelp.com/2015/10/elastalert-alerting-at-scale-with-elasticsearch.html http://engineeringblog.yelp.com/2016/03/elastalert-part-two.html
特别是Kibana rule convert应该非常方便。
答案 2 :(得分:0)
由于您的情况有点复杂(随着时间的推移计算不同的响应代码),我会劝阻用logstash执行此操作。
但是,这正是elasticsearch插件Watcher的用途。您可以将观察者用于search for specific response codes和specify conditions(例如计数超过5),并安排到send an email。
我建议你看看弹性watcher introduction。我很确定它会适合你的目的。
答案 3 :(得分:0)
您可以使用像Logz.io这样的服务来帮助您完成这项工作。如果您每天最多发货1GB(每月30GB),那么它是免费的。