elk报警监控之sentinl 钉钉+邮件告警
注:我的elk sentinl版本都是6.5.1
前期知识 es的查询语法、es watcher使用方法。
https://www.cnblogs.com/pilihaotian/p/5830754.html
https://www.cnblogs.com/ghj1976/p/5293250.html
https://www.cnblogs.com/wihainan/p/7064943.html
钉钉告警设置
1、钉钉里先建一个群,然后群内添加一个机器人,最后登录电脑版钉钉获取钉钉地址


2、安装sentinl
可以在线安装 ./kibana-plugin install https://github.com/sirensolutions/sentinl/releases/download/tag-6.5.0-0/sentinl-v6.5.1.zip
也可以离线安装 ./kibana-plugin install file:../../sentinl-v6.5.1.zip file 关键字不能漏掉
3、安装好重启kinaba,然后在打开页面就可以看到sentinl了

4、配置sentinl
在sentinl添加一个watcher,我使用的高级配置

配置如下:
{
"actions": {
"Webhook_683bd385-86b3-46ba-8e1b-f89cccccbbec": {
"name": "Tomcat异常告警",
"throttle_period": "1m",
"webhook": {
"priority": "high",
"stateless": false,
"method": "POST",
"host": "oapi.dingtalk.com",
",
"path": "/robot/send?access_token=*********", #写你自己的钉钉机器人地址
"body": " {\"msgtype\": \"text\",\r\n \"text\": {\r\n \"content\":\" 异常发生,请处理~ \r\n 主机:{{payload.hits.hits.0._index}} \r\n IP:{{payload.hits.hits.0._source.type}} \r\n 告警内容:{{payload.hits.hits.0._source.message}} \r\n 最近一分钟发生次数:{{payload.hits.total}}\"\r\n } \r\n }",
"params": {
"watcher": "{{watcher.title}}",
"payload_count": "{{payload.hits.total}}"
},
"headers": {
"Content-Type": "application/json"
},
"auth": "钉钉账号:钉钉密码", #这个验证可以不要,删掉也没事
"message": "业务功能告警",
"use_https": true
}
}
},
"input": {
"search": {
"request": {
"index": [
"*-tomcat"
],
"body": {
"query": {
"bool": {
"must": [
{
"match": {
"level": "ERROR"
}
},
{
"range": {
"@timestamp": {
"gte": "now-1m",
"lte": "now",
"format": "epoch_millis"
}
}
}
],
"must_not": []
}
}
}
}
}
},
"condition": {
"script": {
"script": "payload.hits.total >=1"
}
},
"trigger": {
"schedule": {
"later": "every 1 minutes"
}
},
"disable": true,
"report": false,
"title": "钉钉告警",
"save_payload": false,
"spy": true,
"impersonate": false
}
其中actions是发生触发报警时的动作用什么告警,我这里用的是钉钉,也可以邮件报警
钉钉报警内容里参数可以按照elk里参数获取。
payload.hits.hits.0._index
payload.hits.hits 是查询的到所有报警信息,0表示第一条报警信息

input就是去es里查询数据,相关使用方法参数文章前的链接,下面只是简单说明。
index是需要去哪个es索引里查询数据,可以用正则 .文中配置是查询最近一分钟内level等级是ERROR的所有数据。
condition 是对查询结果进行计算,payload.hits.total >=1是查询结果条数如果大于等于1则报警。
trigger是查询频率 , "later": "every 1 minutes" 表示每隔一分钟则查询一次。
spy表示是否在关闭网页后仍然监控运行.默认情况只有在打开网页的情况下才能周期报警。
5、验证

如果有数据,则显示watcher executed,否则显示no data。
显示watcher executed,则钉钉会收到报警信息

如果显示watcher executed但钉钉没有收到信息,可以查看日志报什么错。其中no transform found表示actions里body内语法错误,可以检查下语法。
邮箱告警设置
前提是要设置服务器能发送邮件,可参考https://www.cnblogs.com/abkn/p/9720143.html
1、配置kibana.yml后重启kibana
sentinl:
settings:
email:
active: true
user: ****@****.com
password: *******
host: smtp.exmail.qq.com
port:
ssl: true #根据实际情况添加
report:
active: true
2、配置sentinl
{
"actions": {
"email_html_alarm_9c8f6d7f-55c7-49f0-863d-ad3363726978": {
"name": "api tomcat异常",
"throttle_period": "1m",
"email_html": {
"from": "*****@tan66.com",
"to": [
"*****@tan66.com",
"*****@tan66.com"
],
"stateless": false,
"subject": "api tomcat异常",
"priority": "high",
"html": "<p>异常发生,请处理~ </p> <br> 主机:{{payload.hits.hits.0._index}} <br> IP:{{payload.hits.hits.0._source.type}} <br> 告警内容:{{payload.hits.hits.0._source.message}} <br> 最近一分钟发生次数:{{payload.hits.total}}"
}
}
},
"input": {
"search": {
"request": {
"index": [
"kyb-api-tomcat"
],
"body": {
"query": {
"bool": {
"must": [
{
"match": {
"level": "ERROR"
}
},
{
"range": {
"@timestamp": {
"gte": "now-1m",
"lte": "now",
"format": "epoch_millis"
}
}
}
],
"must_not": []
}
}
}
}
}
},
"condition": {
"script": {
"script": "payload.hits.total >= 1"
}
},
"trigger": {
"schedule": {
"later": "every 30 seconds"
}
},
"disable": false,
"report": false,
"title": "api tomcat异常",
"save_payload": false,
"spy": false,
"impersonate": false
}
3、告警结果显示

elk报警监控之sentinl 钉钉+邮件告警的更多相关文章
- linux下ELK搭建好之后配置sentinl插件,进行邮件告警
ELK的环境搭建好之后,如何利用收集到的数据进行数据告警呢?在破解ELK之后,它本身提供一个监视器功能,配置偏向编写脚本.有一个更加方便的插件sentiel. 一.下载并安装sentinl插件 htt ...
- aws cloudwatch监控怎么通过钉钉机器人报警
最近在完善海外业务在aws服务的CloudWatchh监控,发现CloudWatch报警通知要通过aws的sns服务,直接支持的通道有短信和邮件,但是我们想推到钉钉群里面的群机器人里面这个就要借助aw ...
- kube-promethues监控告警详解(邮件、钉钉、微信、自研平台)
Alertmanager已经在前面Prometheus初体验(三)已经介绍过了.现在介绍一下在kube-promethues里面怎么修改alertmanager配置文件,以及怎么通过各种媒介发送信息. ...
- zabbix的搭建及操作(4)实现邮件,钉钉,微信报警
实现邮件报警 网页版邮箱中开启 POP3/SMTP/IMAP 生成授权码并记录 Server端安装配置邮件服务器 1.Yum安装邮件服务器 yum -y install mailx dos2unix ...
- ELK日志报警插件ElastAlert并配置钉钉报警
文章转载自:https://www.cnblogs.com/uglyliu/p/13118386.html ELK日志报警插件ElastAlert 它通过将Elasticsearch与两种类型的组件( ...
- Zabbix监控进程(进程消失后钉钉报警)
用于python报警的脚本如下:(钉钉机器人的连接需要修改) #!/usr/bin/python3# -*- coding: utf-8 -*-# Author: aiker@gdedu.ml# My ...
- 使用python对mysql主从进行监控,并调用钉钉发送报警信息
1.编写python的监控脚本 A.通过获取mysql库中的状态值来判断这个mysql主从状态是否正常 B.进行两个状态值的判断 C.进行调取钉钉机器人,发送消息 2.设置定时任务进行脚本运行 cro ...
- zabbix报警-邮件-钉钉
安装zabbix的时候已经配置了zabbix_server的脚本目录 AlertScriptsPath=/opt/app/zabbix/script 所以把邮件.钉钉.微信相关的脚本都放在/opt/z ...
- zabbix的简单操作(查看监控,自定义监控和钉钉监控报警)
zabbix是一种监控软件,我用的是centos7.5版本 一:我已经添加好主机了,接下来就是看看怎么查看监控内容的 1.打开zabbix服务的web网页 2.检测最新数据,要在最新数据中筛选 3.查 ...
随机推荐
- <canvas>中isPointInPath()方法在不同绘制内容中的效果
<canvas>是HTML5中新增加的一个元素,我们可以使用脚本(通常使用JavaScript)在上面绘制图形,就像个画布一样.我们可以用它来绘制图表.制作一些动画.默认大小为300px ...
- 使用命令查看 Laravel 的版本
进入项目根目录文件夹后,进入命令行,输入命令: php artisan --version 或者输入: php artisan 会出现 artisan 的帮助文档,最上面就是 laravel 的版本号
- 剑指offer 11. 位运算 二进制中1的个数
题目描述 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. //思想:用1(1自身左移运算,其实后来就不是1了)和n的每位进行位与,来判断1的个数 private stat ...
- react super() and super(props)
subclass: subclass is a class that extends another class. 即子类. In ES2015, to use 'this' in subclasse ...
- cok-filter
小工具 # -*- coding: utf-8 -*- import pandas as pd def filterExcel(cokpath, keywords): df = pd.read_exc ...
- IMU(LPMS-B2) ROS下使用教程
一.基本信息 http://www.alubi.cn/lpms-b2/ 安装ros教程 http://wiki.ros.org/lpms_imu https://lp-research.com/ros ...
- 黄聪:Mysql主从配置,实现读写分离
大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢 ...
- .net 超长URL请求返回404错误-解决方法
<system.webServer> <security> <requestFiltering> <requestLimits maxQueryString= ...
- MYSQL登录函数(第3版本)
已经改进 CREATE DEFINER=`root`@`%` FUNCTION `uc_session_login`( `reqjson` JSON, `srvjson` JSON ) RETURNS ...
- note 8 字符串
字符串String 一个字符的序列 使用成对的单引号或双引号括起来 或者三引号""" 和 ''' 表示块注释 字符串运算 长度 len()函数 first_name = ...