Zabbix自带的报警服务很丰富,其中发送电子邮件是使用最多的功能。 但自带的这个功能不支持在邮件中添加附件。 因此写一个bash脚本来实现这个功能。 在/usr/lib/zabbix/alertscripts/ 目录下用zabbix用户新建一个bash脚本 因为zabbix账户只能以服务角色登录,这里使用root账户登录后,用sudo -u zabbix vim xxx.sh来创建脚本 在之前将zabbix的目录权限取得 chown -R zabbix:zabbix /usr/lib/zabbix/alertscripts/ chown -R zabbix:zabbix /var/log/zabbix/ #!/bin/bash #send email # $1 send to # $2 subject # $3 message # 从其他机器获取log文件 先准备好用密钥登录配置 或者使用明文sshpass。 scp ssh [email protected]:/var/log/xx.log /var/log/zabbix/ # 给日志变量赋值 $ls_attachment=/var/log/zabbix/xx.log #因为echo会带入~M的换行符,导致邮件内容变成附件,这里要将传递进来的邮件正文的格式进行调整,先用zabbix用户创建文本文件sudo -u zabbix touch /usr/lib/zabbix/alertscripts/message.txt $ls_message=/usr/lib/zabbix/alertscripts/message.txt echo "$3" > $ls_message # 转换文本格式 dos2unix $ls_message mail -a $ls-attachment -s "$2" "$1" < $ls_message 完整的脚本如下: #!/bin/bash #send email # $1 send to # $2 subject # $3 message scp ssh [email protected]:/var/log/xx.log /var/log/zabbix/ $ls_attachment=/var/log/zabbix/xx.log $