Grafana短信报警实现

1、阿里云短信服务API
2、Jenkins-plugin:Generic Webhook Trigger Plugin
阿里云
- 下载 阿里云短信服务SDK ( # python setup.py install )
- 创建短信服务ACCESS_KEY_ID
Grafana
- 产生报警信息
- 将报警信息发送给Jenkins的webhook接口
Jenkins
- 创建JOB,执行python脚本
- 设置JOB的webhook地址
一、首先根据实际情况修改阿里云短信接口的python demo
# -*- coding: utf- -*-
import sys
from aliyunsdkdysmsapi.request.v20170525 import SendSmsRequest
from aliyunsdkdysmsapi.request.v20170525 import QuerySendDetailsRequest
from aliyunsdkcore.client import AcsClient
import uuid
from aliyunsdkcore.profile import region_provider
from aliyunsdkcore.http import method_type as MT
from aliyunsdkcore.http import format_type as FT
#import const
import json """
短信业务调用接口示例,版本号:v20170525 Created on -- """
try:
reload(sys)
sys.setdefaultencoding('utf8')
except NameError:
pass
except Exception as err:
raise err # 注意:不要更改
ACCESS_KEY_ID = "LTAIqEab3HRpRmk6"
ACCESS_KEY_SECRET = "TrnLKl5Qdd7aiAxsUF9v57635y07oK" REGION = "cn-hangzhou"
PRODUCT_NAME = "Dysmsapi"
DOMAIN = "dysmsapi.aliyuncs.com" #Jenkins webhook变量
PhoneNumbers = sys.argv[].split(",")
Contents = sys.argv[]
State = sys.argv[] print "PhoneNumbers: %s" % PhoneNumbers
print "Contents: %s" % Contents acs_client = AcsClient(ACCESS_KEY_ID, ACCESS_KEY_SECRET, REGION)
region_provider.add_endpoint(PRODUCT_NAME, REGION, DOMAIN) def send_sms(business_id, phone_numbers, sign_name, template_code, template_param=None):
smsRequest = SendSmsRequest.SendSmsRequest()
# 申请的短信模板编码,必填
smsRequest.set_TemplateCode(template_code) # 短信模板变量参数
if template_param is not None:
smsRequest.set_TemplateParam(template_param) # 设置业务请求流水号,必填。
smsRequest.set_OutId(business_id) # 短信签名
smsRequest.set_SignName(sign_name) # 数据提交方式
# smsRequest.set_method(MT.POST) # 数据提交格式
# smsRequest.set_accept_format(FT.JSON) # 短信发送的号码列表,必填。
smsRequest.set_PhoneNumbers(phone_numbers) # 调用短信发送接口,返回json
smsResponse = acs_client.do_action_with_exception(smsRequest) # TODO 业务处理 return smsResponse if __name__ == '__main__':
__business_id = uuid.uuid1()
#print(__business_id)
#params = "{\"code\":\"11113\"}"
#params = u'{"name":"wqb","code":"12345678","address":"bz","phone":"13000000000"}'
params = {"name":Contents,"state":State}
params = json.dumps(params)
print params
for PhoneNumber in PhoneNumbers:
print(send_sms(__business_id, PhoneNumber, "wjoyxt", "SMS_155355123", params))
附:阿里云短信模板详情
模版类型:短信通知
模版名称:Grafana短信模板
模版CODE:SMS_155355123
模版内容:Grafana告警名称:${name} ,现在状态变为:${state}
申请说明:公司内部运维人员专用告警短信
二、Jenkins插件Generic Webhook Trigger Plugin配置




三、创建Grafana Notification channels,Url:http://172.17.102.200:8080/generic-webhook-trigger/invoke?token=sms

完成!至此在Grafana触发报警后会通过这个Channel 发送一个POST请求到Jenkins,Jenkins便会执行对应的JOB从而发送报警短信。
构建过程日志如下图所示:

回调参数示例:
{
"title": "My alert",
"ruleId": ,
"ruleName": "Load peaking!",
"ruleUrl": "http://url.to.grafana/db/dashboard/my_dashboard?panelId=2",
"state": "alerting",
"imageUrl": "http://s3.image.url",
"message": "Load is peaking. Make sure the traffic is real and spin up more webfronts",
"evalMatches": [
{
"metric": "requests",
"tags": {},
"value":
}
]
}
手动测试:
curl -H "Content-Type: application/json" -X POST -d '{"ruleName":"test","state":"OK"}' "http://172.17.102.200:18080/generic-webhook-trigger/invoke?token=sms"
Grafana短信报警实现的更多相关文章
- Grafana 短信报警
一.分析 需求 Grafana支持短信渠道报警 要求 使用开发提供的短信API接口 请求url: http://192.168.1.1:8088/alerting/sendSms?mobile=手机号 ...
- zabbix3配置短信报警
需求:在zabbix服务器配置短信报警,当服务出现故障达到预警级别是通过发送短信的形式告诉运维人员,以便及时处理. 一.zabbix服务器端配置短信脚本 我的短信脚本放置位置为 /etc/zabbix ...
- CactiEZ 中文版V10.1安装使用以及139邮箱短信报警设置
说明:CactiEZ中文版V10.1是基于CentOS 6.0系统,整合Cacti等相关软件,重新编译而成的一个操作系统! 说明:CactiEZ中文版V10.1是基于CentOS 6.0系统,整合 ...
- server宕机监控、检測、报警程序(139绑定手机短信报警)monitor_down.sh
宕机监控报警程序 一. 需求来源 宕机对运维人员来说,最痛苦了.怎样检測一台server是否还在正常执行,假设该server宕机,怎样在第一时间监測到并通知一线运维人员进行维护,最大化降低损失. ...
- centos7之zabbix邮件报警(短信报警)
前言 前面我们介绍了zabbix的基本linux和window及SNMP流量的简单监控,我们知道作为运维人员,需要7x24小时待命,但是我们不可能时时刻刻都坐在电脑旁边查看监控上的各个主机状态,所以我 ...
- mysubmail 短信报警
https://www.mysubmail.com/chs/documents/developer/YPWD84 文本文档 官网:www.mysubmail.com 操作流程:快速接入短信 AP ...
- Zabbix 短信报警示例
Zabbix 短信报警 示例: 注意zabbix 脚本文件默认放置目录是 alertscripts (zabbix 动作调用脚本目录) # 编辑 zabbix_server.conf # AlertS ...
- zabbix学习笔记:zabbix监控之短信报警
zabbix学习笔记:zabbix监控之短信报警 zabbix的报警方式有多种,除了常见的邮件报警外,特殊情况下还需要设置短信报警和微信报警等额外方式.本篇文章向大家介绍短信报警. 短信报警设置 短信 ...
- zabbix 短信报警
使用的短信平台是云片网,接口请看官网短信接口API文档,有示例 进入server服务器存放脚本的文件夹,默认路径是 [root@test zabbix]# cat zabbix_server.conf ...
随机推荐
- Intel汇编指令格式解析
环境: win7_x64旗舰版.VS2015企业版 一.Intel保护模式.实地址模式和虚拟8086模式指令格式(x86) 图在Intel手册2.1章节 1.1)Instruction Prefixe ...
- Centos7 + Python3.6 + Django + virtualenv + gunicorn + supervisor 环境配置详解
跟着网上的教程走发现行不通阿!好多都是写个大概,而且每人的环境都是有些许差异的,比如说权限问题阿,等等都会造成安装的失败 说明:本教程在你已经拥有Centos7系统,已经安装好nginx服务器,已经安 ...
- MySQL Execution Plan--IN子查询包含超多值引发的查询异常
问题描述 版本:MySQL 5.7.24 SQL语句: SELECT wave_no, SUM(IF(picking_qty IS NULL, 0, picking_qty)) AS PICKED_Q ...
- http options 请求
- 部署activiti 5.15.1的Activiti Explorer
1.从官网下载activiti包,将其中的activiti-explorer.war文件拷贝到tomcat的webapps目录下: 2.将mysql驱动包文件mysql-connector-java- ...
- js for循环中定义clike事件由于闭包导致的循环变量获取不到的问题
在网上找的 记下来以备不时之需 案例; 本人有一个数组按钮 循环数组按钮 给每个按钮添加click事件 原本以为搞定但是出现了 每个按钮都是数组最后的方法 然后查找问题 发现onclike事件中的i ...
- logback root level logger level 日志级别覆盖?继承?
1. logback-spring.xml 配置 <appender name="STDOUT" class="ch.qos.logback.core.Consol ...
- winmount导致资源管理器崩溃
今天,在别人电脑上遇到一个问题,右键点击某个特定文件夹会导致资源管理器崩溃重启,提示为: Runtime Error! Program: C:\Windows\Explorer.exe This ap ...
- docker systemctl无法使用
Dockerfile for systemd base image FROM centos:7 ENV container docker RUN (cd /lib/systemd/system/sys ...
- puzz: 图片和表单上传的不一致问题
1. 方向1 用户提交表单, 图片和表单同步上传.(由同一服务器处理, 服务器压力大. 没有分离) 2. 方向2 图片和表单分开上传. 如图片访问ftp,表单提交后台(图片和后台分离) 2 ...