介绍

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配置相关推荐

  1. java调用webservice_笃学私教:Java开发网站架构演变过程-从单体应用到微服务架构详解...

    原标题:笃学私教:Java开发网站架构演变过程-从单体应用到微服务架构详解 Java开发网站架构演变过程,到目前为止,大致分为5个阶段,分别为单体架构.集群架构.分布式架构.SOA架构和微服务架构.下 ...

  2. 详解keepalived配置和使用

    详解keepalived配置和使用 一.keepalived简介: keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层.第4层和第5层交换.Ke ...

  3. Spring Cloud Eureka 入门 (三)服务消费者详解

    2019独角兽企业重金招聘Python工程师标准>>> 摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! "真正的进步 ...

  4. apache启服务命令_Linux系统重启apache服务命令详解

    Linux系统中apache是重要的一个服务,掌握基本操作尤其重要.下面由学习啦小编为大家整理了Linux系统重启apache服务命令详解,希望对大家有帮助! Linux系统重启apache服务命令详 ...

  5. rsync的介绍及参数详解,配置步骤,工作模式介绍

    rsync的介绍及参数详解,配置步骤,工作模式介绍 rsync是类unix系统下的数据镜像备份工具.它是快速增量备份.全量备份工具. Sync可以远程同步,支持本地复制,或者与其他SSH.rsync主 ...

  6. 详解typora配置华为云图床

    详解typora配置华为云图床 当前有很多不同的博客社区,不同的博客社区使用的编辑器也不尽相同,大概可以分为两种,一种是markdown格式,另外一种是富文本格式.例如华为云开发者社区文章编辑模式分为 ...

  7. MySQL主从同步详解与配置

    https://zhuanlan.zhihu.com/p/335142300 MySQL主从同步详解与配置 第一部分[原理解析] * 应用背景* MySQL数据库自身提供的主从复制功能可以方便的实现数 ...

  8. Docker服务编排详解——(六)

    Docker服务编排详解--(六) 一.Docker Compose 概述 二.Docker Compose 安装 三.Docker Compose 使用 一.Docker Compose 概述 Co ...

  9. 详解keepalived配置

    详解keepalived配置和使用 ! Configuration File for keepalivedglobal_defs { #指定keepalived在发生切换时需要发送email到的对象, ...

最新文章

  1. 项目实战12.1—企业级监控工具应用实战-zabbix安装与基础操作
  2. axios请求GBK页面中文乱码解决方法
  3. LoRaWAN与LoRa的区别!
  4. MVC下用C#实现Excel导出
  5. 此计算机必须为委派而被信任_如何增强 ClassLoader 双亲委派模式 ?
  6. 几个常用的正则表达式
  7. Java基础之this关键字和super关键字区别
  8. matlab出现红色括号,想让大家看下标红地方为什么说有括号问题
  9. B. Who‘s Opposite?
  10. 正在连接至zimperium服务器,ZIMPERIUM Mobile IPS (zIPS)
  11. 操作系统实践课程实验报告 总结篇
  12. R语言及其IDE(RStudio)下载安装流程
  13. apue.3e环境配置
  14. 思科cisco2800系列路由器
  15. 使用Falco检测Kubernetes安全问题简介
  16. idea编辑窗口显示outdated version解决方案
  17. solr 查询出异常org.apache.solr.search.SyntaxError: Cannot parse
  18. jxl 单元格画斜线
  19. 网站如何锁定用户,超级浏览器有办法解决吗?
  20. RK3588 CPU GPU DDR NPU定频和性能模式设置

热门文章

  1. 打开计算机管理提示找不到文件,Win8系统打开计算机管理提示找不到文件怎么解决...
  2. kinect v1原理_Kinect原理及介绍.ppt
  3. redis rdb aof区别_干货|Redis的RDB和AOF
  4. u盘读写测试_aigo U395固态U盘评测,速度可能会吓到你,价格很良心
  5. java8编程开发入门 李兴华_李兴华系列--JAVA详解视频(jdk1.8)及项目实战教程
  6. ObjC学习9-Foundation框架之数字、字符串和集合
  7. php 扩展加载顺序,关于PHP中extension加载顺序问题的解决方法
  8. android httpurlconnection 超时 重发_Android / Java | 向服务器传文件
  9. find命令与locate命令的区别
  10. jQuery给页面弹出层添加半透明背景