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

作者: admin 分类: ELK 发布时间: 2018-11-18 23:58  阅读: 2,418 views

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

 

一、下载并安装sentinl插件

 

https://github.com/sirensolutions/sentinl/releases/ 上下载对应版本

在对应目录下执行 kibana/bin/ kibana-plugin install file:///users/xxx/xxx/sentinl.6.4.2.zip(最好先下载在上传至服务器,避免网络中断的情况)

执行完之后,可以在kibana界面左侧看到 steninl功能菜单

 

 

二、配置邮件发送

1. 在 kibana.yml中最下方配置

sentinl:
settings:
email:
active: true
user: abc@qq.com 【注:这里配置的邮箱账号在配置发送邮件方的时候需要用,如果与它不一致会发不出去】
password: xxxxx 【注:在qq邮箱处设置三方登录密码】
host: smtp.exmail.qq.com
ssl: true
port: 465 【注:linux系统如果是阿里云的会禁用默认的25端口,这里需要设置465】
timeout: 10000
report:
active: false

 

 

2. 点击Sentinl – watchers – new – watcher wizard【界面友好可】 或者watcher advanced【直接编写程序,更灵活方便适用】

这是我用watcher advanced 配置的一个简单的 每5分钟检查最近五分钟产生的异常信息的配置。

 

{
  "actions": {
    "email_html_alarm_2bb619c8-0d33-4b42-bbaa-38dbf5ca040f": {
      "name": "5分钟内日志记录",
      "throttle_period": "1m",
      "email_html": {
        "stateless": false,
        "subject": "{{watcher.title}}-最近的Exception信息",
        "priority": "high",
        "html": "哈喽,请认领自己的bug,抓紧处理哦!!!<br>{{#payload.hits.hits}} \n<li style='color:red'><b>source:</b> {{_source.source}} </li><br><li><b>message</b>: {{_source.message}}</li><br><br>{{/payload.hits.hits}}  \n",
        "to": "xxx@qq.com",
        "from": "abc@qq.com"
      }
    }
  },
  "input": {
    "search": {
      "request": {
        "index": [
          "filebeat-6.4.2-*"
        ],
        "body": {
          "query": {
            "bool": {
              "must": [
                {
                  "range": {
                    "@timestamp": {
                      "gte": "now-5m/m",
                      "lte": "now/m",
                      "format": "epoch_millis"
                    }
                  }
                }
              ],
              "filter": [
                {
                  "multi_match": {
                    "type": "best_fields",
                    "query": "exception",
                    "lenient": true
                  }
                }
              ]
            }
          },
          "size": 5,
          "aggs": {
            "dateAgg": {
              "date_histogram": {
                "field": "@timestamp",
                "time_zone": "Europe/Amsterdam",
                "interval": "1m",
                "min_doc_count": 1
              }
            }
          }
        }
      }
    }
  },
  "condition": {
    "script": {
      "script": "payload.aggregations.dateAgg.buckets.some(b => b.doc_count >= 0)"
    }
  },
  "trigger": {
    "schedule": {
      "later": "every 5 minutes"
    }
  },
  "disable": false,
  "report": false,
  "title": "测试环境service2+uic日志错误提醒",
  "save_payload": false,
  "spy": false,
  "impersonate": false
}
  }
}

 

3.配置好之后可以在 Watchers中看到

 

第一个按钮可以进行测试,即时发送

第二个按钮可以设置开启定时按照Interval中的时间进行定时搜索发送

 

注如果要用上面的配置,需要修改对应的索引名称,搜索条件等。确保自己的索引有效且能正常搜索数据。

以下是收到的邮件

 

 

希望大家都能正常的完成ELK环境搭建并正常使用,转载请注明出处,谢谢

 


   原创文章,转载请标明本文链接: 环境搭建之linux下ELK搭建好之后配置sentinl插件,进行邮件告警

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

6条评论
  • zhangpan

    2018年12月20日 21:04

    你好,我按你这配置后,发送邮件报错
    [error][Sentinl] cs-tomcat-error: email action : obligatory options in email: from : ActionError: obligatory options in email: from
    请问这是什么原因呢?

    1. admin

      2018年12月28日 21:36

      确定邮件配置正确的情况下
      1. 先检查from的邮箱,和 配置文件中的地址是否对应
      2. 检查邮件格式,是否正确。可以精简配置,逐步测试

  • zhangpan

    2018年12月20日 21:05

    {
    “actions”: {
    “email_html_alarm_bfb299f4-dd18-4885-aeb4-2f2d0b8d62c9”: {
    “name”: “cs-tomcat-error by zhangpan”,
    “throttle_period”: “1m”,
    “email_html”: {
    “stateless”: false,
    “subject”: “{{payload.hits.total}} new results from watcher {{watcher.title}}”,
    “to”: “zhangpan@tan66.com”,
    “from”: “zhangpan@tan66.com”,
    “priority”: “high”,
    “html”: “Hi {{watcher.username}}\nThere are {{payload.hits.total}} results found by the watcher {{watcher.title}}.\n\n\n \n This watcher sends alerts based on the following criteria:\n {{watcher.wizard.chart_query_params.queryType}} of {{watcher.wizard.chart_query_params.over.type}} over the last {{watcher.wizard.chart_query_params.last.n}} {{watcher.wizard.chart_query_params.last.unit}} {{watcher.wizard.chart_query_params.threshold.direction}} {{watcher.wizard.chart_query_params.threshold.n}} in index {{watcher.wizard.chart_query_params.index}}\n”
    }
    },
    “Email_alarm_53f20354-c40e-4b6b-8df5-8ac96ae3c3e3”: {
    “name”: “Email alarm”,
    “throttle_period”: “15m”,
    “email”: {
    “priority”: “low”,
    “stateless”: false,
    “body”: “”
    }
    }
    },
    “input”: {
    “search”: {
    “request”: {
    “index”: [
    “jx-cs-tomcat”
    ],
    “body”: {
    “query”: {
    “bool”: {
    “must”: [
    {
    “query_string”: {
    “analyze_wildcard”: true,
    “query”: “INFO”
    }
    },
    {
    “range”: {
    “@timestamp”: {
    “gte”: “now-30s”,
    “lte”: “now”
    }
    }
    }
    ]
    }
    }
    }
    }
    }
    },
    “condition”: {
    “script”: {
    “script”: “payload.hits.total >= 1”
    }
    },
    “trigger”: {
    “schedule”: {
    “later”: “every 30 seconds”
    }
    },
    “disable”: false,
    “report”: false,
    “title”: “cs-tomcat-error”,
    “save_payload”: false,
    “spy”: false,
    “impersonate”: false
    }

  • 恋恋红尘

    2019年2月11日 16:38

    WHEN min
    AGG date: @timestamp, field: levelint
    IS OVER all docs
    IS below eq 2
    LAST minutes 3
    INTERVAL minutes 1
    我想监控当levelint字段最小值小于2时触发报警,报警消息发到钉钉能收到,但是无论如何都取不到源索引的message
    {
    “msgtype”: “text”,
    “text”: {
    “content”: {
    “watcher”: “{{watcher.title}}”,
    “payload_count”: “{{payload.hits.total}}”,
    “message”: “{{#payload.hits.hits}} {{_source.source}} {{_source.message}} {{/payload.hits.hits}}”
    }
    }
    }
    这是我的webhook配置

    1. admin

      2019年2月14日 14:20

      应该是配置的搜索条件有问题,
      1. 你可以逐渐缩减 条件,看是否有效
      2. 你可以在kibana后台的开发者工具中,验证该条件是否能查询到对应索引数据

发表评论

电子邮件地址不会被公开。 必填项已用*标注

更多阅读