注:我的elk sentinl版本都是6.5.1

前期知识 es的查询语法、es watcher使用方法。

https://www.cnblogs.com/pilihaotian/p/5830754.html

https://www.cnblogs.com/ghj1976/p/5293250.html

https://www.cnblogs.com/wihainan/p/7064943.html

钉钉告警设置

1、钉钉里先建一个群,然后群内添加一个机器人,最后登录电脑版钉钉获取钉钉地址

2、安装sentinl

可以在线安装  ./kibana-plugin install https://github.com/sirensolutions/sentinl/releases/download/tag-6.5.0-0/sentinl-v6.5.1.zip

也可以离线安装  ./kibana-plugin install file:../../sentinl-v6.5.1.zip      file 关键字不能漏掉

3、安装好重启kinaba,然后在打开页面就可以看到sentinl了

4、配置sentinl

在sentinl添加一个watcher,我使用的高级配置

配置如下:

 {
   "actions": {
     "Webhook_683bd385-86b3-46ba-8e1b-f89cccccbbec": {
       "name": "Tomcat异常告警",
       "throttle_period": "1m",
       "webhook": {
         "priority": "high",
         "stateless": false,
         "method": "POST",
         "host": "oapi.dingtalk.com",
         ",
         "path": "/robot/send?access_token=*********",   #写你自己的钉钉机器人地址
         "body": " {\"msgtype\": \"text\",\r\n  \"text\": {\r\n  \"content\":\" 异常发生,请处理~   \r\n 主机:{{payload.hits.hits.0._index}} \r\n IP:{{payload.hits.hits.0._source.type}} \r\n  告警内容:{{payload.hits.hits.0._source.message}} \r\n 最近一分钟发生次数:{{payload.hits.total}}\"\r\n    }  \r\n    }",
         "params": {
           "watcher": "{{watcher.title}}",
           "payload_count": "{{payload.hits.total}}"
         },
         "headers": {
           "Content-Type": "application/json"
         },
         "auth": "钉钉账号:钉钉密码",  #这个验证可以不要,删掉也没事
         "message": "业务功能告警",
         "use_https": true
       }
     }
   },
   "input": {
     "search": {
       "request": {
         "index": [
           "*-tomcat"
         ],
         "body": {
           "query": {
             "bool": {
               "must": [
                 {
                   "match": {
                     "level": "ERROR"
                   }
                 },
                 {
                   "range": {
                     "@timestamp": {
                       "gte": "now-1m",
                       "lte": "now",
                       "format": "epoch_millis"
                     }
                   }
                 }
               ],
               "must_not": []
             }
           }
         }
       }
     }
   },
   "condition": {
     "script": {
       "script": "payload.hits.total >=1"
     }
   },
   "trigger": {
     "schedule": {
       "later": "every 1 minutes"
     }
   },
   "disable": true,
   "report": false,
   "title": "钉钉告警",
   "save_payload": false,
   "spy": true,
   "impersonate": false
 }

其中actions是发生触发报警时的动作用什么告警,我这里用的是钉钉,也可以邮件报警

钉钉报警内容里参数可以按照elk里参数获取。

payload.hits.hits.0._index
payload.hits.hits 是查询的到所有报警信息,0表示第一条报警信息

input就是去es里查询数据,相关使用方法参数文章前的链接,下面只是简单说明。

  index是需要去哪个es索引里查询数据,可以用正则 .文中配置是查询最近一分钟内level等级是ERROR的所有数据。

condition 是对查询结果进行计算,payload.hits.total >=1是查询结果条数如果大于等于1则报警。

trigger是查询频率  , "later": "every 1 minutes" 表示每隔一分钟则查询一次。

spy表示是否在关闭网页后仍然监控运行.默认情况只有在打开网页的情况下才能周期报警。

5、验证

如果有数据,则显示watcher executed,否则显示no data。

显示watcher executed,则钉钉会收到报警信息

如果显示watcher executed但钉钉没有收到信息,可以查看日志报什么错。其中no transform found表示actions里body内语法错误,可以检查下语法。

邮箱告警设置

前提是要设置服务器能发送邮件,可参考https://www.cnblogs.com/abkn/p/9720143.html

1、配置kibana.yml后重启kibana

sentinl:
  settings:
    email:
      active: true
      user: ****@****.com
      password: *******
      host: smtp.exmail.qq.com
      port:
      ssl: true   #根据实际情况添加
    report:
      active: true

2、配置sentinl

{
  "actions": {
    "email_html_alarm_9c8f6d7f-55c7-49f0-863d-ad3363726978": {
      "name": "api tomcat异常",
      "throttle_period": "1m",
      "email_html": {
        "from": "*****@tan66.com",
        "to": [
          "*****@tan66.com",
          "*****@tan66.com"
        ],
        "stateless": false,
        "subject": "api tomcat异常",
        "priority": "high",
        "html": "<p>异常发生,请处理~  </p> <br> 主机:{{payload.hits.hits.0._index}} <br> IP:{{payload.hits.hits.0._source.type}} <br>  告警内容:{{payload.hits.hits.0._source.message}} <br> 最近一分钟发生次数:{{payload.hits.total}}"
      }
    }
  },
  "input": {
    "search": {
      "request": {
        "index": [
          "kyb-api-tomcat"
        ],
        "body": {
          "query": {
            "bool": {
              "must": [
                {
                  "match": {
                    "level": "ERROR"
                  }
                },
                {
                  "range": {
                    "@timestamp": {
                      "gte": "now-1m",
                      "lte": "now",
                      "format": "epoch_millis"
                    }
                  }
                }
              ],
              "must_not": []
            }
          }
        }
      }
    }
  },
  "condition": {
    "script": {
      "script": "payload.hits.total >= 1"
    }
  },
  "trigger": {
    "schedule": {
      "later": "every 30 seconds"
    }
  },
  "disable": false,
  "report": false,
  "title": "api tomcat异常",
  "save_payload": false,
  "spy": false,
  "impersonate": false
}

3、告警结果显示

elk报警监控之sentinl 钉钉+邮件告警的更多相关文章

  1. linux下ELK搭建好之后配置sentinl插件,进行邮件告警

    ELK的环境搭建好之后,如何利用收集到的数据进行数据告警呢?在破解ELK之后,它本身提供一个监视器功能,配置偏向编写脚本.有一个更加方便的插件sentiel. 一.下载并安装sentinl插件 htt ...

  2. aws cloudwatch监控怎么通过钉钉机器人报警

    最近在完善海外业务在aws服务的CloudWatchh监控,发现CloudWatch报警通知要通过aws的sns服务,直接支持的通道有短信和邮件,但是我们想推到钉钉群里面的群机器人里面这个就要借助aw ...

  3. kube-promethues监控告警详解(邮件、钉钉、微信、自研平台)

    Alertmanager已经在前面Prometheus初体验(三)已经介绍过了.现在介绍一下在kube-promethues里面怎么修改alertmanager配置文件,以及怎么通过各种媒介发送信息. ...

  4. zabbix的搭建及操作(4)实现邮件,钉钉,微信报警

    实现邮件报警 网页版邮箱中开启 POP3/SMTP/IMAP 生成授权码并记录 Server端安装配置邮件服务器 1.Yum安装邮件服务器 yum -y install mailx dos2unix ...

  5. ELK日志报警插件ElastAlert并配置钉钉报警

    文章转载自:https://www.cnblogs.com/uglyliu/p/13118386.html ELK日志报警插件ElastAlert 它通过将Elasticsearch与两种类型的组件( ...

  6. Zabbix监控进程(进程消失后钉钉报警)

    用于python报警的脚本如下:(钉钉机器人的连接需要修改) #!/usr/bin/python3# -*- coding: utf-8 -*-# Author: aiker@gdedu.ml# My ...

  7. 使用python对mysql主从进行监控,并调用钉钉发送报警信息

    1.编写python的监控脚本 A.通过获取mysql库中的状态值来判断这个mysql主从状态是否正常 B.进行两个状态值的判断 C.进行调取钉钉机器人,发送消息 2.设置定时任务进行脚本运行 cro ...

  8. zabbix报警-邮件-钉钉

    安装zabbix的时候已经配置了zabbix_server的脚本目录 AlertScriptsPath=/opt/app/zabbix/script 所以把邮件.钉钉.微信相关的脚本都放在/opt/z ...

  9. zabbix的简单操作(查看监控,自定义监控和钉钉监控报警)

    zabbix是一种监控软件,我用的是centos7.5版本 一:我已经添加好主机了,接下来就是看看怎么查看监控内容的 1.打开zabbix服务的web网页 2.检测最新数据,要在最新数据中筛选 3.查 ...

随机推荐

  1. git编译安装

    因yum安装的git版本过低,所以尝试使用编译安装git 以下为编译安装时执行的命令 tar xf git-2.9.5.tar.gz cd git-2.9.5yum install curl-deve ...

  2. 3-Longest Substring Without Repeating Characters @LeetCode

    3-Longest Substring Without Repeating Characters @LeetCode 题目 题目中得到的信息有: 一段字符串找出不重复子串的最大长度,只需要长度信息. ...

  3. 左耳听风-ARTS-第3周(2019/4/7-2019/4/13)

    Algorithm 本周的算法题是按顺序合并两个已排序的链表(https://leetcode.com/problems/merge-two-sorted-lists/).和归并排序的合并已排序数组的 ...

  4. mysql入门学习笔记

    MySQL的登陆和退出 mysql -u 用户名 -p 密码 #登陆 quit #退出(exit or \q) 具体参数: 参数 描述 -D,--database=name 打开指定数据库 -deli ...

  5. oracle 的 exp 和imp命令

    数据导出: 1 将数据库TEST完全导出,用户名gdoa 密码123 导出到D:\TEST_BK.dmp中 exp gdoa/123@TEST file=d:\TEST_BK.dmp full=y   ...

  6. 【转】SSH穿越跳板机:一条命令跨越跳板机直接登陆远程计算机

    转自:http://mingxinglai.com/cn/2015/07/ssh-proxycommand/ 今天在公司搭建跳板机,遇到一个比较麻烦的问题,这里简单记录一下,希望对有相同问题的人有所帮 ...

  7. Centos6.9部署Gitlab-11.9.8并汉化

    Git 是一种分布式的代码版本管理系统,git在工作时可以不用时刻依赖后台服务器,在本地电脑上就可以管理版本控制,但是在需要协同开发时就必须要使用后台服务器了,目前互联网上有github,码云这样的远 ...

  8. mysql数据备份及恢复

    备份工具 mysqldump mysqldump是mysql和mariadb上最好的备份工具之一,免费开源. mysqldump 首先查询每个数据库和每个表的结构与数据,然后把查出的所有内容导出到文本 ...

  9. PHP-不同Str 拼接方法性能对比 参考自https://www.cnblogs.com/xiaoerli520/p/9624309.html

    问题 在PHP中,有多种字符串拼接的方式可供选择,共有: 1 . , .= , sprintf, vprintf, join, implode 那么,那种才是最快的,或者那种才是最适合业务使用的,需要 ...

  10. ssh:22端口拒绝服务

    在Hadoop配置中,被这个问题坑的死去活来的.总结一下,注意以下几点: 1.sshd是否启动.一般你ssh loaclhost的时候22端口拒绝,就很有可能是这个问题了. 手动打开:/etc/ini ...