ELK服务器设置
安装邮件发送工具mailx
yum install -y mailx
修改 Elasticsearch 配置文件
vim /etc/elasticsearch/elasticsearch.yml
给 Elasticsearch 添加邮箱配置,在最后面加上以下配置
xpack.notification.email.account:
work:
profile: standard # 采用默认的邮件模板
email_defaults: # 设置默认发件箱
from: [email protected] # 发件箱
smtp:
auth: true # 开启账号验证
starttls.enable: false # 关闭ssl
starttls.required: false # 不要ssl
host: smtp.exmail.qq.com # 腾讯企业邮箱smtp地址
port: 25 # 端口
user: [email protected] # 发件箱
保存后设置发件箱的密码,执行下面命令设置
/usr/share/elasticsearch/bin/elasticsearch-keystore add xpack.notification.email.account.work.smtp.secure_password
提示后输入你的密码
注意这里不是邮箱的登陆密码,在企业邮箱的设置-邮箱绑定-生成新密码,生成一个新密码直接粘贴过来即可(不嫌麻烦的自己手打)普通QQ邮箱就是那个设置里面开启POP3/SMTP服务生成的授权码
重启 Elasticsearch 服务
systemctl restart elasticsearch
Kibana页面设置
回到 Kibana - 管理 - Watcher - 创建高级监视
注意 ID 只能英文、横杠、下划线且唯一,名称随便取
监视JSON配置在下面 这里我是模拟一分钟内172.16.10.126这台电脑访问Nginx就发送邮件告警
“interval”: “1m” :一分钟执行一次
“indices”: [ “*” ] :查询所有的引擎
“message”: “172.16.10.126 ” :message里面匹配到172.16.10.126信息的
“gte”: “now-1m”,“lte”: “now” :时间从现在到过去1分钟时间内
“gte”: 1 :只要查询到1条或大于1条信息就执行
“to” : 接受告警的邮箱,支持同事发送给多个邮箱,逗号隔离即可
“subject” :邮件标题
“body” : 邮件内容
{
"trigger": {
"schedule": {
"interval": "1m"
}
},
"input": {
"search": {
"request": {
"search_type": "query_then_fetch",
"indices": [
"*"
],
"types": [],
"body": {
"size": 0,
"query": {
"bool": {
"must": [
{
"match": {
"message": "192.168.159.236"
}
},
{
"range": {
"@timestamp": {
"gte": "now-1m",
"lte": "now"
}
}
}
]
}
}
}
}
}
},
"condition": {
"compare": {
"ctx.payload.hits.total": {
"gte": 1
}
}
},
"actions": {
"send_email": {
"email": {
"profile": "standard",
"to": [
"[email protected]"
],
"subject": "邮件告警测试",
"body": {
"html": "警告:一分钟内192.168.159.236在访问nginx!!!"
}
}
}
}
}
创建成功
测试告警
我们通过IP地址为172.16.10.126这台电脑去访问Nginx
访问后我们需要等待一分钟,你想快点可以在上面的配置里面把1m改成1s
标签:ELK,Watcher,邮箱,告警,now,1m,email,邮件 From: https://blog.51cto.com/xiaokan/5929599