Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2148659
  • 博文数量: 227
  • 博客积分: 10521
  • 博客等级: 上将
  • 技术积分: 3452
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-20 14:59
个人简介

低调做人,高调做事!

文章分类

全部博文(227)

文章存档

2013年(4)

2012年(8)

2011年(16)

2010年(24)

2009年(92)

2008年(83)

分类: LINUX

2011-08-15 19:02:57

需求:
由于nginx默认使用linux系统自带的sendmail发送警报邮件,这就有2个异常问题产生:
1,如果系统开机没有启动sendmail,或者sendmail启动异常,发送邮件失败。
2,某些邮局会拒绝没有域名解析的发送地址,发送邮件失败。

实现:
目前自己写的监控程序都是基于认证的,比如连接163.com的邮局,输入用户名和密码登陆后,进行邮件发送。
开始考虑自己写一个脚本实现,后来发现一个好用的sendEmail,也是用perl写的,就不搞轮子了。


一、获取sendEmail的安装包:
wget

二、解压并进入解压的文件
tar -zxvf sendEmail-v1.56.tar.gz
cd sendEmail-v1.56
cp sendEmail /usr/local/bin

sendEmail的常用参数:   
-m:    邮件的内容,如果不带此参数,会提示用户手工输入
-f:    邮件发送者
-s:    STMP服务器的域名或者IP地址
-u:    邮件的主题
-t:    邮件接收者,如果需要发送多个,使用","隔开邮件人地址即可
-xu:    表示SMTP验证的用户名
-xp:    SMTP验证的密码
-o:    文本信息字符集,若无 -o参数,发送的含有中文时会有乱码问题!

三、测试发送
/usr/local/bin/sendEmail -f test@163.com -t test@gmail.com -s smtp.163.com -u "** test **" -m 'hello citrix' -xu test -xp test123
Aug 15 17:05:29 localhost sendEmail[11486]: Email was sent successfully!
出现上面的信息就说明发送成功了。

四、nginx与sendEmail集成
define command{
        command_name    notify-host-by-email
        command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/local/bin/sendEmail -f test@163.com -t $CONTACTEMAIL$ -s smtp.163.com -u "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" -m "$HOSTNAME$ is $HOSTSTATE$" -xu test -xp test123
        }
阅读(7103) | 评论(4) | 转发(0) |
给主人留下些什么吧!~~

tomer2015-08-26 09:55:33

carlgan:测试语句是pass 的

我直接替换了 commands.cfg 的 # \'notify-host-by-email\' command definition  这段,  并手工stop 和 start nagios, 但是没有收到邮件哦?

你解决了吗?

回复 | 举报

tomer2015-08-26 09:43:11

carlgan:测试语句是pass 的

我直接替换了 commands.cfg 的 # \'notify-host-by-email\' command definition  这段,  并手工stop 和 start nagios, 但是没有收到邮件哦?

我也是,你解决了吗

回复 | 举报

carlgan2015-07-17 09:44:56

测试语句是pass 的

我直接替换了 commands.cfg 的 # \'notify-host-by-email\' command definition  这段,  并手工stop 和 start nagios, 但是没有收到邮件哦?

carlgan2015-07-17 09:27:37

楼主 你的帖子 nagios使用 sendEmail 
第四点  是改commands.cfg 么?