简介:
sendEmail是一个轻量级,命令行的SMTP邮件客户端。如果你需要使用命令行发送邮件,那么sendEmail是非常完美的选择:使用简单并且功能强大.这个被设计用在php、bash perl和web站点使用。以上是sendEmail的简单介绍,这里要和sendmail区别分开。
具体配置:
一、
下载软件:
[root@dell-09 app]# cd /data/app/
[root@dell-09 app]# wget -c http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
[root@dell-09 app]# tar -zxvf sendEmail-v1.56.tar.gz
[root@dell-09 app]# cd sendEmail-v1.56
[root@dell-09 sendEmail-v1.56]# cp -a sendEmail /usr/local/bin/
[root@dell-09 sendEmail-v1.56]# chmod 755 usr/local/bin/sendEmail
[root@dell-09 sendEmail-v1.56]# file /usr/local/bin/sendEmail
/usr/local/bin/sendEmail: a /usr/bin/perl -w script text executable
#查看版本
[root@dell-09 sendEmail-v1.56]# /usr/local/bin/sendEmail
sendEmail-1.56 by Brandon Zehm
#安装依赖
[root@dell-09 sendEmail-v1.56]# yum -y install perl-Net-SSLeay perl-IO-Socket-SSL
二、
测试邮件发送:
参数描述:
/usr/local/bin/sendEmail 命令主程序
-f [email protected] 发件人邮箱
-s smtp.163.com 发件人邮箱的smtp服务器
-u "zabbix test " 邮件的标题
-o message-content-type=html 邮件内容的格式,html表示它是html格式
-o message-charset=utf8 邮件内容编码
-xu [email protected] 发件人邮箱的用户名
-xp 123456 发件人邮箱授权码(不是邮箱密码)
-m "告警详情" 邮件的具体内容
note:163邮箱需要开启smtp及客户端授权码!
验证:
三、下面开始设置zabbix的sendemail邮件发送脚本
[root@dell-09 sendEmail-v1.56]# cat /usr/local/zabbix/etc/zabbix_server.conf |grep AlertScriptsPath
### Option: AlertScriptsPath
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/local/zabbix/alertscripts
[root@dell-09 sendEmail-v1.56]#
进入zabbix自定义的指定目录,我这里是/usr/local/zabbix
可以查看zabbix_server.conf配置文件AlertScriptsPath变量是如何定义的。
找到AlertScriptsPath选项,可以自定义脚本位置。
#创建mail.sh脚本
下面是sendemail的邮件发送脚本(这个脚本通用,确保了zabbix邮件报警信息不会出现中文乱码)
如果用163邮箱,smtp地址是smtp.163.com
如果是腾讯企业邮箱,smtp是smtp.exmail.qq.com
脚本链接:
http://down.51cto.com/data/2274361
赋权限:
[root@dell-09 sendEmail-v1.56]#chmod 755 mail.sh
[root@dell-09 sendEmail-v1.56]#touch /tmp/sendEmail.log
[root@dell-09 sendEmail-v1.56]#chown zabbix.zabbix /tmp/sendEmail.log
[root@dell-09 sendEmail-v1.56]#chown zabbix.zabbix mail.sh
#测试发邮件
[root@dell-09 alertscripts]# pwd
/usr/local/zabbix/alertscripts
[root@dell-09 alertscripts]# ./mail.sh [email protected] merry christmas 测试
zabbix server配置:
①登陆zabbix界面,进行设置
注意:zabbix 3.0 需要在为alert脚本定义参数,以前的版本参数都固定的,现在用户可以自己定义命令行的参数了。添加的参数也就是脚本中的$1、$2、$3等。
点击"管理"->"报警媒介类型"->点击最右边的"创建媒体类型"
②配置用户信息:
点击“管理”->“用户"->"zabbix"
点击“管理”->“用户群组”,点击zabbix administrator后面的调用模式。
点击用户群组Zabbix administrators的”权限“,点击”添加“,选择所有权限 ,最后点击下面的”更新“
③点击“配置”->“动作”,这里可以点击右边的“创建动作”(事件源是”触发器“,也就是Triggers),把默认的Report problems to Zabbix administrators修改为zabbix告警。
zabbix默认的告警内容不太好懂,所以做了以下修改:
告警主机:{HOST.NAME}
主机IP: {HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态: {TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID: {EVENT.ID}
④
1)计算方式
设置为“与/或”,说明只要触发其中任何一个都会发报警邮件
2)条件:
上面默认设置的是下面两个:
A:维护状态 非在 维护
B:触发器值 = 问题
按照上面的设置后,当被监控主机宕机或zabbix_agent(10050端口)关闭后,就会发生报警~
但是这些远远不能满足我们的运维监控需求。
比如当被监控主机的根磁盘爆满时,需要发送报警邮件!这就需要额外添加上面“动作”里的“条件”设置
如在“条件”里追加“主机”和“模板”,将所监控的主机和被监控主机采用的模板都选上为触发条件
这样,当任何一个条件被触发时,都会发送报警邮件!
设置“操作”,可以点击”新的“添加操作规则,也可以直接修改已有的操作规则:
默认的步骤是1-3,也即是从1开始到3结束。一旦故障发生,就是执行sendEmail.sh脚本发生报警邮件给zabbix用户和zabbix administrator组。
假如故障持续了1个小时,它也只发送3次,第1-3次(即前3次)邮箱发送给zabbix用户,时间间隔为0秒。
如果改成1-0,0是表示不限制.无限发送
间隔就是默认持续时间60秒。那么一个小时,就会发送60封邮件。
关键一步:需要重启sever服务器
[root@dell-09 alertscripts]# /etc/init.d/zabbix_server restart
zabbix利用sendemail发送报警信息的设置就已经完成了
测试:停掉任何一台agent服务
查看action日志:
效果如下: