方法一:利用sendmail 实现

首先安装软件 yum install -y sendmail* mailx

然后启动sendmail服务:
# service sendmail restart
然后发送测试邮件,验证sendmail的可用性:
# echo "Hello World" | mail abc@163.com

安装完成

nagios设置

默认nagios是支持调用sendmail发送邮件的所以这里只需要编辑/usr/local/nagios/etc/object下的contact.cfg文件,在email后添加管理员的邮箱即可。

define contact{
contact_name zhang1
use generic-contact
alias zhang1
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r,f,s
host_notification_options d,u,r,f,s
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
email zhang1@text.com ## 只需要修改这里即可

}


##第一个方法虽然配置简单,但是发送邮件到QQ邮箱或者139邮箱时 接受邮件的时间很长,发送到163邮箱就不会出现这个问题,这样对于使用QQ邮箱或者139邮箱的朋友 会延长发现故障的时间,所以可以采用第二种方法


方法二:利用msmtp 实现

首先安装软件 wegt http://jaist.dl.sourceforge.net/project/msmtp/msmtp/1.4.32/msmtp-1.4.32.tar.bz2

tar jxvf msmtp-1.4.32.tar.bz2

cd msmtp-1.4.32

./configure –prefix=/usr/local/msmtp
make
make install

安装完毕

配置msmtp账号

cd /usr/local/msmtp
mkdir etc #手动创建目录
vi /usr/local/msmtp/etc/msmtprc #手动创建文件 并复制一下内容

# Set default values for all following accounts.defaultslogfile /usr/local/msmtp/msmtp.log# The SMTP server of the provider.account test# SMTP邮件服务器地址host smtp.126.com #可以设置其他邮箱 如163# 发送的邮件Emailfrom 11111@126.com #这里输入邮箱地址 auth login# 邮件服务器登录账号user 11111@126.com #与上面的地址相同# 邮件服务器登陆密码password 123456 #密码 明文的# Set a default account

account default : test

到此安装完成 想发送邮件需要安装 mutt来调用 msmtp

安装配置mutt

yum install mutt

编辑mutt配置文件
vi /etc/Muttrc ,编辑mutt的总设置,修改以下几行

?12345setfrom="11111@126.com"setsendmail="/usr/local/msmtp/bin/msmtp"setuse_from=yessetrealname="发件人" #这里设置的是发送的发件人名称 会在收到的邮件显示 可自定义seteditor="vi"

###发件地址必须与msmtp设置的账号相同,否则可能会出错。

3、测试一下mutt是否有效

命令语法 : echo “邮件内容” | mutt -s “邮件主题” 测试邮件地址
例: echo “test” |mutt -s “test” abcd@gmail.com

下面就可以使用mutt进行邮件收发了

nagios设置 ##修改红色处

nagios--- command.cfg

define command{

command_name notify-by-sms

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/bin/mutt -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$

}


##这种方法虽然配置起来稍微负载 但是在发送邮件的速度上 是比sendmail要快的 ,目前网易的邮箱已经不支持 收到邮件短信提醒的功能了 但是139邮箱支持,所以我推荐使用第二种方法!!

介此 两种方法介绍完毕