首页 > 其他分享 >Zabbix阿里云短信告警

Zabbix阿里云短信告警

时间:2022-12-05 17:32:22浏览次数:33  
标签:info 短信 request sys Zabbix import logger 告警 日志

环境准备

(不一定要这样子的环境,可根据具体的生产环境配置)

应用 版本
CentOS 7.4
Zabbix 6.0.4
Python v2
阿里云短信服务SDK 2.0.22

准备阿里云短信签名和模板

阿里云短信签名

添加完签名再添加模板,有不清楚的问阿里服务人员

阿里云短信模版

模版内容可以根据需求变更,这里使用的模版是以下内容

A warning has occurred ${title} 
Time:${datetime} 
Host:${name} 
Info:${info}

接收到的样子大概长这个样子

【签名】A warning has occurred Nginx Down
Time:2022.12.03 16:42:44 
Host:node.if010.com 127.0.0.1 
Info:nginx status:0

这里需要注意以下几点: 1、变量属性选择“其他”; 2、申请后要和客户沟通,及时修改,不然会被审核不通过

准备key和秘钥

鼠标放到右上角用户处,可以看到一个AccessKey管理,入不记得秘钥可以重新生成 AccessKey

编写sms.py脚本

vim /usr/local/zabbix/share/zabbix/alertscripts/sms.py
#!/usr/bin/env python
#coding=utf-8

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

import logging
import json

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkcore.auth.credentials import AccessKeyCredential
from aliyunsdkcore.auth.credentials import StsTokenCredential
from aliyunsdkdysmsapi.request.v20170525.SendSmsRequest import SendSmsRequest

# 创建一个日志器,就是一个logger对象
logger = logging.getLogger('logger')
# 设置logger输入级别
logger.setLevel(logging.DEBUG)
# 创建日志格式器
formator = logging.Formatter(fmt="%(asctime)s [ %(filename)s ]  %(lineno)d line | [ %(levelname)s ] | [%(message)s]",
                             datefmt="%Y/%m/%d/%X")
# 创建一个输出的处理器,让它输入到控制台
sh = logging.StreamHandler()

# 1.创建一个把日志信息存储到文件中的处理器
# 要加编码,不然后可能会乱码
fh = logging.FileHandler("/var/log/sms.log", encoding="utf-8")

# 把输出处理器添加到日志器中
logger.addHandler(sh)

# 给处理器添加格式器
sh.setFormatter(formator)

# 2.把文件处理器,加载到logger中
logger.addHandler(fh)

# 3.给文件处理器添加格式器
fh.setFormatter(formator)

credentials = AccessKeyCredential('<这里填写你的AccessKey>', '<这里填写你的AccessSecret>')
client = AcsClient(region_id='cn-hangzhou', credential=credentials)

request = SendSmsRequest()
request.set_accept_format('json')
request.set_SignName("<这里填写你的短信签名名称>")
request.set_TemplateCode("<这里填写你的短信模版ID>")
request.set_PhoneNumbers(sys.argv[1])

message=json.loads(sys.argv[2])
logger.info("PhoneNumber:" + sys.argv[1])
logger.info("Title:" + message['title'])
logger.info("Datetime:" + message['datetime'])
logger.info("HostName:" + message['name'])
logger.info("Info:" + message['info'])

request.set_TemplateParam(sys.argv[2])

response = client.do_action_with_exception(request)
# python2:  print(response) 
# print(str(response, encoding='utf-8'))

# 输出日志信息
#logger.debug('输出debug级别的日志')
logger.info(sys.argv)
logger.info(response)
#logger.info(response)
#logger.warning('输出warning级别的日志')
#logger.error('输出error级别的日志')
#logger.critical('输出critical级别的日志')

此脚本的路径需要和你的zabbix_server.conf文件中AlertScriptsPath定义的路径一致,否则后面会报错找不到脚本执行!!!此外,还需要给脚本在/var/log/创建sms.log日志文件,最后给脚本赋予执行权限

chmod 777 /usr/local/zabbix/share/zabbix/alertscripts/sms.py
chmod 777 /var/log/sms.log

配置zabbix报警媒介类型

报警媒介

信息模版

信息模版编写成josn格式,方便脚本的读写

{"title":"{EVENT.NAME}","datetime":"{EVENT.DATE} {EVENT.TIME}","name":"{HOST.NAME} {HOST.IP}","info":"{ITEM.KEY1}:{ITEM.VALUE1}"}

关于阿里云JDK的环境

pip 安装 阿里云的JDK模块

pip install alibabacloud_dysmsapi20170525==2.0.23

标签:info,短信,request,sys,Zabbix,import,logger,告警,日志
From: https://blog.51cto.com/u_13444271/5913117

相关文章

  • 垃圾短信红名单的黑色幽默:谁在泄露公民隐私
    “某某银行已从您的某某银行卡里顺利扣除2600元还贷,查询请拨打********。”“你想掌握老公(老婆)的一举一动吗?只要拨打*******,即可复制他(她)的手机卡,随时掌握其通话对象、短信......
  • Linux系统zabbix_agentd客户端安装与配置
    官网下载zabbix安装包(zabbix安装包里包含了zabbix_agentd客户端安装包,我们只选择zabbix_agentd客户端安装) zbbix官网下载地址:  http://www.zabbix.com/download ......
  • zabbix监控进程和监控日志
    zabbix监控进程和监控日志文章目录​​zabbix监控进程和监控日志​​​​一、自定义监控进程​​​​1、新建脚本存放目录​​​​2、修改zabbix_agentd.conf文件​​​​3......
  • zabbix-server性能优化
    zabbix性能低下的表现1.    zabbix队列有太多被延迟的item,可以通过administration-queue查看2.    zabbix绘图中经常出现断图,一些item没有数据3.    带有noda......
  • 静远短信模块
    型号:JYC311-4G-232-TTS (带TTS语音报警通话,单价/420)用这款311@232[万能协议,232](单价380) 测试硬件环境:usb转232通信线手机卡波特率:9600 协议解析:发送TTS语......
  • Zabbix与乐维监控对比分析(二)——Agent管理、自动发现、权限管理
    上期我们详细介绍了Zabbix与乐维监控的架构与性能对比分析,透过架构与性能对比分析,用户可以对乐维监控之所以能成为”Zabbix企业版”有一个初步的认知。本篇是Zabbix对比乐维......
  • zabbix监控项中的自定义时间
    在zabbix监控项里面可以设置自定义时间,格式如下zabbix自定义时间间隔wd1-7h5-22m/5周一到周日,每天5点到22点,每隔5分钟执行一次h9,10m10-40/30每天9点......
  • 在执行dbca创建数据库实例时,告警“libgcc_s.so.1: cannot open shared object file”,
    问题描述:在执行dbca创建数据库实例时,告警“libgcc_s.so.1:cannotopensharedobjectfile”,安装必要的包后,再次执行dbca又报“UnsatisfiedLinkErrorexceptionloadingna......
  • 使用zabbix监控Linux以及Windows主机
    实验环境服务器操作系统IP地址Zabbix服务端CentOS7.4192.168.126.131Linux主机CentOS7.4192.168.126.200Windows主机Windows10专业版192.168.126.240......
  • 使用极光推送发送短信验证码
    发送短信验证码​​1.获取AppKey和MasterSecret​​​​2.设置短信模板和短信签名​​​​3.开始服务端接口的实现​​1.获取AppKey和MasterSecret首先应有一个极光推送官......