ELK的环境搭建好之后,如何利用收集到的数据进行数据告警呢?在破解ELK之后,它本身提供一个监视器功能,配置偏向编写脚本。有一个更加方便的插件sentiel。
一、下载并安装sentinl插件
https://github.com/sirensolutions/sentinl/releases/ 上下载对应版本
在对应目录下执行 kibana/bin/ kibana-plugin install file:///users/xxx/xxx/sentinl.6.4.2.zip(最好先下载在上传至服务器,避免网络中断的情况)
执行完之后,可以在kibana界面左侧看到 steninl功能菜单
二、配置邮件发送
1. 在 kibana.yml中最下方配置
sentinl:
settings:
email:
active: true
user: abc@qq.com 【注:这里配置的邮箱账号在配置发送邮件方的时候需要用,如果与它不一致会发不出去】
password: xxxxx 【注:在qq邮箱处设置三方登录密码】
host: smtp.exmail.qq.com
ssl: true
port: 465 【注:linux系统如果是阿里云的会禁用默认的25端口,这里需要设置465】
timeout: 10000
report:
active: false
2. 点击Sentinl – watchers – new – watcher wizard【界面友好可】 或者watcher advanced【直接编写程序,更灵活方便适用】
这是我用watcher advanced 配置的一个简单的 每5分钟检查最近五分钟产生的异常信息的配置。
{
"actions": {
"email_html_alarm_2bb619c8-0d33-4b42-bbaa-38dbf5ca040f": {
"name": "5分钟内日志记录",
"throttle_period": "1m",
"email_html": {
"stateless": false,
"subject": "{{watcher.title}}-最近的Exception信息",
"priority": "high",
"html": "哈喽,请认领自己的bug,抓紧处理哦!!!<br>{{#payload.hits.hits}}
<li style='color:red'><b>source:</b> {{_source.source}} </li><br><li><b>message</b>: {{_source.message}}</li><br><br>{{/payload.hits.hits}}
",
"to": "xxx@qq.com",
"from": "abc@qq.com"
}
}
},
"input": {
"search": {
"request": {
"index": [
"filebeat-6.4.2-*"
],
"body": {
"query": {
"bool": {
"must": [
{
"range": {
"@timestamp": {
"gte": "now-5m/m",
"lte": "now/m",
"format": "epoch_millis"
}
}
}
],
"filter": [
{
"multi_match": {
"type": "best_fields",
"query": "exception",
"lenient": true
}
}
]
}
},
"size": 5,
"aggs": {
"dateAgg": {
"date_histogram": {
"field": "@timestamp",
"time_zone": "Europe/Amsterdam",
"interval": "1m",
"min_doc_count": 1
}
}
}
}
}
}
},
"condition": {
"script": {
"script": "payload.aggregations.dateAgg.buckets.some(b => b.doc_count >= 0)"
}
},
"trigger": {
"schedule": {
"later": "every 5 minutes"
}
},
"disable": false,
"report": false,
"title": "测试环境service2+uic日志错误提醒",
"save_payload": false,
"spy": false,
"impersonate": false
}
}
}
3.配置好之后可以在 Watchers中看到
第一个按钮可以进行测试,即时发送
第二个按钮可以设置开启定时按照Interval中的时间进行定时搜索发送
注如果要用上面的配置,需要修改对应的索引名称,搜索条件等。确保自己的索引有效且能正常搜索数据。
以下是收到的邮件