elastalert基于微信公众号报警

环境部署

安装其它的必需包

yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel

1,下载、编译和安装 Python 2.7.13

wget https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz

tar zxf Python-2.7.13.tgz

cd Python-2.7.13

./configure

make && make install

2,为新版 Python 安装 setuptools

wget https://bootstrap.pypa.io/ez_setup.py -O - | python

setuptools 正确安装完成后,easy_install 命令就会被安装在 /usr/local/bin 目录下了。

为新版 Python 安装 pip

easy_install pip

pip list --format=legacy

pip (9.0.1)

setuptools (33.1.1)

创建软连接

mv /usr/bin/python /usr/bin/python2.6.6

ln -s /usr/local/bin/python2.7 /usr/bin/python

更新python导致yum源无法使用就解办法:

vim /usr/bin/yum

#!/usr/bin/python

改为:

#!/usr/bin/python2.6

3,下载最新elastalert并安装模块

git clone https://github.com/Yelp/elastalert.git

yum -y install libffi-devel

cd  elastalert

python setup.py install

PS:报错

wget http://peak.telecommunity.com/dist/ez_setup.py

python ez_setup.py

pip install setuptools==34.3.3

pip install -r requirements.txt

pip install "elasticsearch==5.0.0" 选择自己的版本

查看pip list

pip list --format=legacy

安装完后,会在 /usr/local/bin/ 下生成4个elastalert命令

ls /usr/local/bin/elastalert*

/usr/local/bin/elastalert

/usr/local/bin/elastalert-rule-from-kibana

/usr/local/bin/elastalert-create-index

/usr/local/bin/elastalert-test-rule

###创建索引

elastalert-create-index

New index name (Default elastalert_status)

Name of existing index to copy (Default None)

New index elastalert_status created

Done!

################下边是测试的配置############################

#####修改配置文件

cd /opt/soft/elastalert

cp config.yaml.example config.yaml

vim config.yaml

rules_folder: example_rules #这是包含规则yaml文件的文件夹,(.yaml都作为规则加载)

run_every:

minutes: 1 #elastalert查询es的频率

buffer_time:

minutes: 15 #elastalert缓存时间段

es_host: 172.26.11.77 #es主机

es_port: 9200 #es端口

writeback_index: elastalert_status #elastalert设置的索引

alert_time_limit:

days: 1 #报警失败,最晚1天之内会再次报警,直到这个时间段过去

###配置邮箱用户名密码

vim /home/elastalert/elastalert/example_rules/smtp_auth_file.yaml

user: [email protected]

password: 1zxpfqBF-ibTw#gG ##这里的密码不是web页面登录的密码。而是机器码

cd example_rules

vim example_frequency.yaml

es_host: elk01

es_host: elk02

es_host: elk03

es_port: 9200

name: Example frequency rule

type: frequency

index: eas-172.25.11.112-server1-apusic.log.0-*

num_events: 1

timeframe:

minutes: 1 #出现的时间段

filter: #规则

- query:

query_string:

query: "field: value"

filter:

- query_string:

query: "message: 测试一下下"

######配置报警信息##########

alert_text: "jira服务出现问题"

#alert_text_type: alert_text_only

include: ["type", "ua", "log_time"] ###允许字段

#alert_text_type: exclude_fields

exclude: ["@timestamp", "_id", "_index", "_type"] ###排除字段

#attach_related: true

#top_count_keys: ["client_ip", "status"]

#############配置友好别名######

alert_text_type: alert_text_only (exclude_fields ##这个参数会显示默认报警注释)

alert_text: |

jira服务出现问题

主机: {}

请求URL: {}

HTTP状态码: {}

远程IP地址: {}

日志时间戳: {}

总查询次数: {}

总异常次数: {}

原始日志信息: {}

alert_text_args:

- client_ip

- ua

- status

- host

- log_time

- num_hits

- num_matches

- source

########配置邮件报警###############

smtp_host: cm-inv.com #SMTP协议的邮件服务器相关配置

smtp_port: 25

#邮箱用户认证

smtp_auth_file: /home/elastalert/elastalert/example_rules/smtp_auth_file.yaml

#回复给哪个邮箱

email_reply_to: [email protected]

#从哪个邮箱发送

from_addr: [email protected]

alert:

- "email"

#接收报警的邮箱

- "117[email protected]"

测试:

cd /opt/soft/elastalert/

python -m elastalert.elastalert --verbose --rule example_frequency.yaml

curl -X POST "http://172.26.11.79:9200/eas-172.25.11.112-server1-apusic.log.0-2017-07-25/test" -d ‘{ "@timestamp": "2017-07-25T11:43:30.000Z", "field": "value" }‘

#############以下是服务的配置#################################

mkdir /etc/elastalert

cd /etc/elastalert

复制配置文件

cp /opt/soft/elastalert/config.yaml ./

mkdir rules

复制规则文件

cp /opt/soft/elastalert/example_rules/example_frequency.yaml rules/

####修改配置文件

修改 config.yaml 中

vim config.yaml

rules_folder: /etc/elastalert/rules

##################配置微信报警#################################

cd /opt/soft/elastalert

wget -P elastalert_modules/ https://raw.githubusercontent.com/anjia0532/elastalert-wechat-plugin/master/wechat_qiye_alert.py

touch elastalert_modules/__init__.py

cd example_rules/

vim example_frequency.yaml

####配置微信报警######

alert:

- "elastalert_modules.wechat_qiye_alert.WeChatAlerter"

#设置微信企业号的appid

corp_id: wxc27a71b135ab

#设置微信企业号的Secret

secret: MQp6r1DYJ0wPCF-xRPYVvDWBJddgAnFBzHwJyVM

#后台登陆后【应用中心】->【选择应用】->【应用id】

##设置微信企业号应用id

agent_id: 100

##部门id

party_id: 1

##用户微信号

user_id: 10515480

## 标签id

tag_id: admin

######测试#######

python -m elastalert.elastalert

curl -X POST ‘http://172.26.11.77:9200/eas-172.25.11.112-server1-apusic.log.0-‘$(date +%Y.%m.%d)‘/test‘ -d ‘{"@timestamp": "‘$(date +%Y-%m-%d‘T‘%T%z)‘","field": "value"}‘

######报错#######

ERROR:root:Error while running alert WeChatAlerter: send message has error: ("bad handshake: Error([(‘SSL routines‘, ‘SSL3_GET_SERVER_CERTIFICATE‘, ‘certificate verify failed‘)],)",)

pip uninstall -y certifi && sudo pip install certifi==2015.04.28

pip install certifi==2015.04.28

启动服务

python -m elastalert.elastalert &

python -m elastalert.elastalert --config ./config.yaml

python elastalert/elastalert.py

安装完成,可以借鉴的文档

ElastAlert 基于Elasticsearch的监控告警 | 家的博客

https://anjia.ml/2017/02/14/elasticsearch-elastalert/

ELK中利用elastalert监控日志中的异常,发送邮件警告 - pujiaolin的专栏 - CSDN博客 http://blog.csdn.net/pujiaolin/article/details/52252950?locationNum=3

https://anjia.ml/2017/02/14/elasticsearch-elastalert/

Elasticsearch+ElastAlert微信报警 - 简书

http://www.jianshu.com/p/d318e0e843fd

https://github.com/anjia0532/elastalert-wechat-plugin

时间: 2024-10-11 12:13:10

elastalert基于微信公众号报警的相关文章

一、微信公众号开发环境搭建

说道微信公众号,大家肯定不陌生...这年头,谁还谁还没个微信啊.最近在研究这个,,记录一下.写的不好,大家别喷啊.做个笔记而已. 一. 准备工作: 1.二话不说,先注册微信公众号.这就不用说了吧,各种账号,密码,验证码,各种填写.\(^o^)/~ 进去你的瞅瞅吧,都有哪些账号.服务号,订阅号,企业号的相关说明 2.看看 官方说明,,大概知道什么玩意了哇..立马动手注册.(别打服务号,企业号的主意,,和咱们普通老百姓,没啥关系)作为一个新一代程序猿,我们重点关注,你们懂得. 3.开发嘛,,大家都知

微信公众号开发前期准备工作

随着移动互联网越来越普及,众多企业都注册了微信公众号,于是微信公众号的开发也越来越多,为了不被世界所淘汰,特地学习下微信公众号的开发,已备不时之需! 按照惯例,学习一门新技术或者新框架,咱们还是从官方提供的文档开始,于是找到微信公众平台开发者文档(http://mp.weixin.qq.com/wiki/home/index.html) 1.微信公众平台接口测试号申请 按照文档指引,咱们得先申请一个微信公众平台接口测试账号(http://mp.weixin.qq.com/debug/cgi-bi

微信公众号开发笔记

试了一段时间的微信公众号开发,本文主要以图片和代码的形式,介绍一些公众号开发的内容. 基于微信公众号的第三方开发,主要是需要搞清楚[微信用户],[微信服务器],[第三方服务器]三者之间的数据流程和走向,废话不说,直接上图吧. 1. 第三方URL验证,微信用户关注公众号事件 2. 用户发送消息,点击自定义菜单事件 3. 设置公众号自定义菜单 4. 网页开发授权 暂时先发这4张图,代码后续再发.希望对开发者有所帮助.

信用卡微信公众号或服务号解除绑定-实录

目前主流的信用卡发卡行均已推出基于微信公众号服务号的便民服务若是需要解除绑定呢 新测还是比较简单的基本的方法都是发送"解除绑定"或者类似字样到发卡行的微信公众号再根据提示就可以进行解除绑定操作了. 以下是实际操作记录供参考 招商银行 M.E 取消绑定 招商银行信用卡 您是需要选择以下哪项功能 6. 开通微信持卡人验证 7. 取消微信持卡人验证 8. 掌上生活如何关联或删除卡片 9. 掌上生活注册.绑卡攻略 10. 取消微信支付功能 11. 设置自动扣款功能 请您对本次回复做出评价感谢您

微信公众号和小程序打通版商城解决方案

微信公众号和小程序打通版商城解决方案 一键安装小程序公众号商城,零基础开发CRMEB微信公众号小程序主要是以用户管理为中心,加电商系统,利用微信和小程序的优势,拼团.砍价.秒杀.积分.优惠券等吸引粉丝-转化粉丝-粘住粉丝-分析粉丝-维护粉丝-再次利用粉丝吸引粉丝形成闭环滚雪球模式 源码下载地址::http://github.crmeb.net/u/crmeb基于thinkphp5框架开发的一套用户管理+电商系统,主要是基于微信公众号和微信小程序的一套电商系统,后台采用form-builder组件

基于phpcms v9开发的微信公众号平台管理模块

前沿 在公司为一家酒店联盟开发了一个微信公众号平台,期间因为要赶做其它项目,停停顿顿,整整 改改估计用在开发微信模块的时间大概一个多月,前期的开发基本上已经完成,因为这个微信公众号管理平台是在运用phpcms v9开发的,是phpcms v9的一个模块,所以给它取一个名称,就叫phpcmsv9-weinxin吧. 先上图 phpcmsv9-weinxin模块介绍 之所以叫做微信模块,是因为它是基于phpcms v9的一个插件,安装与卸载随性所欲.phpcms v9是中国领先的内容管理系统,将微信

带领技术小白入门——基于java的微信公众号开发(包括服务器配置、java web项目搭建、tomcat手动发布web项目、微信开发所需的url和token验证)

微信公众号对于每个人来说都不陌生,但是许多人都不清楚是怎么开发的.身为技术小白的我,在闲暇之余研究了一下基于java的微信公众号开发.下面就是我的实现步骤,写的略显粗糙,希望大家多多提议! 一.申请服务器 1.我购买的是阿里云服务器,购买后要设置一下服务器密码,默认用户名是administrator,购买好后如下: 2.申请好后,copy一下此服务器的IP地址(公有),在本地ping一下看看是否可用,j键盘Win+R,输入cmd,输入ping+IP回车,如下即为成功: 二.配置服务器 1.下载远

基于Nodejs构建属于自己的微信公众号

摘要: 微信,庞大的用户基数,极强的用户粘性,在近两年吸引了无数的开发者注意力. Nodejs,近两年发展非常快的开发工具,尤其适合构建移动后台.本文就以笔者自己开发的实例,来描述如何基于Nodejs开发属于自己的微信公众号.在这个实例中,主要使用到了express, wechat, mongodb, monk等模块. 前期准备: 1.   申请微信公众号, 前往 https://mp.weixin.qq.com/  申请,这里不做过多阐述. 2.   购买服务器, 这里推荐Amazon的EC2

基于java的微信公众号二次开发视频教程

详情请交流  QQ  709639943 00.基于java的微信公众号二次开发视频教程 00.leetcode 算法 面试 00.北风网 零基础到数据(大数据)分析专家-首席分析师 00.快速上手JMeter 00.Jmeter 00.2017年Java web开发工程师成长之路 00.R语言速成实战 00.R语言数据分析实战 00.Python+Django+Ansible Playbook自动化运维项目实战 00.Java深入微服务原理改造房产销售平台 00.Python3入门机器学习 经