利用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 [email protected] -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利用邮件自动报警