一:简介

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邮件告警的更多相关文章

  1. 更新日志 - BugHD 新增邮件告警功能

    最近 BugHD 又新增了一些功能,包括邮件告警. issue 分享. issue 备注等,同时也做了性能优化.希望能够帮助你更高效地收集解决应用崩溃. BugHD 新增功能 1.邮件告警 除了 We ...

  2. zabbix邮件告警

    Zabbix邮件告警看了很多文档,写的那叫一个蛋疼,明明没有发出去邮件,硬要糊弄观众,我也跟着被糊弄. 操作系统环境: CentOS 5.5 x84_64位 Zabbix版本2.2.3 Web服务器: ...

  3. Python巡检Oracle表空间并邮件告警

    最近,自学了Python基础,突发奇想,把以前通过shell自定义通过nagios实现Oracle表空间以及ASM以及备份的脚本改进下,首先感叹的是Python脚本看上去确实挺好的,效率还不错. 这是 ...

  4. zabbix监控配置与邮件告警

    添加主机与主机组 进入web页面,在 配置-主机群组,创建主机群组 在 配置-主机,新建主机 在可见的名称中建议填写为类似 主机类型-主机名-IP或域名 的格式,如Web-Hyrule001-192. ...

  5. zabbix的自动发现、自定义添加监控项目、配置邮件告警

    1.zabbix的自动发现这里的自动发现,所显示出来的是规则的上自动了现 然后 可以对其内容进行相关的配制,如时间或周期 注意:对于单个主机的规则,可以自行添加或删除, 但对于已经添加好了的规则,若需 ...

  6. T-Pot平台cowrie蜜罐暴力破解探测及实现自动化邮件告警

    前言:Cowrie是基于kippo更改的中交互ssh蜜罐, 可以对暴力攻击账号密码等记录,并提供伪造的文件系统环境记录黑客操作行为, 并保存通过wget/curl下载的文件以及通过SFTP.SCP上传 ...

  7. zabbix邮件告警之 通过shell脚本发送告警

    说明:本文讲如何通过shell脚本实现zabbix发送告警邮件,共有5步1.设置mailx账号:是配置mailx的发信账号2.zabbix服务器端编写邮件发送脚本:是增加zabbix的告警方式,增加通 ...

  8. kubernetes实战(二十):k8s一键部署高可用Prometheus并实现邮件告警

    1.基本概念 本次部署使用的是CoreOS的prometheus-operator. 本次部署包含监控etcd集群. 本次部署适用于二进制和kubeadm安装方式. 本次部署适用于k8s v1.10版 ...

  9. zabbix配置自动发现,故障邮件告警

    对网段内的主机进行自动发现,自动加入主机组,自定加入template 创建动作时,类型这里选择discovery 然后将发现的主机加入host group和template: 动作针对的是discov ...

随机推荐

  1. .NET Core 3.0中IAsyncEnumerable<T>有什么大不了的?

    .NET Core 3.0和C# 8.0最激动人心的特性之一就是IAsyncEnumerable<T>(也就是async流).但它有什么特别之处呢?我们现在可以用它做哪些以前不可能做到的事 ...

  2. Numpy数组操作

    """ Numpy 数组操作 修改数组形状 函数 描述 reshape 不改变数据的条件下修改形状 flat 数组元素迭代器 flatten 返回一份数组拷贝,对拷贝所做 ...

  3. MySQL学习(三)MySQL锁与事务

    本章我们着重讨论MySQL锁机制的特点,常见的锁问题,以及解决MySQL锁问题的一些方法或建议. 一.MySQL锁概述 相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支 ...

  4. cocos2dx 3.2 内存管理

    一.引用计数(cocos2d-x3.2的Node类中用到) 概念:记录当前对象被引用的次数.当次数为0时释放. 1 . retain  与 release 每调用一次retain()使计数+1 每调用 ...

  5. linux系统定时发送邮件

    Linux Centos7系统下利用自带的mail发送邮件服务 简介 本章分为五部分. 第一部分是基于虚拟机下的CentOS 7环境定时发送邮件: 第二部分是基于在阿里云购买的CentOS 7服务器环 ...

  6. Cocos Creator 通用框架设计 —— 资源管理

    如果你想使用Cocos Creator制作一些规模稍大的游戏,那么资源管理是必须解决的问题,随着游戏的进行,你可能会发现游戏的内存占用只升不降,哪怕你当前只用到了极少的资源,并且有使用cc.loade ...

  7. redis内存数据的持久化方式

    转: http://blog.csdn.net/wzqzhq/article/details/64920996 概述 Redis的强大性能很大程度上都是因为所有数据都是存储在内存中的,然而当Redis ...

  8. 百万年薪python之路 -- MySQL数据库之 Navicat工具和pymysql模块

    一. IDE工具介绍(Navicat) 生产环境还是推荐使用mysql命令行,但为了方便我们测试,可以使用IDE工具,我们使用Navicat工具,这个工具本质上就是一个socket客户端,可视化的连接 ...

  9. vue-property-decorator用法

    vue-property-decorator这个库完全依赖于vue-class-component,所以在使用这个库之前请先阅读它, 不管啥反正都是装饰器而已 vue-property-decorat ...

  10. java中多线程 - 如何创建多线程

    线程 什么是线程: 线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源 表面上 ...