Timelion
在表达式栏里,可以创建一个Timelion表达式以指向一个或多个数据源,而不仅限于Elasticsearch。Kibana仪表板唯一可能的数据源就是Elasticsearch,这是两者之间的一个主要区别。
点击Kibana面板上的Timelion
即可进入编辑页面。
警报严重度监测
1 | .es(index=filebeat-*, timefield='@timestamp', metric = 'max:suricata.eve.alert.severity', split=beat.name:5).label(regex='.* beat.name:(.*) > .*', label='$1').points(symbol=cross).legend(columns=2, position=nw), |
说明:
- 如果一些数据出现缺失,可以利用
fit
函数,以特定的模式(carry, scale等)对数据进行插值。 - 在图表中打印输出两个阈值,一条静态的直线表示警戒值,另一条线代表若被超过则问题严重。
- 其中用到了正则表达式,是为了让图例中的文字更加精简。
- 这里用到了自定义的索引
alert-hsh*
,这是与x-pack结合使用,如果x-pack发出警报,则在Timelion中Alert
的值就为1
,否则为0
。 效果图:
警报数目异常
1 | .static(8).color(#FF9800).label(Warning), |
效果图:
参考资料
https://segmentfault.com/a/1190000016679290
X-pack
验证X-pack是否安装成功(username
和password
是自己的用户名和密码):curl -u username:password -XGET 'http://172.16.176.51:9200/_watcher/stats?pretty'
在Kibana面板依次点击Management
->Watcher
->Create advanced watch
即可进入编辑页面。
下面是一个监测suricata.eve.alert.severity
是否>3的watcher
,当>3时,会创建一个名为alert-hsh*
的索引。
Watcher
1 | { |
参考资料
- https://yq.aliyun.com/articles/278046
- https://www.elastic.co/guide/en/elastic-stack-overview/7.2/how-watcher-works.html#watch-definition
- https://www.elastic.co/guide/en/x-pack/current/xpack-alerting.html
- https://blog.csdn.net/u012881331/article/details/88899420
- https://blog.csdn.net/dwyane__wade/article/details/80191106
- https://github.com/elastic/examples/blob/master/Alerting/Sample%20Watches/cpu_iowait_hosts/watch.json
ML, Raw Data与Graph配合使用
首先,在ML中创建Job,如果有Nginx服务,则会出现几个默认的Nginx有关的Jobs,启动就好。在下图中,可以看到有一个值的分数很高(代表这个值的异常度很高),说明这个IP地址在很短的时间内大量访问了net.bnu.edu.cn
。
点击表格右边的类似螺丝钉的按钮,再点击Raw Data
,可以看到原始的数据,如下图所示。
此时,可以自行增加一些字段,使得数据的内容更加丰富,如下图所示。
此时,为了更进一步探究这些字段之间的关系,可以借助Graph工具。
在Graph工具中,需要选择index和想要探究的字段。这里,可以根据Raw Data
中的字段来选择字段,如下图所示。
可以看到,/dokuwiki/lib/exe/ajax.php
与POST
之间的关系比较强烈,因为这两个节点之间的连线非常粗。点击连线,在右下角可以看到具体的数值,310
代表包含/dokuwiki/doku.php?id=xmz:brlek&do=edit
字段的文档数,5551
代表包含POST
的文档数,309
代表同时包含两个字段的文档数。说明这个IP地址通过POST方法,对这个url进行了多次请求。