博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
分布式监控系统Zabbix-3.0.3--短信报警设置
阅读量:6993 次
发布时间:2019-06-27

本文共 2829 字,大约阅读时间需要 9 分钟。

前面已分别介绍了zabbix的邮件、微信报警设置,这些都是手机在有网络时才能收到报警信息,那如果手机没有网的情况下怎么办,这就需要考虑使用短信接口报警了。当服务出现故障达到预警级别是通过发送短信的形式告诉运维人员,以便及时处理。公司的短信接口是从短信服务器购买的,并经过公司开发大神调整后使用的。废话不多赘述,下面直接记录配置过程:

一、zabbix服务端的脚本路径设置

1
2
[root@zabbix ~]
# cat /data/zabbix/etc/zabbix_server.conf|grep alertscripts
AlertScriptsPath=
/data/zabbix/alertscripts

二、短信脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
--------------------------------------------------------------------------------------------------------
下面是开发大神对短信服务器提供的接口进行调试之后给运维部分使用的短信接口
curl -H 
"Content-type: application/json" 
-X POST 192.168.1.10:8080
/sms/send/batch 
-d '
{
  
"phones"
: [
    
"13611789029"
,
    
"12310703369"
,
    
"13314466149"
  
],
  
"callOrgCode"
"YW1001"
,
  
"callOrgName"
"运维部门"
,
  
"callAppCode"
"WANG_OPS"
,
  
"key"
"R13-G294595Y32M24TAD60JK"
,
  
"templateId"
: 6,
  
"valueMap"
: {
   
"msg"
"test001服务器出现问题!请尽快修复!"
  
}
} '
 
可以在命令行里手动执行上面的接口进行发信测试,在目标手机查看是否收到短信。
--------------------------------------------------------------------------------------------------------

结合上面的短信接口,zabbix短信报警脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
[root@zabbix alertscripts]
# cat zabbixsend_sms.sh
#!/bin/bash
export 
LANG=en_US.UTF-8
 
PHONE=$(
echo 
$1|
sed 
's/,/",\n"/g'
)                         
#第一个变量($1)。由于多个号码要换行,并且每行要加双引号,故要做匹配转换设置
#Message=$(echo $3|sed 's/:/": "/g'|sed 's/,/",\n"/g')
#Message=$(echo $3|sed 's/: /": "/g'|sed 's/,/",\n"/g')
Message=$3                                                 
#第三个变量
 
curl -H 
"Content-type: application/json" 
-X POST 192.168.1.10:8080
/sms/send/batch 
-d 
""
"          
#公司的短信接口地址,这里采用post方式
{
  
\"phones\": [
    
\"$PHONE\"
  
],
  
\"callOrgCode\":\"YW1001\",                       
  
\"callOrgName\": \"运维部门\",
  
\"callAppCode\": \"WANG_OPS\",
  
\"key\": \"R13-G294595Y32M24TAD60JK\",
  
\"templateId\": \"6\",
  
\"valueMap\": {
   
\"msg\": \"$Message\"
  
}
""
"                                         
#前后三个引号表示引号里的内容输入什么就是什么,变量参数不会被影响。
 
time
=`
date 
'+%F %T'
`
echo 
"${time}  ${PHONE} $Message" 
>> 
/data/log/sendsms_
`
date 
+%Y-%m`.log
 
[root@zabbix alertscripts]
# chmod 755 zabbixsend_sms.sh
 
可以先手动执行脚本进行发信测试:
$1是发信的手机号码
$2是发信的主题,这个一般短信报警信息里不显示,如下测试是
"报警测试"
。上面脚本中没有配置$2的变量
$3是发信的内容。
三个变量使用空格隔开
[root@zabbix alertscripts]
# ./zabbixsend_sms.sh 13633767819 报警测试 backup01服务器宕机了!
{
"totalCnt"
:1,
"successCnt"
:1,
"failCnt"
:0,
"failPhones"
:[],
"failMsg"
:null,
"msgContent"
:
"backup01服务器宕机了!"
}

三、zabbix的web界面里的报警设置

1)报警媒介类型设置

2)用户的报警媒介设置

3)"动作"设置

上面的报警主题如下,这个其实在短信报警信息中没有体现,随便定义即可。

1
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

报警内容如下(由于开发那边的调整规则,报警内容换行后就发信失败,所以这里只能讲报警内容放在一行)

1
告警主机:{HOSTNAME1}, 告警时间:{EVENT.DATE} {EVENT.TIME}, 告警等级:{TRIGGER.SEVERITY}, 告警信息: {TRIGGER.NAME}, 告警项目:{TRIGGER.KEY1}, 问题详情:{ITEM.NAME}:{ITEM.VALUE}, 当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}, 事件ID:{EVENT.ID}

手机短信报警截图如下:

发信后,可以查看zabbix的web界面里的"报表"->“动作日志”

***************当你发现自己的才华撑不起野心时,就请安静下来学习吧***************
本文转自散尽浮华博客园博客,原文链接:http://www.cnblogs.com/kevingrace/p/7400583.html,如需转载请自行联系原作者
你可能感兴趣的文章
银行管理系统 实现用户注册 登录 存、取款 交易记录查询和修改用户信息等功能...
查看>>
编译运行Red5源代码
查看>>
如何从代码层防御10大安全威胁中的 Xpath Injection?
查看>>
Linux系统安装VMware-Workstation-Full-12.1.0-3272444.x86_64.bundle
查看>>
centos7搭建openldap+phpldapadmin
查看>>
智能型搜索引擎的发展趋势   
查看>>
poi apache compress实现excel压缩下载
查看>>
EndPoint学习之路_管理维护篇:Gaia.ISO的SSH访问设置
查看>>
利用arpspoof实现ARP欺骗***
查看>>
AppServ安装
查看>>
android中activity向service中传值
查看>>
解决 ERROR 1045 (28000): Access denied for user 'roo
查看>>
数据结构与算法之解析之路
查看>>
进制转换算法
查看>>
Ubuntu命令模式基础
查看>>
js-瀑布流代码
查看>>
python基础知识
查看>>
微软发布 Linux 下的 SQL Server 公众预览版
查看>>
selenium在使用sendkeys()时出现的问题
查看>>
长文慎入-探索Java并发编程与高并发解决方案
查看>>