elastalert 配置post告警方式(备忘)
最近在做把elk告警日志发送到kinesis 流,供后续数据分析处理使用。。。。。。。。
基于尽量不修改elastalert ,把修改工作放到接收端服务的原则。计划把elk的告警数据通过远程api的接口的形式发送到接收端,然后由接收端处理接收到的数据,并传送保存到kinesis 中。
从网上搜索了下elastalert 相关告警配置,搜到的文章大多以邮件告警为主,从官网扒拉了下资源,简单实现方式如下:
1、elastalert 配置(可以本地测试)
1)启动配置config.yaml

rules_folder: rules
run_every:
minutes: 1 buffer_time:
minutes: 5
es_host: es_endpoint
es_port: 9200
es_username: username
es_password: password use_ssl: False
verify_certs: False
writeback_index: elastalert_status
alert_time_limit:
hours: 2

2)告警规则kinesis.yaml

name: alertfortest
type: frequency
num_events: 1
timeframe:
minutes: 1 index: debug-*
filter:
- terms:
fields.app: ["app1","app2"]
- query:
query_string:
default_field: "message"
query: "error NOT INFO" alert:
- "email"
- "post" http_post_url: "http://localhost:8000/elastalert/"
http_post_static_payload:
rule_name: alertfortest smtp_host: "smtp.163.com"
smtp_port: 25
from_addr: "elastalert@163.com"
smtp_auth_file: /tmp/smtp_auth.yaml
email:
- "youremail@qq.com"

2、数据接收端

def elastalert2kinesis(request):
if request.method == 'GET':return HttpResponse(status=400)
elif request.method == 'POST':
data_dict = {
"region":"",
"env":"","service":"",
"ip":"","endpoint":"",
"metric":"",
"value":"",
"timestamp":0,
"dataSource":"",
"status":""
}
alertbody = json.loads(bytes.decode(request.body)) endpoint_list = alertbody['beat']['hostname'].split('-')
data_dict['env'] = endpoint_list[0]
data_dict['region'] = endpoint_list[1]
data_dict['service'] = "-".join(endpoint_list[2:-1])
data_dict['ip'] = endpoint_list[-1]
data_dict['endpoint'] = alertbody['beat']['hostname']
data_dict['dataSource'] = "elk"
data_dict['metric'] = alertbody['source']
data_dict['value'] = alertbody['message']
data_dict['timestamp'] = utc_to_local(alertbody['@timestamp'].split('.')[0]+"Z")
Stream().put_to_stream(data_dict['service'],**data_dict)
print("data_dict.....................:",data_dict) return HttpResponse(status=200)

elastalert 配置post告警方式(备忘)的更多相关文章
- ElastAlert配置和告警规则各种用法
config.yaml配置说明 #用来加载rule的目录,默认是example_rules rules_folder: example_rules #用来设置定时向elasticsearch发送请求 ...
- java+hadoop+spark+hbase+scala+kafka+zookeeper配置环境变量记录备忘
java+hadoop+spark+hbase+scala 在/etc/profile 下面加上如下环境变量 export JAVA_HOME=/usr/java/jdk1.8.0_102 expor ...
- ExtJs4常用配置方法备忘
viewport布局常用属性 new Ext.Viewport({ layout: "border", renderTo: Ext.getBody(), defaults: { b ...
- debian文本配置网络备忘:/etc/network/interfaces
我装了wheezy有gnome3,xfce4: 郁闷的是,不论在gnome还是xfce4中 我都无法图形登录或者切换用户到root: 而且我无法在普通用户下图形修改网络配置: 我也搜索不到启用root ...
- (网页的缓存控制)HTML配置no-cache(备忘) “Cache-control”常见的取值
HTML配置no-cache(备忘) No-cache配置 html表头如下 <meta http-equiv="Content-Type" content="te ...
- Nmap备忘单:从探索到漏洞利用(Part 5)
这是备忘单的最后一部分,在这里主要讲述漏洞评估和渗透测试. 数据库审计 列出数据库名称 nmap -sV --script=mysql-databases 192.168.195.130 上图并没有显 ...
- Nmap备忘单:从探索到漏洞利用(Part 4)
这是我们的Nmap备忘单的第四部分(Part 1. Part 2. Part 3).本文中我们将讨论更多东西关于扫描防火墙,IDS / IPS 逃逸,Web服务器渗透测试等.在此之前,我们应该了解一下 ...
- Linux常用命令速查备忘
Linux常用命令速查备忘 PS:备忘而已,详细的命令参数说明自己man 一. 启动,关机,登入,登出相关命令 [login] 登录 [logout] 登出 [exit] 登出 [shutdown ...
- Npm vs Yarn 之备忘大全
有则笑话,如此讲到:"老丈人爱吃核桃,昨天买了二斤陪妻子送去,老丈人年轻时练过武,用手一拍核桃就碎了,笑着对我说:你还用锤子,你看我用手就成.我嘴一抽,来了句:人和动物最大的区别就是人会使用 ...
随机推荐
- Servlet工作原理解析 《深入分析java web 技术内幕》第九章
参考关于servblet的相关文章 侧重概况:https://blog.csdn.net/levycc/article/details/50728921 ibm的相关:https://www.ibm. ...
- Python HTML解析器BeautifulSoup(爬虫解析器)
BeautifulSoup简介 我们知道,Python拥有出色的内置HTML解析器模块——HTMLParser,然而还有一个功能更为强大的HTML或XML解析工具——BeautifulSoup(美味的 ...
- Linux学习历程——Centos 7 grep命令
一.命令简介 grep 命令用于在文本中执行关键词搜索,并显示匹配的结果. 由于grep命令参数很多,这里只列出一些常用的参数. 参数 作用 -b 将可执行文件当作文本文件来搜索 -c 仅显示找到的行 ...
- Cs231n-assignment 1作业笔记
KNN assignment1 KNN讲解参见: https://blog.csdn.net/u014485485/article/details/79433514?utm_source=blogxg ...
- git执行cherry-pick时修改提交信息
git执行cherry-pick时修改提交信息 在本地分支执行cherry-pick命令时有时需要修改commit message信息,可以加参数-e实现: git cherry-pick -e co ...
- LeetCode算法题-Subtree of Another Tree(Java实现)
这是悦乐书的第265次更新,第278篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第132题(顺位题号是572).给定两个非空的二进制树s和t,检查树t是否具有完全相同的 ...
- 英语进阶系列-A04-英语升级练习二
古诗背诵 要求:背诵和朗读,然后翻译成现代文,并绘制图像描述图中的内容,同时看看某些内容可以用什么单词替换,时间限制到15 minutes. 速记词汇系列 要求:将词汇快速朗读并记忆,时间为8 min ...
- 【Linux基础】iconv命令详解(编码转换)
对于给定文件把它的内容从一种编码转换成另一种编码. iconv -f GBK -t UTF- file1 -o file2 //将GBK转换为UTF8,输出到file2.没-o那么会输出到标准输出 i ...
- Windows Service 学习系列(一):建立简单的Windows service
参考:https://www.cnblogs.com/cncc/p/7170951.html 一.开发环境 操作系统:Windows 7 X64 开发环境:VS2017 编程语言:C# .NET版本: ...
- Python编码规范(PEP8)及奇技淫巧(不断更新)
https://blog.csdn.net/MrLevo520/article/details/69155636