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": "[email protected]",
                "subject": "TICKET_BFM 過去一分鐘內錯誤發生次數超過20,請關注",
                "body": "TICKET_BFM 過去一分鐘內錯誤發生次數超過20,請關注"
            }
        }
    }
}‘

当然actions里面还支持模板,比如

"actions": {
        "send_email": {
            "email": {
                "to": "[email protected]",
                "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: ‘<yourname>@xx.com‘
    smtp:
      auth: true
      starttls.enable: true
      host: smtp.xx.com
      port: 25
      user: [email protected]
      password: password

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

三、删除预警任务

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

curl -XDELETE ‘http://localhost:9200/_watcher/watch/log_error_watch‘
时间: 2024-10-13 18:03:24

ElasticSearch(ES)预警服务 Watcher安装以及探究的相关文章

centos7.5系统elasticsearch使用滚动和全新安装升级到最新的elasticsearch7.4.2版本

背景: 生产环境大量使用 elasticsearch 集群,不同的业务使用不同版本的elasticsearch es经常曝出一些大的漏洞,需要进行版本升级,并且使用x-pack的基本验证功能,避免用户数据泄露 x-pack免费版本特征: 基本的TLS 功能,可对通信进行加密 文件和原生 Realm,可用于创建和管理用户 基于角色的访问控制,可用于控制用户对集群 API 和索引的访问权限: 通过针对 Kibana Spaces 的安全功能,还可允许在 Kibana 中实现多租户. 升级的两种策略:

ElasticSearch在linux上的安装部署全程记录

原文地址:http://www.cnblogs.com/tianjixiaoying/p/4316011.html 由于项目需求,需要在linux平台搭建一套ES服务.在搭建过程中,遇到各种各样的问题.后来都一一解决.现在要记录下来这个过程,以及其中遇到的问题,及其解决方法. 一.环境配置 操作系统:Cent OS 7 ElasticSearch版本:1.4.1 JDK版本:1.7 SSH Secure Shell版本:3.2.9 elasticsearch-servicewrapper :ES

ElasticSearch学习笔记--1、安装以及运行

Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎,多的我就不细说了. 相关实验环境 Centos:7.3 ElasticSearch:5.6 java:1.8 1.检查java环境 java -version # 查看java版本yum install java-1.8.0-openjdk # jdk安装 java版本搞定好,就是安装ES. 2.安装ES.运行 官网下载地址 下载后直接解压缩,移动相应的目录即可.进入bin目录下即可启动程序 curl -L -

elasticsearch(es) 集群恢复触发配置(Local Gateway参数)

elasticsearch(es) 集群恢复触发配置(Local Gateway) 当你集群重启时,几个配置项影响你的分片恢复的表现. 首先,我们需要明白如果什么也没配置将会发生什么. 想象一下假设你有 10 个节点,每个节点只保存一个分片,这个分片是一个主分片或者是一个副本分片,或者说有一个有 5 个主分片/1 个副本分片的索引.有时你需要为整个集群做离线维护(比如,为了安装一个新的驱动程序), 当你重启你的集群,恰巧出现了 5 个节点已经启动,还有 5 个还没启动的场景. 假设其它 5 个节

Windows 10 安装ElasticSearch(2)- MSI安装ElasticSearch和安装Kibana

翻阅上篇文章:Windows 10 安装 ElasticSearch 上次写的是下载Zip包安装的,在下载页面 发现有 MSI (BETA) 的下载可选项.了解之后发现MSI安装也值得尝试. MSI安装ElasticSearch 参考文章:Install Elasticsearch with Windows MSI Installer 与zip包安装相比,MSI安装可以将ElasticSearch作为Windows 服务安装,这样可以方便设置开机自启动,就不用看到有一个cmd命令行在任务栏,El

Elasticsearch 7.x 最详细安装及配置

一.Elasticsearch 7.x 小马哥说过,学习技术栈得看版本,那么 Elasticsearch 7.x 有什么好的特性呢? ES 7.0 是 2019 年 4 月份发布的,底层是 Lucene 8.0.其他还有需要了解的是: 废除单个索引下多 Type 的支持 ES Security 免费使用 ECK - ES Operator on K8s 新功能:New Cluster coordination 新功能:完整的 High Level REST Client 新功能:Script S

asp.net core系列 74 Exceptionless服务端安装

原文:asp.net core系列 74 Exceptionless服务端安装 一.   Docker安装 Docker   要求版本Docker 18.09.0+以上 安装地址:https://www.runoob.com/docker/windows-docker-install.html 1.操作系统win10系统,在启用或关闭Windows功能中,开启hyper-v 2.安装后,在cmd中使用docker version查看版本信息为19.3.在电脑右下角有个小鲸鱼图标 3.设置镜像加速

(转)为C# Windows服务添加安装程序

本文转载自:http://kamiff.iteye.com/blog/507129 最近一直在搞Windows服务,也有了不少经验,感觉权限方面确定比一般程序要受限很多,但方便性也很多.像后台运行不阻塞系统,不用用户登录之类.哈 哈,扯远了,今天讲一下那个怎么给Windows服务做个安装包.为什么做安装包?当然是方便了,不用每次调用InstallUtil,还有,就是看上去 正规些. 不多说了,先来看看怎么做吧.首先,当然是创建一个Windows服务的项目.这个大家应该都知道怎么做(这都不明白的留

zabbix服务端安装

Zabbix服务端安装规范文档 修订历史记录 日期 版本 说明 作者 2014-01-21 <1.0> <初始化> 刘孟杰 目录 1.   前言..... 4 1.1   目的.... 4 1.2   术语.... 4 1.3   适用版本.... 4 1.4   阅读范围.... 4 2.     环境准备..... 4 2.1    yum安装LAMP环境.... 4 2.2    安装其他所需组件.... 4 2.3    启动服务.... 4 3.     安装zabbix