Elastalert 基于EFK环境的邮件报警

1.安装elastalert  安装的python必须是2.7以上的版本

安装的路径  /usr/local/src

安装依赖

1

yum -y install wget openssl openssl-devel gcc gcc-c++ 

下载pytho的安装包  下载在/usr/local/src

1

wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz

解压压缩包 检查环境并编译安装

1

2

3

4

5

6

7

8

解压压缩包

tar -zxf Python-3.6.2.tgz

进入那个目录

cd /usr/local/src/Python-3.6.2

检查环境

./configure --prefix=/usr/local/python --with-openssl

编译安装

make && make install

删除系统自带的python (应为版本太低了)

1

rm -rf /usr/bin/python

创建一个环境变量 

1

2

3

4

5

vim /etc/profile

在最后一行加入一行命令

export export PATH=$PATH:/usr/local/python/bin

 

source /etc/profile

 创建两条软连接

1

2

3

4

#创建两条软连接

ln -s /usr/local/python/bin/python3.6 /usr/bin/python

ln -s /usr/local/python/bin/pip3 /usr/bin/pip

pip install --upgrade pip  //升级pip

输入python显示Python 3.6.2

 

 退出quit()

vim /usr/bin/yum
vim /usr/libexec/urlgrabber-ext-down 

 

 

 下载elastalert的安装包  下载到得路径是/usr/local/src

1

2

3

wget https://github.com/Yelp/elastalert/archive/v0.2.1.tar.gz

tar xf v0.2.1.tar.gz

cd elastalert-0.2.1

安装 cd elastalert-0.2.1

1

2

3

pip install "elasticsearch<7,>6"

pip install -r requirements.txt

 python setup.py install

  

1

ll /usr/local/python/bin/elastalert*  可以看到生成的几个命令

  

安装之后会自带三个命令

  • elastalert-create-index:ElastAlert会把执行记录存放到一个ES 索引中,该命令就是用来 创建这个索引的,默认情况下,索引名叫elastalert_status。其中有4个 _type,都有 自己的@timestamp字段,所以同样也可以用kibana,来查看这个索引的日志记录情况。

  • elastalert-rule-from-kibana:从Kibana3已保存的仪表盘中读取Filtering设置,帮助生成config.yaml里的配置。不过注意,它只会读取filtering,不包括queries。

  • elastalert-test-rule:测试自定义配置中的rule设置 

 

 

(以下是帮助学委更新的日志)

1

ln -s /usr/local/python/bin/elastalert* /usr/bin

  

 

以上操作完成后在root目录下输入ela按tab是否能补全在按tab是否能出现以下四个字母

 

 

 

 输入elastalert-create-index

 

只需输入箭头对应的(host对应你的Elasticsearch的主机ip,port对应你的Elasticsearch的端口)

Use SSL? t/f:输入f    其他的一律都是回车  这是创建好的状态

 

 

返回到你的kibana浏览器页面出现以下三个代表创建成功(有些许的延迟)

 

 

 

 

进入elastalert-0.2.1拷贝一个配置文件

1

2

3

4

[root@kafka01 elastalert-0.2.1]#

[root@kafka01 elastalert-0.2.1]# pwd

/usr/local/src/elastalert-0.2.1

[root@kafka01 elastalert-0.2.1]# cp config.yaml.example   config.yaml

 

vim config.yaml  进入配置文件注释空格全部干掉(/g^#/d)

1

2

3

4

5

6

7

8

9

10

11

rules_folder: wg_rules  #规则目录,所有的规则放在这个目录下

run_every:

  minutes: 1    #运行频率1分钟

buffer_time:

  minutes: 15   #取值范围,15分钟以内的内容

es_host: 10.0.0.73      #es的IP地址

es_port: 9200           #es的端口

writeback_index: elastalert_status      #这是在kibana的里的索引

writeback_alias: elastalert_alerts      #别名

alert_time_limit:

  days: 2       #运行失败重置的时间是2天

 

在当前目录下mv  example_rules   wg_rules

进入wg_rules

新建红框两个文件(注意格式)

 

 

 vim nginx_007.yaml

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

es_host: 10.0.0.73   #es主机IP地址

es_port: 9200        #es端口

name: nginx rule #规则名字必须是唯一的

type: frequency  #类型为频率

index: webnginx* ## 监控的索引(这里一定注意是你在kibana索引*代表以xxx的结尾)

num_events: 5  ## 限定时间内,发生的次数

timeframe:

  hours: 1  ## 一小时内有5个错误日志写进ES的话就发送邮件

 

filter:

  - regexp:   ##以正则的方式匹配, “.*” 就是已有日志写进es就算

     message: ".*"

 

alert:  #方式(邮件)

"email"

 

email:

"707132357@qq.com"

 

smtp_host: smtp.qq.com

smtp_port: 25

smtp_ssl: false

#smtp_auth_file: /usr/local/src/elastalert-0.2.1/wg_rules/email_auth.yaml

smtp_auth_file: "email_auth.yaml"

from_addr: 707132357@qq.com

  

vim email_auth.yaml

1

2

user: '707132357@qq.com' #qq邮箱地址

password: 'wvozyiwhymbhbdei' #此地方写你qq邮箱的授权码

 

 启动elastalert

 

elastalert --config /usr/local/src/elastalert-0.2.1/config.yaml --rule /usr/local/src/elastalert-0.2.1/wg_rules/nginx_007.yaml --verbose

启动后会显示up启动成功 

1

2

3

INFO:elastalert:Starting up

INFO:elastalert:Disabled rules are: []

INFO:elastalert:Sleeping for 59.999868 seconds  

 

如果没有命中每分钟会刷新一次

去有nginx机器上ab压测一些日志

 

显示

 

 代表你创建规则成功匹配

 

 这里表示你的规则成功命中

 

 

如果登陆qq右下角提示有新的邮件

 

打开邮件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值