elastalter邮件告警
一:简介
ElastAlert是一个简单的框架,用于通过Elasticsearch中的数据异常警告,峰值或其他感兴趣的模式。
监控类型
- “匹配Y时间内有X个事件的地方”(frequency类型)
- “事件发生率增加或减少时匹配”(spike类型)
- “在Y时间内少于X事件时匹配”(flatline类型)
- “当某个字段匹配黑名单/白名单时匹配”(blacklist和whitelist类型)
- “匹配任何匹配给定过滤器的事件”(any类型)
- “在一段时间内某个字段有两个不同的值时匹配”(change类型)
二:部署安装
由于Yelp官方提供有docker镜像,docker的便捷性,所以采用docker进行部署
githup官方库:https://github.com/Yelp/elastalert
docker image:bitsensor/elastalert:latest
安装方式:
下载相应的配置文件
git clone https://github.com/bitsensor/elastalert.git; cd elastalert
启动镜像
docker run -d -p 3030:3030 \
    -v `pwd`/config/elastalert.yaml:/opt/elastalert/config.yaml \
    -v `pwd`/config/config.json:/opt/elastalert-server/config/config.json \
    -v `pwd`/rules:/opt/elastalert/rules \
    -v `pwd`/rule_templates:/opt/elastalert/rule_templates \
    --net="host" \
    --name elastalert bitsensor/elastalert:latest
ES 7.X用docker跑,问题比较多
三:配置方式
详细资料查看官方资料。
规则配置
config
# rule规则所在路径
rules_folder: /data/elastalert/rules
# 运行时间间隔
run_every:
  minutes: 1
buffer_time:
  minutes: 15
es_host: 10.88.0.34
es_port: 9200
# 写入ES中的index
writeback_index: elastalert_status
writeback_alias: elastalert_alerts
# 告警发送失败的,时间限制,超过2天后,则丢弃
alert_time_limit:
  days: 2
rule
# Rule name, must be unique
name: web request status
# Type of alert.
#type: spike
type: frequency
# num_events must occur within this amount of time to trigger an alert
# 在5m内,查到的数量多余20,曾触发报警
timeframe:
  minutes: 5
num_events: 20
# Index to search, wildcard supported
# 索引和时间filed
index: web-2018.06.26
timestamp_field: "@timestamp"
# 匹配规则
filter:
- query:
    term:
      status:
        value: 404
# 邮件标题
alert_subject: "Surge in attacks on {}"
alert_subject_args:
  - http_host
# 邮件内容
alert_text_type: alert_text_only
alert_text: "Surge in attacks on {}"
alert_text_args:
  - host
# The alert is use when a match is found
alert:
  - "email"
email:
  - "xx@qq.com"
四:启动方式
binary Running
# 安装
git clone https://github.com/Yelp/elastalert.git
pip install -r requirements.txt
python setup.py install
cp config.yaml.example config.yaml
# 创建index
elastalert-create-index
# 测试
elastalert-test-rule --config config.yaml rules/test_frequency.yaml
# 正式
python3 -m elastalert.elastalert --config config.yaml
五:查看数据
1.elastalter会生成一个elastalter_status索引,里面会记录rule匹配的详细信息
{
  "_index": "elastalert_status_status",
  "_type": "_doc",
  "_id": "yosRkHAB-hBL9ipWbCYu",
  "_version": 1,
  "_score": null,
  "_source": {
    "rule_name": "Nginx request img check",
    "endtime": "2020-02-29T08:30:25.822237Z",
    "starttime": "2020-02-29T08:26:32.605579Z",
    # 匹配到多少天
    "matches": 0,
    # 命中
    "hits": 0,
    "@timestamp": "2020-02-29T08:30:25.836591Z",
    "time_taken": 0.014328718185424805
  },
  "fields": {
    "@timestamp": [
      "2020-02-29T08:30:25.836Z"
    ],
    "endtime": [
      "2020-02-29T08:30:25.822Z"
    ],
    "starttime": [
      "2020-02-29T08:26:32.605Z"
    ]
  },
  "sort": [
    1582965025836
  ]
}
elastalter邮件告警的更多相关文章
- 更新日志 - BugHD 新增邮件告警功能
		最近 BugHD 又新增了一些功能,包括邮件告警. issue 分享. issue 备注等,同时也做了性能优化.希望能够帮助你更高效地收集解决应用崩溃. BugHD 新增功能 1.邮件告警 除了 We ... 
- zabbix邮件告警
		Zabbix邮件告警看了很多文档,写的那叫一个蛋疼,明明没有发出去邮件,硬要糊弄观众,我也跟着被糊弄. 操作系统环境: CentOS 5.5 x84_64位 Zabbix版本2.2.3 Web服务器: ... 
- Python巡检Oracle表空间并邮件告警
		最近,自学了Python基础,突发奇想,把以前通过shell自定义通过nagios实现Oracle表空间以及ASM以及备份的脚本改进下,首先感叹的是Python脚本看上去确实挺好的,效率还不错. 这是 ... 
- zabbix监控配置与邮件告警
		添加主机与主机组 进入web页面,在 配置-主机群组,创建主机群组 在 配置-主机,新建主机 在可见的名称中建议填写为类似 主机类型-主机名-IP或域名 的格式,如Web-Hyrule001-192. ... 
- zabbix的自动发现、自定义添加监控项目、配置邮件告警
		1.zabbix的自动发现这里的自动发现,所显示出来的是规则的上自动了现 然后 可以对其内容进行相关的配制,如时间或周期 注意:对于单个主机的规则,可以自行添加或删除, 但对于已经添加好了的规则,若需 ... 
- T-Pot平台cowrie蜜罐暴力破解探测及实现自动化邮件告警
		前言:Cowrie是基于kippo更改的中交互ssh蜜罐, 可以对暴力攻击账号密码等记录,并提供伪造的文件系统环境记录黑客操作行为, 并保存通过wget/curl下载的文件以及通过SFTP.SCP上传 ... 
- zabbix邮件告警之 通过shell脚本发送告警
		说明:本文讲如何通过shell脚本实现zabbix发送告警邮件,共有5步1.设置mailx账号:是配置mailx的发信账号2.zabbix服务器端编写邮件发送脚本:是增加zabbix的告警方式,增加通 ... 
- kubernetes实战(二十):k8s一键部署高可用Prometheus并实现邮件告警
		1.基本概念 本次部署使用的是CoreOS的prometheus-operator. 本次部署包含监控etcd集群. 本次部署适用于二进制和kubeadm安装方式. 本次部署适用于k8s v1.10版 ... 
- zabbix配置自动发现,故障邮件告警
		对网段内的主机进行自动发现,自动加入主机组,自定加入template 创建动作时,类型这里选择discovery 然后将发现的主机加入host group和template: 动作针对的是discov ... 
随机推荐
- 安装、卸载 cocoapods
			卸载cocoapods: localhost:~ je$ sudo gem uninstall cocoapods Remove executables: pod, sandbox-pod in ad ... 
- Python高阶函数及函数柯里化
			1 Python高阶函数 接收函数为参数,或者把函数作为结果返回的函数为高阶函数. 1.1 自定义sort函数 要求:仿照内建函数sorted,自行实现一个sort函数.内建函数sorted函数是返回 ... 
- HikariCP重要参数配置
			概述 HikariCP是Spring Framework 5.0的默认数据库连接池,这得益于他的高性能.但是如果配置不当,数据库连接池也可能因影响到系统性能. 重要参数 maximum-pool-si ... 
- drf框架安装配置及其功能概述
			0902自我总结 drf框架安装配置及其功能概述 一.安装 pip3 install djangorestframework 二.配置 # 注册drf app NSTALLED_APPS = [ # ... 
- 【前端词典】4 个实用有趣的 JS 特性
			前言 最近在学习的过程中发现了我之前未曾了解过的一些特性,发现有些很有趣并且在处理一些问题的时候可以给我一个新的思路. 这里我将这些特性介绍给大家. 4 个有趣的 JS 特性 利用 a 标签解析 UR ... 
- Git上传项目至GitHub
			要使用github,首先需要下载git.安装git 1.先在github上创建一个git仓库,复制该github路径 2.用cmd进入一个目录 git clone github路径 从github上直 ... 
- [USACO10NOV]购买饲料Buying Feed 单调队列优化DP
			题目描述 约翰开车来到镇上,他要带 KKK 吨饲料回家.运送饲料是需要花钱的,如果他的车上有 XXX 吨饲料,每公里就要花费 X2X^2X2 元,开车D公里就需要 D×X2D\times X^2D×X ... 
- Python 3 既是激进的又是克制的,这些提议被否决了
			[译]PEP 3099--Python 3 中不会改变的事情 导语: Python 3.8 已经发布了,引进了不少变更点.关于 3.9 预计引入的修改,也披露了一些.我们之前还关注过 GIL 的移除计 ... 
- python中如何通过报错信息定位问题(异常传播轨迹)
			class SelfException(Exception): pass def main(): firstMethod() def firstMethod(): secondMethod() def ... 
- (转载)linux命令-sed
			原文地址:https://www.cnblogs.com/zhangzongjian/p/10708222.html 
