zabbix 利用脚本发邮件(mail)

# 源码安装mailx

tar jxvf mailx-12.3.tar.bz2

make && make install UCBINSTALL=/usr/bin/install

#yum安装

yum -y install mailx  #一般镜像文件都会有mailx 

 

配置mailx   #登陆163申请帐号和设置授权码(很简单的)

[root@zbx zabbix]# vim /etc/mail.rc

set smtp=smtp.163.com  #中转站(由于qq需要做ssl认证,不推荐)

set from=邮箱账户@163.com  #伪装发送人

set smtp-auth-user=邮箱账户@163.com  #发送人

set smtp-auth-password=邮箱账户的授权码  #发送箱密码

set smtp-auth=login  #认证方式(登陆)

 

# 发送测试邮件

[root@zbx zabbix]# echo "Hello" | mail -v -s "test" x.x.x.x@qq.com
Resolving host smtp.guohualife.com . . . done.
Connecting to x.x.x.x:smtp . . . connected.
220 smtp.aliyun-inc.com MX AliMail Server(x.x.x.x)
>>> EHLO zabbix_master
250-smtp.aliyun-inc.com
250-STARTTLS
250-8BITMIME
250-AUTH=PLAIN LOGIN XALIOAUTH
250-AUTH PLAIN LOGIN XALIOAUTH
250-PIPELINING
250 DSN
>>> AUTH LOGIN
334 dXNlcm5hbWU6
>>> emFiYml4QGd1b2h1YWxpZmUuY29t
334 UGFzc3dvcmQ6
>>> MTIzYWJjZCE=
235 Authentication successful
>>> MAIL FROM:<zabbix@xxxx.com>
250 Mail Ok
>>> RCPT TO:<x.x.x.x@qq.com>
250 Rcpt Ok
>>> DATA
354 End data with <CR><LF>.<CR><LF>
>>> .
250 Data Ok: queued as freedom
>>> QUIT
221 Bye

 

vim /usr/lib/zabbix/alertscripts/maillog.sh  #编写邮件发送脚本(这里的3个变量需要在web页面设置内置的宏值)

注意#如果需要发邮件带附件在mail加上-a+文件名的参数(文件名最好用txt)

messages=`echo $3 | tr '\r\n' '\n'`

subject=`echo $2 | tr '\r\n' '\n'`

echo "${messages}" | /usr/bin/mailx -s "${subject}" -a /etc/zabbix/scripts/deal_time/log/deal.txt  $1 >>/usr/lib/zabbix/alertscripts/ybt.log 2>&1

-s  主题

-a (文件名)  发附件(最好用.txt结尾)

-c  抄送人(有多人之间用空格隔开)

 

****/tmp/sendmail.log该文件zabbix用户一定要有读写权限

 

#增加可执行权限

chown zabbix.zabbix /usr/lib/zabbix/alertscripts/maillog.sh

chmod a+x /usr/lib/zabbix/alertscripts/maillog.sh

 

zabbix web设置

根据环境使用的mailx,及在/usr/lib/zabbix/alertscripts/maillog.sh创建了一个脚本,每次触发都会调用maillog.sh,脚本maillog.sh中有3个变量对应下面的3个zabbix自带宏值。

媒介这块应该选用脚本类型

参数填写zabbix自带的宏值:

{ALERT.SENDTO}:发送人

{ALERT.SUBJECT}:主题

{ALERT.MESSAGE}:内容

指定新建或默认用户并对用户添加脚本及收件人邮箱

 

 

posted @ 2018-11-09 17:20  ZhengLiming  阅读(1494)  评论(0编辑  收藏  举报