最近公司需求要搭建一个监控系统,用来监控程序运行状态,请求曲线,错误日志发生次数,等等分析,保障系统稳定性。因此最近研究了基于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: standard

email_defaults:

from: '@xx.com'

smtp:

auth: true

starttls.enable: true

host: smtp.xx.com

port: 25

user: yourname@xx.com

password: password

注:设置之后重启下es服务器

三、删除预警任务

有时候我们不在使用某项预警服务的时候,我们可以删除他

curl -XDELETE 'http://localhost:9200/_watcher/watch/log_error_watch'

es 怎么验证是否安装成功_ElasticSearch(ES)预警服务 Watcher安装以及探究相关推荐

  1. 今天花了好长的时间终于把SecureCRT安装成功了 现在分享给大家 安装的步骤, 希望对大家用帮助...

    转载地址:https://www.cnblogs.com/lianghe01/p/6618651.html 今天花了好长的时间终于把SecureCRT安装成功了 现在分享给大家 安装的步骤, 希望对大 ...

  2. centos 7 如何验证oracle安装成功_linux下Oracle数据的安装详解

    第二章:CentOS下Oracle用户环境配置和Oracle11g的安装: 1.下载Oracle安装包: linux.x64_11gR2_database_1of2.zip 和 linux.x64_1 ...

  3. linux上验证cudnn是否安装成功_Linux下CUDA+CUDNN+TensorFlow安装笔记

    之前用过TensorFlow的CPU版,现在买了个新电脑,就想把GPU也用起来,又因为目前大部分工作是在linux下做,所以有了在linux下安装cuda和TensorFlow的计划,快一个礼拜一直在 ...

  4. 怎么检查python是否安装成功-检查python以及django是否安装配置成功

    首先说明下,我使用pycharm作为开发的IDE,在第一次创建django项目的时候,会自动安装django包的.(网上也有很多单独安装的方法),环境变量配置成功后,就是用下面的方法检测安装成功与否. ...

  5. 如何检查python的库是否安装成功_如何测试redis是否安装成功

    下载Redis 下载好后 复制所在位置 cd 跳到 D:\Java\64bit 图中的目录位置 这样便启动成功了. 设置redis密码的话要 到redis.conf中找到 requirepass关键字 ...

  6. linux查看python是否安装成功,肿么查看linux中是否安装supervisor

    supervisor 是由python语言编写.基于linux操作系统的一款服务器管理工具,用以监控服务器的运行,发现问题能立即自动预警及自动重启等功能. 方法/步骤 首先必须先安装好python环境 ...

  7. android安装成功找不到,为什么明明安装了这个Android应用,却找不到

    作者:Yogi 前言:这里讲的是,通过adb push方式安装应用的问题.有时候,我们明明把应用push到了设备上,却总也找不到这个应用,这篇文章教你怎么应对. 你确定安装成功了吗? 首先要确定应用真 ...

  8. ubuntu的安装使用及一些主流服务的安装与使用

    关于ubuntu上的操作: 用户名:zxm 密码:123 在ubuntu系统中按:Ctrl+Alt+T即可打开终端. 关闭防火墙:sudo ufw disable. 查找指定文件: find / -n ...

  9. python安装成功的图标_ubuntu下:安装anaconda、环境配置、软件图标的创建、成功启动anaconda图形界面...

    Ubuntu安装anaconda常见的四大问题: 目录 1.介绍 2.安装anaconda 3.环境配置 4.软件图标的创建 5.成功启动anaconda图形界面 1.介绍 先介绍一下anaconda ...

  10. 安装成功后python报错_python安装Graphviz后报错及解决方法

    说明一下,graphviz这个包,使用pip install graphviz安装后是不行的,这只安装了graphviz的pyhon调用接口,使用的话还需要下载graphviz的安装文件. 1.下载g ...

最新文章

  1. Spring AOP中pointcut expression表达式解析
  2. Ubuntu通过windows代理上网
  3. matlab基数排序,c语言 数据结构 利用随机函数产生N个随机整数,对这些数进行多种方法进行排序...
  4. 解决‘tf.ResizeNearestNeighbor‘ op is neither a custom op nor a flex op
  5. 【公开课预告】:多媒体开源PI
  6. 全志r11_全志R328 Demo开发板;全志R333开发板/核心板;全志R11开发板/核心板;全志R16开发板/方案设计...
  7. 线性表之链式存储结构_单链表相关算法
  8. Spark SQL External DataSource外部数据源
  9. java多站点项目_java-在多模块项目构建期间模块之间的Maven...
  10. 互联网日报 | 7月11日 星期日 | 市场监管总局禁止虎牙斗鱼合并;北京我爱我家部分门店闭店一周;寒武纪入局自动驾驶芯片...
  11. 量化投资学习——如何阅读研报
  12. 操作 神通数据库_神通数据库-快速入门指南 PDF 下载
  13. Http状态码406(Not Acceptable)
  14. MyExcel 2.2.0 版本发布,支持公式导出
  15. 33c3 CTF web WriteUp
  16. Windows 环境下 Python 环境安装
  17. 傅里叶变换经滤波处理及傅里叶逆变换
  18. 2021-03-13 大数据课程笔记 day52
  19. 接口压测实践-压力测试常见参数解释说明
  20. 校园网络项目设计方案

热门文章

  1. [HNOI2010]PLANAR
  2. 全数字FM接收机 --(1)结构
  3. 读取文本作为输出字段
  4. KingDZ 变菜鸟,每日一个C#小实例之---C#MessageBox小技巧
  5. 【编程语言】【Ruby】语言介绍
  6. 数据结构:最小生成树
  7. sklearn ——Classification——knn
  8. CSS学习总结(1)——基本介绍
  9. Landsat8数据初识和概述
  10. 如何使用WindowsPerformanceToolKit对程序进行分析