ElastAlert 基于Elasticsearch的监控告警

Elastalert是Yelp公司用python2写的一个报警框架(目前支持python2.6和2.7,不支持3.x).

GitHub地址为 https://github.com/Yelp/elastalert

一、环境

Ubuntu 16.10(内核 4.8.0-37-generic)

elasticsearch 5.2.0

logstash 5.2.0

kibana 5.2.0

二、依赖


参见:

http://elastalert.readthedocs.io/en/latest/running_elastalert.html#requirements

  • Elasticsearch
  • ISO8601 or Unix timestamped data
  • Python 2.6 or 2.7
  • pip, see requirements.txt

三、安装Elastalert


安装之前先运行 python –version查看python的版本:

下载最新elastalert并安装模块:

安装完后,会在 /usr/local/bin/ 下生成4个elastalert命令:

四、设置elasticsearch索引


参见 setting-up-elasticsearch :

https://elastalert.readthedocs.io/en/latest/running_elastalert.html#setting-up-elasticsearch

elastalert-create-index 这个命令会在elasticsearch创建索引,这不是必须的步骤,但是强烈建议创建。因为对于,审计,测试很有用,并且重启elastalert不影响计数和发送alert,默认情况下,创建的索引叫 elastalert_status

具体生成的数据,请参见 ElastAlert Metadata Index:

https://elastalert.readthedocs.io/en/latest/elastalert_status.html#metadata

五、设置配置文件和规则Rule

参见 creating-a-rule:

https://elastalert.readthedocs.io/en/latest/running_elastalert.html#creating-a-rule

六、测试规则

参见 Testing Your Rule

具体配置,参见 commonconfig

七、运行

返回 {"_index":"logstash-2017.02.14","_type":"test","_id":"AVo6oVCnFreCcJPhQqgX","_version":1,"result":"created","shards":{"total":2,"successful":1,"failed":0},"created":true}

@timestamp的时间是UTC时间,换算方式北京时间(东八区)减8小时,例如2017-02-14 11:21:50的UTC时间是 2017-02-14 03:21:50

八、Alert



原文作者:赵安家

原文链接:https://anjia.ml/2017/02/14/elasticsearch-elastalert/