zabbix3配置短信报警
需求:在zabbix服务器配置短信报警,当服务出现故障达到预警级别是通过发送短信的形式告诉运维人员,以便及时处理.
一、zabbix服务器端配置短信脚本
我的短信脚本放置位置为 /etc/zabbix/alertscripts,这个必须在/etc/zabbix/zabbix_server.conf配置文件中放开 AlertScriptsPath=/etc/zabbix/alertscripts
进入/etc/zabbix/alertscripts目录,创建短信告警脚本sendSMS.sh,内容入下:
#!/bin/bash # 脚本的日志文件 LOGFILE="/var/log/zabbix/sms.log" :>"$LOGFILE" exec 1>"$LOGFILE" exec 2>&1 MOBILE_NUMBER=$1 # 手机号码 MESSAGE_UTF8=$3 # 短信内容 XXD="/usr/bin/xxd" CURL="/usr/bin/curl" TIMEOUT=5 # 短信内容要经过URL编码处理,除了下面这种方法,也可以用curl的--data-urlencode选项实现。 MESSAGE_ENCODE=$(echo "$MESSAGE_UTF8" | ${XXD} -ps | sed 's/\(..\)/%\1/g' | tr -d '\n') # SMS API 接口用户名和秘钥 ACCOUNT="xxx" PASS="1234xxxooxx" URL="http://10.73.17.10/msg/HttpBatchSendSM?account=${ACCOUNT}&pswd=${PASS}&mobile=${MOBILE_NUMBER}&msg=${MESSAGE_ENCODE}&needstatus=true" # Send it set -x ${CURL} -s --connect-timeout ${TIMEOUT} "${URL}"
然后执行下面的命令,设置脚本和日志文件权限:
touch /tmp/SMS.log chown zabbix:zabbix /tmp/SMS.log chown zabbix:zabbix /etc/zabbix/alertscripts/sendSMS.sh chmod +x /etc/zabbix/alertscripts/sendSMS.sh
手动测试脚本:
# /etc/zabbix/alertscripts/sendSMS.sh xxxxxxxxxxx "" "尊敬的客户,您的订单已出库发货,正在配送中,请您耐心等待。"
脚本第一个参数为手机号码;第二个参数不会用到,设为空就行;第三个参数为短信内容。
脚本执行后,到日志文件/tmp/SMS.log里查看返回值,如果大于0代表发送成功,小于0发送失败。
二、在zabbix web界面配置告警方式(Media types)
选择【Administration】->【Media types】-> 【Create media type】,创建短信告警方式,如下图:
注意:"Name"给告警方式起个名字,"Type"选择Script类型,"Script name"填写上面创建的脚本名.
三、配置用户的手机号码
选择【Administration】->【Users】,进入用户配置界面,在"Media"选项卡中配置用户接收告警的手机号码。点击"Add",在弹出的窗口中输入用户手机号,见下图:
四、配置告警动作(Action)
选择【Configuration】->【Actions】,进入告警动作配置界面,创建新的action。
1、配置短信内容(Default message)
2、配置告警条件(Conditions)
3、配置告警接收人(Action operations)
参考文档:http://www.sxt.cn/u/756/blog/3198
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)