一,Elastalert简介
Elastalert是Yelp公司基于python开发的ELK日志告警插件,Elastalert通过查询Elasticsearch中的记录与定于的告警规则进行对比,判断是否满足告警条件。发生匹配时,将为该告警触发一个或多个告警动作。告警规则由Elastalert的rules定义,每个规则定义一个查询。
1.1 ElastAlert 工作原理
周期性的查询Elastsearch并且将数据传递给规则类型,规则类型定义了需要查询哪些数据。
当一个规则匹配触发,就会给到一个或者多个的告警,这些告警具体会根据规则的配置来选择告警途径,就是告警行为,比如邮件、企业微信等
1.2 elastalert特性
- 架构简单,定制灵活
- 支持多种匹配规则(频率、阈值、数据变化、黑白名单、变化率等)
- 支持多种警报类型(邮件、HTTP POST、自定义脚本等)
- 匹配项汇总报警,重复警报抑制,报警失败重试和过期
- 可用性强,状态信息保存到Elasticsearch的索引中
- 过程的调试和审计等
- 可实现服务器资源使用率监控,服务存活监控,服务日志报错监控等
二,elastalert部署
环境准备:
系统:centos7.6
elastalert:0.2.4
elasticsearch: 7.9.3
Python:3.6.9
pip:19.3
2.1 配置python3.6.9环境
安装依赖包
yum -y install wget openssl openssl-devel gcc gcc-c++
#下载包
wget https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tgz
# 解压,编译安装
tar xf Python-3.6.9.tgz
cd Python-3.6.9
./configure --prefix=/usr/local/python --with-openssl
make && make install
#安装git
yum install –y git
#配置,创建软链接,升级pip
mv /usr/bin/python /usr/bin/python_old
ln -s /usr/local/python/bin/python3 /usr/bin/python
ln -s /usr/local/python/bin/pip3 /usr/bin/pip
pip install --upgrade pip
#注意,所有依赖python2的脚本,都需要更改为python2.7,因为现在默认的python为3.6
sed -i '1s/python/python2.7/g' /usr/bin/yum
sed -i '1s/python/python2.7/g' /usr/libexec/urlgrabber-ext-down
验证:python –V
pip -V
2.2 安装elastalert
下载安装包
直接使用pip安装: