elastalert 自学笔记(1)

elastalert是yelp开发的用来监控elasticsearch中数据变化的工具
项目地址
https://github.com/Yelp/elastalert

1、执行elastalert的方法

 #只要指定配置文件即可
 python elastalert/elastalert.py --config config.yaml

2、执行elastalert的可用参数:args

执行elastalert的时候可以使用的参数如下:


image.png
2.1 config

全局config文件的位置,这个文件是yaml格式的

2.2 debug

debug模式,该模式下不会发送真的alert,而是调用DebugAlerter,打印一行log

#这里的self.rule就是每个rule配置文件解析后的对象
elastalert_logger.info('Alert for %s at %s:' % (self.rule['name'], lookup_es_key(match, self.rule['timestamp_field'])))

在debug模式下监控结果不会writeback到es中去。

在debug模式下silence参数无效

2.3 rule

指定一个唯一的rule去执行,这个rule的配置文件必须要在rule folder中,rule folder在全局配置文件中指定。

--silence必须指定--rule

2.4 silence

执行的过程中,让这个rule在若干时间内silence

 --silence <units>=<number>, eg. --silence hours=2

silence具体做了什么呢?

  • silence其实主动调用了set_realert,设置在若干时间之后才能再次触发alert
2.5 start 和 end

start实际上设置了一个开始query的时间,默认是现在。
self.starttime会被设置为utc时间

实际上这两个值会一直传递到get_query函数

if starttime and endtime:
       es_filters['filter']['bool']['must'].insert(0, {'range': {timestamp_field: {'gt': starttime,'lte': endtime}}})

如果run_rule里面没有starttime,那么会调用set_starttime函数来设定一个starttime,在这个函数中还会调用get_starttime函数来获取上一次在哪各时候中断了这个rule,如果是全新的rule,会使用buffer_time(来自全局配置文件)

2.6 verbose

设置日志等级为INFO

2.7 patience

这个没有实现的感觉

2.8 pin_rules

elastalert有一个机制可以刷新rule_folder里面的rule配置,新增、删除里面的配置文件都可以立即生效,如果设置了pin_rules,那么就会固定跑最开始load的rule配置文件。

2.9 es_debug、es_debug_trace

会打开和es交互部分的log,debug用

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,967评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,959评论 6 342
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,420评论 25 708
  • elastalert是yelp开发的用来监控elasticsearch中数据变化的工具项目地址https://gi...
    Stansosleepy阅读 1,789评论 0 1
  • 喜欢漫步的感觉 喜欢飞驰的快感 喜欢随风漂流 微风轻拂我的脸颊 轻柔、舒适 张开双手迎着风向前行走 前方是永无止境...
    一颗青春痘思美人阅读 172评论 0 0