前面已经介绍了ELK搭建和使用,日志已经收集起来,当日志出现异常,我们需要第一时间知道,而我们又不能每时每刻都在查看日志,
这时候我们就可以用上elastalert了。
一、elastalert 的安装
Elastalert是Yelp公司用python2写的一个报警框架(目前支持python2.6和2.7,不支持3.x),github地址为
https://github.com/Yelp/elastalert
相关依赖可以查看文档.
文档中使用的ubuntu 14.x,我使用的是centos,这个不影响使用。
安装
使用pip安装1
pip install elastalert
或者基于源码安装1
2
3git clone https://github.com/Yelp/elastalert.git
python setup.py install
pip install -r requirements.txt
二、设置elasticsearch索引
参见setting-up-elasticsearch
elastalert-create-index 这个命令会在elasticsearch创建索引,这不是必须的步骤,但是强烈建议创建。因为对于,审计,测试很有用,
并且重启elastalert不影响计数和发送alert,默认情况下,创建的索引叫 elastalert_status.1
2
3
4
5elastalert-create-index
New index name (Default elastalert_status)
Name of existing index to copy (Default None)
New index elastalert_status created
Done!
三、配置文件
1 | mkdir /data/alert_rule -p |
1 | # This is the folder that contains the rule yaml files |
1 | vim /data/alert_rule/example_rule.yaml |
1 | # From example_rules/example_frequency.yaml |
这边告警插件使用自己编写的,基于企业微信进行告警。详情可以查看我的github项目wxapi.
1 | mkdir /data/alert_rule/alert_plugin |
1 | #! /usr/bin/env python |
四、启动elastalert
我使用supervisor进行管理进程1
2yum install supervisor
vim /etc/supervisor.d/alertalert.ini
1 | [program:elastalert] |
最后进行启动1
2systemctl start supervisord
supervisorctl status
1 | elastalert RUNNING pid 7010, uptime 3 days, 7:04:12 |
至此结束。