利用pnp4n_send_host_mail.pl和pnp4n_send_service_mail.pl插件实现nagios监控信息的图表化的邮件发送。

注意:此功能是在nagios服务正常安装,并安装了pnp4nagios插件的基础上实现的;因此要先安装好基本的nagios运行环境,这个可以参考本人相关的博文。


1.依赖包检测安装

#rpm -q perl perl-devel perl-libwww-perl perl-MIME-tools

#yum -y install perl perl-devel perl-libwww-perl perl-MIME-tools

Mail-Sendmail包可以从http://search.cpan.org/~mivkovic/Mail-Sendmail/进行下载,

并根据安装包中的README说明进行安装.

注意:这里的Mail-Sendmail不是系统自带的sendmail服务!!!

#wget http://www.cpan.org/authors/id/M/MI/MIVKOVIC/Mail-Sendmail-0.79_16.tar.gz

#tar xzvf Mail-Sendmail-0.79_16.tar.gz

#cd Mail-Sendmail-0.79_16

#perl Makefile.PL

#make

#make install

注意:如果下载的Mail-Sendmail版本和本文给出的版本不同时,请用vim打开安装包的Sendmail.pm

查找'auth'字段,看是否有邮件认证功能.本人发现有的版本中没有这个认证功能,那样就没法使用

用户名密码到SMTP服务上进行用户验证发邮件了。


2.安装图表邮件插件

插件可以到http://nagios.fm4dd.com/plugins中进行下载;

#wget http://nagios.fm4dd.com/howto/source/notification-pnp4n/pnp4n_send_service_mail.pl

#wget http://nagios.fm4dd.com/howto/source/notification-pnp4n/pnp4n_send_host_mail.pl


#cp pnp4n_send_service_mail.pl pnp4n_send_host_mail.pl nagios/libexec/

#chmod -R nagios.nagios nagios/libexec/


3.配置插件

3.1配置nagios.cfg

enable_environment_macros=1


3.2配置图表插件

可以根据网站中说明进行配置;这里简要说明一下配置内容:

以pnp4n_send_service_mail.pl插件为例

#vim pnp4n_send_service_mail.pl


#PNP4Nagios插件所在的服务器

my $test_host = "localhost"; 

#PNP4nagios插件(nagios)上监控的服务

my $test_service = "HTTP";

#通过nagios网页打开的pnp4nagios监控图的网页地址(到pnp4nagios就好不要太细)

my $pnp4nagios_url = "http://127.0.0.1/pnp4nagios"; 


#nagios网页设置了密码登录的话在这里给出登录信息

my $pnp4nagios_auth    = "true"; #nagios登录是否有认证;

my $server_port        = "nagios.frank4dd.com:80"; #nagios主页地址

my $auth_name          = "Nagios Access"; #认证名(在http的conf.d下的pnp4nagios.conf中有)

my $web_user           = "nagiosadmin"; #nagios用户名

my $web_pass           = "nagiospwd"; # $nagios密码


#SMTP服务器设置

my $o_smtphost         = "smtp.163.com";#SMTP服务器地址(可以用ip)

my $domain             = "\@f163.com";


#指定logo图片(不知道是干啥用)

my $logofile = "/usr/local/nagios/share/images/logos/nagios.gif";


#指定发送邮件的用户名密码(默认是注释的)

$mail{auth} = {user => "zhangsan", password => "123456", method => "LOGIN PLAIN", required =>1}


4.邮件测试

nagios/libexec/pnp4n_send_service_mail.pl -v -t -r lisi@qq.com -f graph -u -l en


5.nagios命令配置

#vim command.cfg

修改邮件发送命令

define command{

        command_name    notify-service-by-email

        command_line    /usr/local/nagios/libexec/pnp4n_send_service_mail.pl \

-p "BAIDU Corporation" \

-c "$CONTACTEMAIL$" \

-f graph -u -l en

}



注:命令是在一行上的,这里分成了多行.

接着修改nagios中定义的主机和服务的报警机制,实现nagios利用邮件自动报警