Bootstrap

ELK详解(二十二)——Elastalert报警配置实战

今天继续给大家介绍Linux运维相关知识,本文主要内容是elastalert报警配置实战。
ELK详解(二十一)——elastalert介绍与安装一文中,我们详细介绍了Elastalert的安装过程。今天,我们就来实际配置Elastalert的报警实战。

一、配置文件设置

首先,我们来配置一下Elastalert的配置文件。首先,进入到Elastalert的解压后的目录,由于Elastalert默认的配置文件是config.example,而在该目录中不存在该文件,而只存在一个模板文件config.yaml.example,因此,我们首先将config.yaml.example复制为config.yaml,执行命令:

cp -a config.yaml.example config.yaml

然后,打开config.yaml,我们要修改其中es_host参数,使其指向我们的Elasticsearch,修改完成后的配置文件如下所示:
在这里插入图片描述

二、创建告警索引

接下来,我们来创建告警索引。
执行命令/usr/local/python/bin/elastalert-create-index,即可完成告警索引的创建,该命令执行过程如下所示:
在这里插入图片描述
该命令执行完毕后,我们可以在Elasticsearch上查询到响应的索引查询结果,如下所示:
在这里插入图片描述

三、Rule规则配置

接下来,我们来创建规则,在我们的配置文件中,有一个参数是rules_folder,该参数指定了规则文件存放的位置,根据配置文件,我们需要把规则文件放到该目录下example_rules目录下。将该目录进行备份后,我们新创建一个alter.yaml文件,并写入如下内容:

es_host: 192.168.136.101
es_port: 9200
use_ssl: False
name: NginxAlert
use_strftine_index: true
index: logstash-nginx*
type: any
aggregation:
 seconds: 10
run_every:
 minutes: 1
buffer_time:
 minutes: 10
filter:
- query:
   query_string:
    query: 'status "404"'
alert:
- "email"
email:
- "【邮箱名】"
smtp_host: smtp.163.com
smtp_port: 25
smtp_auth_file: /opt/elastalert-0.2.1/mail_alert/email.yaml
from_addr: 【邮箱名】
email_reply_to: 【邮箱名】

在上述脚本中,我们控制Elastalert当检测logstash_nginx的日志,当发现有404的访问日志后,立即向我们的网易163邮箱进行告警。
注意上文中的sm_auth_file参数,我们使用该参数指定了邮箱登录的认证文件,因此,我们应该创建该文件,并写入邮箱的用户名和授权码,如下所示:
在这里插入图片描述
该命令配置完成后,我们执行命令:

/usr/local/python/bin/elastalert-test-rule --config /opt/elastalert-0.2.1/config.yaml /opt/elastalert-0.2.1/example_rules/alert.yaml

可以对我们的配置进行测试,如果没有报错,就说明配置成功,如下所示:
在这里插入图片描述

四、效果验证

最后,我们来验证一下刚才配置的效果。
执行命令:

python -m elastalert.elastalert --verbose --config /opt/elastalert-0.2.1/config.yaml

开启我们的Elastalert的运行。
之后,打开Nginx服务,并且访问一些不存在的路径故意造成404错误,看Elastalert是否会报警。
等待一段时间后,发现Elastalert报警如下:
在这里插入图片描述
在这里插入图片描述
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

;