最近公司需求要搭建一个监控系统,用来监控程序运行状态,请求曲线,错误日志发生次数,等等分析,保障系统稳定性。因此最近研究了基于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. Java poi插件导出Excel文件合并多sheet页
  2. 下面不属于python保留字_下面不属于Python保留字的是:?????????????????????????????????...
  3. typescript tslint rules config
  4. 03、MySQL—数据表操作
  5. JVM运行时区域详解
  6. python之file 方法
  7. 正则表达式 正整数_史上最全的正则表达式 (1) -- 校验数字的表达式
  8. 技术·融合·治理|众享链网试运行总结暨正式运行发布会预告
  9. Excel·VBA破解密码
  10. 百词斩不复习_不背单词好用还是百词斩好用?
  11. Java桶排序LSD
  12. 服务器本地文件无法复制粘贴,本地电脑与服务器突然无法直接使用复制粘贴
  13. 广告词 android,广告语猜猜看
  14. 第十七天(续第十六天BPDU相关知识以及STP的配置)
  15. Linux ln 命令是什么?C/C++代码实现
  16. oracle 裸金属,通过裸金属服务部署Oracle RAC (五)Oracle RAC的备份
  17. web前端--Html4
  18. 为什么敏捷方法能在软件开发中行之有效
  19. Excel模板中下拉筛选框动态展示筛选内容
  20. 实训七:二层交换机VLAN划分及相同VLAN通信

热门文章

  1. 《构建之法》阅读笔记
  2. 第五章 搭建开发板的测试环境
  3. Eclipse-导入maven项目
  4. http://mozilla.debian.net/
  5. 云计算之路-阿里云上:2014年6月12日12点IIS请求到达量突降
  6. SQL查询效率:100万数据查询只需要1秒钟
  7. PLSQL自动输入select * from|附件在cnblogs文件|
  8. SNS网站中怎样获取MSN联系人信息
  9. 【Softmax】操作对象(以模型最后一层生成的特征图进行softmax后得到的输出结果进行验证)
  10. 【C++】【Opencv】【vs2015】环境配置