近日新装了zabbix3,官方支持中文,对于我这个英语渣来说实在是好消息,于是乎各方面配置完成,过程略去,简单说下遇到的一个蜜汁问题。


自动报警邮件使用脚本:

cat /usr/local/zabbix/share/zabbix/alertscripts/send_mail.sh 

#!/bin/bash
export LANG=en_US.UTF-8
echo "$3" | mail -s "$2" $1


添加报警媒介类型,脚本参数

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}


以上配置后发现,任何报警邮件发送过来后,我收到的邮件都是邮件正文变成了一个dat类型的附件,导致非常麻烦,而手动执行脚本并给三个参数发送出来的邮件完全正常。百思不得其解,整过过程折腾数日就快要放弃时,突然想到是否可能是linux/windows之间格式问题,于是乎测试一把将脚本内容修改如下

#!/bin/bash
export LANG=en_US.UTF-8
to=$1
subject=$2
echo "$3" > /tmp/zabbix_mailbody_$$
 
dos2unix /tmp/zabbix_mailbody_$$
mail -s "$subject" "$to" < /tmp/zabbix_mailbody_$$
rm -f /tmp/zabbix_mailbody_$$

转换后测试ok,报警邮件ok,天下太平。世界真美好