ElasticSearch预警服务-Watcher详解-Schedule配置
介绍
Watcher服务详解-定时器的设定
关于Schedule配置选择,Watcher提供了丰富的时间语法支持,采用UTC时间,来我们一起看下如何设置:
支持的设置方式:
hourly:按小时周期设置
daily:按天周期设置
weekly:按周周期设置
monthly:按月周期设置
yearly:按年周期设置
cron:Cron表达式设置
interval :固定周期设置
详细案例:
** 1.按小时 **
每小时过30分钟执行"trigger" : {"schedule" : {"hourly" : { "minute" : 30 }}}指定时间执行,每小时第0,15,30,45分钟执行"trigger" : {"schedule" : {"hourly" : { "minute" : [ 0, 15, 30, 45 ] }}}
**2.按天 **
每天下午5点执行"trigger" : {"schedule" : {"daily" : { "at" : "17:00" }}}"trigger" : {"schedule" : {"daily" : { "at" { "hour" : 17, "minute" : 0 } }每天00:00, 12:00, 17:00 执行"trigger" : {"schedule" : {"daily" : { "at" : [ "midnight", "noon", "17:00" ] }}}每天00:00, 00:30, 12:00, 12:30, 17:00,17:30执行"trigger" : {"schedule" : {"daily" : {"at" {"hour" : [ 0, 12, 17 ]"minute" : [0, 30]}}
**3.按星期**
每周五下午5点执行"trigger" : {"schedule" : {"weekly" : { "on" : "friday", "at" : "17:00" } }}每周二12:00,周五17:00执行"trigger" : {"schedule" : {"weekly" : [{ "on" : "tuesday", "at" : "noon" },{ "on" : "friday", "at" : "17:00" }]}}每周二,周五的12:00,17:00执行"trigger" : {"schedule" : {"weekly" : {"on" : [ "tuesday", "friday" ]"at" : [ "noon", "17:00" ]}}
** 4.按月 **
每月10号12:00执行"trigger" : {"schedule" : {"monthly" : { "on" : 10, "at" : "noon" }}}每月10号12:00,20号17:00执行"trigger" : {"schedule" : {"monthly" : [{ "on" : 10, "at" : "noon" },{ "on" : 20, "at" : "17:00" }]}每月10号,20号的0:00,12:00执行"trigger" : {"schedule" : {"monthly" : {"on" : [ 10, 20 ]"at" : [ "midnight", "noon" ]}}
**5.按年 **
"trigger" : {"schedule" : {"yearly" : { "in" : "january", "on" : 10, "at" : "noon" } }}"trigger" : {"schedule" : {"yearly" : [{ "in" : "january", "on" : 10, "at" : "noon" },{ "in" : "july", "on" : 20, "at" : "17:00" }]}"trigger" : {"schedule" : {"yearly" : {"in: : [ "jan", "dec" ],"on" : [ 10, 20 ],"at" : [ "midnight", "noon" ]}}
** 6.Cron表达式 **
"trigger" : {"schedule" : { "cron" : "0 0 12 * * ?" } }
** 7.固定周期设置 **
5秒"trigger" : { "schedule" : {"interval" : "5s" } }5分钟"trigger" : { "schedule" : {"interval" : "5m" } }5小时"trigger" : { "schedule" : {"interval" : "5h" } }5天"trigger" : { "schedule" : {"interval" : "5d" } }5周"trigger" : { "schedule" : {"interval" : "5w" } }
ElasticSearch(ES)预警服务 Watcher安装以及探究
介绍
最近公司需求要搭建一个监控系统,用来监控程序运行状态,请求曲线,错误日志发生次数,等等分析,保障系统稳定性。因此最近研究了基于Lucene 号称企业级搜索服务的ElasticSearch ,用了一段时间发现速度还真快,对百万级甚至千万级的数据检索毫无压力,比之前用的MongoDB速度快了不少。
ElasticSearch服务安装过程这里就不在说了,有了监控之后应该还需给开发人员发送邮件,告知某项错误已经达到某个阀值,应该关注去分析解决发生错误的原因,进一步发现程序上的bug,然后fix掉,下面隆重介绍下es(这里将ElasticSearch简称为es)的插件,Watcher,功能嘛很显然就是预警服务。
一、安装
1.依赖于License 插件,先安装License插件,在ES_HOME目录下面安装License
bin/plugin install license
2.安裝watcher插件
bin/plugin install watcher
注:中间过程询问是否继续时候输入y按回车继
3.验证是否安装成功
curl -XGET 'http://localhost:9200/_watcher/stats?pretty'返回结果如下则表示安装成功{"watcher_state": "started","watch_count": 0,"execution_thread_pool": {"queue_size": 0,"max_size": 0}
}
二、Watcher插件配置(创建预警任务)
watcher目前是沒有界面配置的,需要通过Resfulapi调用创建、管理、更新预警任务
创建一个Watcher任务的流程是怎样的?
我们先来看下创建一个预警demo的api
curl -XPUT 'http://localhost:9200/_watcher/watch/log_error_watch' -d '
{"trigger": {"schedule": {"interval": "1m"}},"input": {"search": {"request": {"indices": ["monitor_ticket_bargainfindermaxrq_201610"],"body": {"query": {"bool": {"must": [{"match": {"collectionName": "BargainFinderMaxRQ"}},{"range": {"createTime": {"gt" : "now-1m"}}}]}}}}}},"condition": {"compare": {"ctx.payload.hits.total": {"gt": 20}}},"actions": {"send_email": {"email": {"to": "xxxxxx@xxx.com","subject": "TICKET_BFM 過去一分鐘內錯誤發生次數超過20,請關注","body": "TICKET_BFM 過去一分鐘內錯誤發生次數超過20,請關注"}}}
}'
当然actions里面还支持模板,比如 :
"actions": {"send_email": {"email": {"to": "xxx@xxx.com","subject": "TICKET_BFM 過去一分鐘內錯誤發生{{ctx.payload.hits.total}}次數超過20,請關注","body": "TICKET_BFM:{{ctx.watch_id}} 過去一分鐘內錯誤發生{{ctx.payload.hits.total}}次數超過20,請關注 Happened at {{ctx.execution_time}}"}}}
从api的content我們可以看出,內容主要主体分成trigger(触发设置),input(来源设置),condition(条件),actions(触发动作设置)
这里我们设置触发间隔时间为1m,来源是monitor_ticket_bargainfindermaxrq_201610索引块,查询条件是collectionName字段值是BargainFinderMaxRQ,以及时间范围是过去1分钟到现在,然后触发条件是当数量大于20,动作设置的是发邮件
Action类型其实有4种,EMail(邮件),Webhook(第三方对接),Index(索引),Logging(日志记录),相关配置可以参考下官方文档
如果配置了发送邮件,那么需要在es的yml文件配置下邮件发送服务器
我这里设置的是公司的服务器
watcher.actions.email.service.account:work:profile: standardemail_defaults:from: '<yourname>@xx.com'smtp:auth: truestarttls.enable: truehost: smtp.xx.comport: 25user: yourname@xx.compassword: password
注:设置之后重启下es服务器
三、删除预警任务
有时候我们不在使用某项预警服务的时候,我们可以删除他
#curl -XDELETE 'http://localhost:9200/_watcher/watch/log_error_watch'
参考链接 :
Elasticsearch索引mapping的写入、查看与修改 : https://blog.csdn.net/napoay/article/details/52012249?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
ElasticSearch(ES)预警服务 Watcher安装以及探究 : https://www.cnblogs.com/dafanshu/p/5980553.html
elasticsearch使用river同步mysql数据 : https://blog.csdn.net/alen1985/article/details/41356361?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
ElasticSearch预警服务-Watcher详解-监控时间线数据 :https://blog.csdn.net/corejava999/article/details/84720830?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
ElasticSearch预警服务-Watcher详解-Schedule配置 : https://blog.csdn.net/corejava999/article/details/84720010
ElasticSearch预警服务-Watcher详解-Schedule配置相关推荐
- java调用webservice_笃学私教:Java开发网站架构演变过程-从单体应用到微服务架构详解...
原标题:笃学私教:Java开发网站架构演变过程-从单体应用到微服务架构详解 Java开发网站架构演变过程,到目前为止,大致分为5个阶段,分别为单体架构.集群架构.分布式架构.SOA架构和微服务架构.下 ...
- 详解keepalived配置和使用
详解keepalived配置和使用 一.keepalived简介: keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层.第4层和第5层交换.Ke ...
- Spring Cloud Eureka 入门 (三)服务消费者详解
2019独角兽企业重金招聘Python工程师标准>>> 摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! "真正的进步 ...
- apache启服务命令_Linux系统重启apache服务命令详解
Linux系统中apache是重要的一个服务,掌握基本操作尤其重要.下面由学习啦小编为大家整理了Linux系统重启apache服务命令详解,希望对大家有帮助! Linux系统重启apache服务命令详 ...
- rsync的介绍及参数详解,配置步骤,工作模式介绍
rsync的介绍及参数详解,配置步骤,工作模式介绍 rsync是类unix系统下的数据镜像备份工具.它是快速增量备份.全量备份工具. Sync可以远程同步,支持本地复制,或者与其他SSH.rsync主 ...
- 详解typora配置华为云图床
详解typora配置华为云图床 当前有很多不同的博客社区,不同的博客社区使用的编辑器也不尽相同,大概可以分为两种,一种是markdown格式,另外一种是富文本格式.例如华为云开发者社区文章编辑模式分为 ...
- MySQL主从同步详解与配置
https://zhuanlan.zhihu.com/p/335142300 MySQL主从同步详解与配置 第一部分[原理解析] * 应用背景* MySQL数据库自身提供的主从复制功能可以方便的实现数 ...
- Docker服务编排详解——(六)
Docker服务编排详解--(六) 一.Docker Compose 概述 二.Docker Compose 安装 三.Docker Compose 使用 一.Docker Compose 概述 Co ...
- 详解keepalived配置
详解keepalived配置和使用 ! Configuration File for keepalivedglobal_defs { #指定keepalived在发生切换时需要发送email到的对象, ...
最新文章
- 项目实战12.1—企业级监控工具应用实战-zabbix安装与基础操作
- axios请求GBK页面中文乱码解决方法
- LoRaWAN与LoRa的区别!
- MVC下用C#实现Excel导出
- 此计算机必须为委派而被信任_如何增强 ClassLoader 双亲委派模式 ?
- 几个常用的正则表达式
- Java基础之this关键字和super关键字区别
- matlab出现红色括号,想让大家看下标红地方为什么说有括号问题
- B. Who‘s Opposite?
- 正在连接至zimperium服务器,ZIMPERIUM Mobile IPS (zIPS)
- 操作系统实践课程实验报告 总结篇
- R语言及其IDE(RStudio)下载安装流程
- apue.3e环境配置
- 思科cisco2800系列路由器
- 使用Falco检测Kubernetes安全问题简介
- idea编辑窗口显示outdated version解决方案
- solr 查询出异常org.apache.solr.search.SyntaxError: Cannot parse
- jxl 单元格画斜线
- 网站如何锁定用户,超级浏览器有办法解决吗?
- RK3588 CPU GPU DDR NPU定频和性能模式设置
热门文章
- 打开计算机管理提示找不到文件,Win8系统打开计算机管理提示找不到文件怎么解决...
- kinect v1原理_Kinect原理及介绍.ppt
- redis rdb aof区别_干货|Redis的RDB和AOF
- u盘读写测试_aigo U395固态U盘评测,速度可能会吓到你,价格很良心
- java8编程开发入门 李兴华_李兴华系列--JAVA详解视频(jdk1.8)及项目实战教程
- ObjC学习9-Foundation框架之数字、字符串和集合
- php 扩展加载顺序,关于PHP中extension加载顺序问题的解决方法
- android httpurlconnection 超时 重发_Android / Java | 向服务器传文件
- find命令与locate命令的区别
- jQuery给页面弹出层添加半透明背景