前言 Zabbix 是一个高效的开源监控解决方案 邮件提醒的方式比较适合办公环境,电脑不在身边时,报警容易被忽视(大家习惯刷微博,刷微信,但不太习惯刷手机邮箱),这种情况下短信报警对于重要紧急的内容是一种很好的提醒方式 下面分享一下 Zabbix 监控系统短信报警的设定方法,详细可以参阅 官方文档 Tip: 当前的最新版本为 Zabbix 2.4.7 ---- 概要 ---- 前期准备 首先得有一个发短信的云平台 短信云平台的选择可以参考各类营销短信提供商 ,为什么选择营销短信提供商,而不是其它的,有以下几点原因 1.短信猫要使用电话卡,短信费用不便宜,还要购买和维护相应的硬件设备,性价比不高 2.验证短信云平台有模板审查机制,定制的报警模板不能马上生效, 要等审查通过,比较局限 3.营销短信云平台最为灵活,可以随便自定义,余额管理也比较方便 市面上主要就是这三种方式,相较而言第三种最方便 当然这并非绝对,只是我的一家之言,具体还得看应用场景,比如对安全性有额外要求或局域网络没有外网访问能力的 ,就可能要调整相应取向的权重 总而言之,我最后选择的是使用营销短信云平台,因为最省事儿
发送短信API 选择好短信云平台后,就要使用云平台提供的API开发出一个发送短信的工具(脚本) 不同商家提供的API不一样,不能一概而论,所以这里得有一定功底看懂API文档或Demo,然后进行改造使用或干脆自已写一个 下面以正奥通信提供的API为例进行演示 (此刻为 2016.01.18 21:11,之后API可能会有改动,但方法不变) 下面为API相关文档 接口文档 正奥通信短信接口规范V1.0.doc 客户端页面地址 http://139.129.128.71:8080/hsms 短信发送地址 http://139.129.128.71:8086/msgHttp/json/mt 余额查询地址 http://139.129.128.71 balance PHP Demo 二次开发PHP接口 JAVA Demo 二次开发JAVA接口 C# Demo 二次开发C#接口 根据API文档和参考Demo我写了一个简单的bash实现 ---- 短信余额脚本 这个是获取短信余额的脚本 [root@redis-b sms_script]# cat sms_get_balance.bash #!
[ ] zabbix-短信报警(参考 http://hanyun.blog.51cto.com/1060170/1604918 ) [ ] zabbix-电话报警(参考 http://dl528888 /usr/bin/env python # coding: utf-8 import requests; import json; import sys; “”” 使用八优短信平台进行短信报警 接收参数输入 参数一:接收手机号(zabbix传来的第1个参数,报警接收手机号) 参数二:短信主题(zabbix传来的第2个参数,报警主题) 参数三:短信内容(zabbix传来的第3个参数,报警内容 ) 手动调试方法 python sendsms.py *********** “报警测试” “”” def sendsms(phone,subject,message): “”” 1] subject = sys.argv[2] message = sys.argv[3] sendsms(phone,subject,message) 在动作中配置短信模板
Tip: 这里有一个命令 qtools 不必太计较是怎么来的,只用知道它是用来进行urlencode转换的就可以了 也可以使用shell来代替,比如 echo '报警' | tr -d '\n' | xxd -plain | sed 's/\(..\)/%\1/g' echo '报警' |tr -d '\n' |od -An -tx1|tr ' ' % 只是上面的脚本在处理带有换行的内容时会产生问题, 最后都会变成一行,格式就很难看 ---- 配置Zabbix Actions 进入zabbix的Actions创建界面 [Configuration]->[Actions]->[Create action server执行 命令内容 /tmp/sms_script/sms_sent_message.bash '1801601xxxx' 'zabbix测试系统报警:{TRIGGER.STATUS}:{HOST.NAME1 提供的宏组合出自已想要的信息,相关的宏信息可以参考 Zabbix Macros
trigger,然后修改一下 Severity 的级别 Tip: 简便方法是 Link 一下模板,然后 Unlik 一下 ,不要选择 Unlink and clear 否则又没了 通过防火墙丢弃icmp包触发报警 0.0.0.0/0 reject-with icmp-host-prohibited [root@h101 ~]# 过一小会儿(根据检查频度和触发规则而定),报警被触发了 image.png 几乎同时也收到了短信 image.png Events 里也留下了记录 查看方法是 : [Monitoring]->[Events] ---- 命令汇总 cat sms_get_balance.bash /sms_sent_message.bash '15016017077' '高级报警测试 vim /etc/sysconfig/iptables grep icmp /etc/sysconfig/iptables
发送短信脚本 这个是发送短信的脚本 [root@redis-b sms_script]# cat sms_sent_message.bash #! /sms_sent_message.bash '15016017077' '高级报警测试 > abcdefghijklmnopqrstuvwxyz > hello!
君子耻其言而过其行 论语 首次开通短信套餐包的腾讯云每月会赠送100条的免费短信数量,我们可以拿这100条短信进行测试 开通之后需要添加一个应用 ? 报警 将脚本放到/usr/lib/zabbix/alertscripts/目录下,并授予脚本操作权限,然后在zabbix页面进行配置 定义报警媒介类型 ? 进行zabbix报警测试 停止zabbix-agent,使其产生报警 systemctl stop zabbix-agent 可以看到报警短信已经收到 ? 如果要查看短信的报错信息,可以在腾讯云短信服务的统计分析中查看 ? 踩过的坑 尽量使用python3,python2在Linux环境下匹配数据可能会存在问题 短信模板中变量的分隔符尽量不要出现在触发器中,否则会造成转义 腾讯云同一手机号的发送短信频率为30秒内发送短信条数不超过
前面已分别介绍了zabbix的邮件、微信报警设置,这些都是手机在有网络时才能收到报警信息,那如果手机没有网的情况下怎么办,这就需要考虑使用短信接口报警了。 AlertScriptsPath=/data/zabbix/alertscripts 二、短信脚本 -------------------------------------------------- ,zabbix短信报警脚本如下: [root@zabbix alertscripts]# cat zabbixsend_sms.sh #! 三、zabbix的web界面里的报警设置 1)报警媒介类型设置 ? 2)用户的报警媒介设置 ? ? ? 3)"动作"设置 ? ? ? ? ? 上面的报警主题如下,这个其实在短信报警信息中没有体现,随便定义即可。 故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
一、分析 需求 Grafana支持短信渠道报警 要求 使用开发提供的短信API接口 请求url: http://192.168.1.1:8088/alerting/sendSms? 在Grafana添加短信报警方式 2. 在相关图表中应用短信报警 二、实际操作 添加报警方式 点击Alerting-->Notification channels 选择新建 输入报警方式的名字,比如: devops-sms 类型选择 webhook 由于是短信报警,发送的是文字,所以图片即使发过去,也没啥卵用。如果是邮件报警,则可以看到图表信息! 在webhook settings选项中,还有2个参数,username和password。 测试报警 点击上面的Send Test,确保能够收到短信!
一、onealter 报警插件设置 告警插件安装成功了,接下来我们要设置告警通知了 告警通知有多种,比如:邮件、微信、钉钉、APP、电话、短信等 这里主要给大家介绍:邮件、微信、APP 点击配置—通知策略进入通知页面 接下来我们在设置一下微信报警 点击右上角的人头像—个人中心 点击绑定微信,使用微信扫描即可绑定。 好了到此我们的告警插件就设置好了,接下来要设置zabbix-server平台。 二、zabbix监控平台调用报警插件 案例: 监控平台调用onealter插件,实现报警 点击管理—报警媒介类型 可以看到我们安装好的onealter,我们点击后边的测试,看看是否能正常工作 如果测试失败 ,一般是找不到文件,做个链接 [root@manage01 bin]# ln -s /usr/local/zabbix-server/share/zabbix/alertscripts/cloudalert 回到zabbix告警平台点击右上角 人头像—报警媒介—添加收件人 设置告警收件人,可以设置多个人。 ok,我们zabbix监控平台设置好了。
:yyy@163.com #这时候,邮箱yyy@163.com会收到来自xxx@163.com的测试邮件 三、配置Zabbix服务端邮件报警 1、进入zabbix管理页面 点击管理->报警媒介类型 点击最右边的创建媒体类型 一旦故障发生,就是执行sendEmail.sh脚本发生报警邮件给Admin用户和zabbix administrator组。 假如故障持续了1个小时,它也只发送一次。 sendmail.sh #设置脚本所有者为zabbix用户 chmod +x sendmail.sh #设置脚本执行权限 四、测试Zabbix报警 关闭Zabbix客户端服务 servicezabbix_agentd stop 查看xxx@163.com邮箱,会收到报警邮件 再开启Zabbix客户端服务 servicezabbix_agentd start 查看xxx@163.com邮箱,会收到恢复邮件 使用外部邮箱账号发送报警邮件设置完成 至此,Zabbix邮件报警设置完成。
Zabbix是一款开源的企业级监控系统,可以监控网络、服务器、应用程序等各种资源。在监控过程中,及时的告警通知是非常重要的,本文将介绍如何在Zabbix中配置电话、短信、飞书、钉钉、微信和邮件报警。 提前下载电话短信报警媒介:https://cdn.spug.cc/push/usage/zabbix/zbx_SpugPush_mediatypes.yaml步骤一:导入报警媒介类型在Zabbix管理界面 :报警用户选择前面创建的电话短信机器人报警用户,发送渠道选择SpugPush推送助手图片验证电话、短信、机器人报警完成以上配置后,我们可以进行测试,验证报警是否正常工作。 结论以上就是Zabbix电话、短信、飞书、钉钉、微信和邮件报警的配置过程。通过以上配置,可以及时地收到各种报警通知,帮助我们更好地管理和维护监控系统。 如果你是Zabbix4版本参考:Zabbix4实现电话短信钉钉飞书微信报警
Zabbix是现在企业用的比较多的开源监控系统,Zabbix电话短信报警更是运维不可缺少的报警渠道。 前面一篇介绍了Zabbix5.4版本如何通过Spug推送助手发送电话短信报警,但用户反馈Zabbix4.x版本有很大不同,这篇文章就基于Zabbix4.x版本介绍一下如何实现Zabbix电话短信和各种机器人报警 ID 图片 Zabbix添加报警媒介 • Zabbix / Administration / Media Types / create media type 图片 Name:推送助手报警 Type 报警报警脚本 登录zabbix-server服务器,添加zabbix执行的报警媒介脚本 $ vim /usr/lib/zabbix/alertscripts/spug_push_alert.sh #! Operations-Default message默认消息内容 • Opeartions / New / operation detail / Send to User / 选择推送助手电话短信报警用户
Zabbix 邮件报警 前期准备工作: 电脑登录网易邮箱配置,把自己的授权码看一下,并写入配置文件 server端安装配置邮件服务器 [root@master ~]# yum -y install mailx 报警媒体的配置: 首先需要配置 Zabbix 的邮件功能。 点击 管理->报警媒介类型->创建媒体类型 ? 然后在页面中填入你的报警媒介类型信息,例如下图所示: 注:脚本名称任意,存放于/usr/lib/zabbix/alertscripts (生产上的测试服放这:s /usr/local/zabbix/share 例如,发邮件给你报警,如果60 秒后你没响应,那就发 jabber 信息提醒你。如果 60 秒后还没响应,那就发短信给你。要是还没响应,就没有然后了。 你马上就会收到 Zabbix 发来的报警邮件了。
6、创建zabbix自定义报警媒介脚本 vi /usr/local/zabbix/AlertScripts/testemail.sh #! /bin/bash echo "$3" | mutt -s "$2" $1 chmod 755 /usr/local/zabbix/AlertScripts/testemail.sh 7、创建示警媒体 email-test 然后点击更新 保存 为管理员添加邮箱 然后 管理-》用户-》点击Admin 点击 示警媒体 点击添加 类型 email-test 收件人 test1@163.com zabbix3
zabbix报警Too many processes on zabbix server 2016年09月19日 16:49:30 郑子明 阅读数 12930 版权声明:本文为博主原创文章,未经博主允许不得转载 https://blog.csdn.net/reblue520/article/details/52586832 zabbix大量报警,运行进程过多,但实际有部分机器可以忽略,需要关闭相关的报警 Configuration
运维在日常工作中,会写很多脚本,但是脚本想支持电话短信报警却比较麻烦,要想让脚本支持电话、短信报警,一般要在电话短信运营商平台提交资料审核才可以,有些运营商平台还需要提交企业资质才可以,这就给运维带来了很多门槛 key1=测试报警&key2=服务器IPxxxx"{"code": 200, "msg": "请求成功"}4、编写脚本监控Mysql和主从同步,发生异常推送电话短信报警[root@manage]# vim # 主从同步异常推送电话短信报警 curl "https://push.spug.cc/send/byPj9N3xxxYQ? ${email_addr} # mysql进程异常电话短信报警 curl "https://push.spug.cc/send/byPj9N3xxxYQ? key1=Mysql进程&key2=192.168.100.1"fi5、验证电话短信报警6、支持更多渠道报警发送如果想让脚本支持邮件、钉钉、飞书、企业微信报警,只需要在推送助手平台上编辑模板,把邮件、钉钉
/mail.sh wang210@126.com “主题” “内容” 编辑zabbix_web,配置报警媒介 ? 编辑zabbix_web,配置用户 ? ? 配置报警动作 操作,恢复操作,或者更新操作必须存在一个 配置条件 可以根据自己的需要配置触发条件 ? 关闭agent,测试报警 systemctl stop zabbix_agent ? systemctl start zabbix_agent ? 配置脚本 从GitHub克隆微信报警脚本 git clone https://github.com/X-Mars/Zabbix-Alert-WeChat.git cp Zabbix-Alert-WeChat 上配置报警媒介和用户 配置报警媒介 ?
邮件发送成功")else: print("邮件发送失败") 里面调用的是 server=smtplib.SMTP_SSL 经过我测试,只要网络波动不是很大,基本邮件都可以发送成功 下面是我更改后的,zabbix #发送邮件的信息主体,发件人,收件人,内容 msg = MIMEText(message, 'plain', 'utf-8') msg['From'] = formataddr(["Zabbix
前言:通过企业微信小程序,实现zabbix自动注册和zabbix告警的微信消息推送。 一、整体架构 1、企业微信 - 创建zabbix机器人应用 - 取得企业微信ID、应用Agentld和Secret 2、编写zabbix机器人推送脚本,测试脚本 3、添加报警媒介 4、配置Trigger yum -y install python-pip pip install requests 查询脚本存放位置 cat /etc/zabbix/zabbix_server.conf | grep AlertScript 四、添加报警媒介,测试媒介 zabbix后台 - 管理 - 报警媒介类型 名称 weixin 类型 脚本 脚本名称 weixin.py 脚本参数: {ALERT.SENDTO} {ALERT.SUBJECT 管理员组 仅发送到微信 custom message 主题:服务器报警 消息: 告警主机:{HOST.NAME} 告警地址:{HOST.IP} 监控项目:{ITEM.NAME} 监控取值:{ITEM.LASTVALUE