

docker exec -it zabbix-server-mysql bash
cd /usr/lib/zabbix/alertscripts
vi sendmail.sh
如图所示:

脚本内容如下:
#!/bin/bash ## 指定脚本文件使用bash解释器来执行
send_email() {
mail_address=$1
title=$2
content=$3
##这里修改成你自己的邮件api接口
url='http://xxx.xxx.xxx.xxx:xxxx/ITExceptionV1/SendMail/SendToMail'
data="{\"mailAddress\": \"$mail_address\", \"toTitle\": \"$title\", \"toInfo\": \"$content\"}"
echo $data > temp.json
response=$(wget -qO- --post-file=temp.json $url)
if [ $? -eq 0 ]; then
echo 'SUCCESS'
else
echo 'response.status_code=' $?
echo 'FAIL'
fi
rm temp.json
}
if [ "$#" -ne 3 ]; then
echo "Usage: $0 "
else
mail_address=$1
title=$2
content=$3
send_email $mail_address "$title" "$content"
fi
chmod +x /usr/lib/zabbix/alertscripts/sendmail.sh #文件赋予执行权限
./sendmail.sh xxx@xxx.com "email title" "email content"
前面步骤跟邮件告警一样,参考上文内容,下面直接从创建脚本开始。
vi sendSMS.sh
#!/bin/bash
send_sms() {
## 替换成你自己的短信api接口
url='http://xxx.xx.xxx.xxx/api/ms/dm/sms/send'
content=$(urlencode "$1")
phone_number=$(urlencode "$2")
smsPsw='7121@byd'
smsUid='7121'
response=$(wget -qO- "$url?content=$content&nodeld=2&phoneNumber=$phone_number&smsPsw=$s
if [ $? -eq 0 ]; then
echo 'SUCCESS'
else
echo 'FAIL'
fi
}
urlencode() {
# ...... awk ...... URL ......
echo -n "$1" | awk '{ gsub(/[^a-zA-Z0-9\/:._-]/, c); print }'
}
if [ "$#" -ne 2 ]; then
echo "Usage: $0 "
else
phone_number=$1
message=$2
send_sms "$message" $phone_number
fi
./sendSMS.sh 181XXXXX "message content"


1 )邮件配置
名称:随意填写
类型:脚本
脚本名称:填写你刚才创建的脚本名称
脚本参数:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

2)短信配置
名称:随意填写
类型:脚本
脚本名称:填写你刚才创建的脚本名称
脚本参数:
{ALERT.SENDTO}
{ALERT.MESSAGE}

如下表示创建成功:

以下只介绍邮件告警动作配置,短信动作配置同理,选择不同的报警媒介即可。

1)动作配置
名称:随意
条件:根据自己的需求添加,比如选择“主机群组”等于“zabbix servers”的主机(群组是在配置主机时添加的)

2)操作配置
(1)操作
主题添加如下内容:
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
消息添加如下内容:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

(2)恢复操作
恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
消息添加如下内容:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}




在仪表盘页面如果出现zabbix监控到服务器出现问题,则会触发邮件告警和短信告警动作,正常发送会显示绿色,如果没发送成功则是红色。

如下为收到告警邮件:
