Nginx环境下构建Nagios监控平台
Nagios依赖PHP环境和perl环境。由于Nginx不支持Perl的CGI,这里就需要先来搭建Perl环境。
一、给Nginx加上对Perl的CGI支持
让Nginx支持Perl的CGI方法有好几种,基本原理都是通过Perl的FCGI模块实现。具体哪一个更好,目前没时间验证。下面的方法就是其中一种:
1、安装FCGI模块
1 2 3 4 5 6 7 | wget http://search.cpan.org/CPAN/authors/id/F/FL/FLORA/FCGI-0.73.tar.gz tar xvzf FCGI-0.73.tar.gz cd FCGI-0.73 perl Makefile.PL make make install cd .. |
2、安装FCGI-ProcManager模块
1 2 3 4 5 6 7 | wget http://search.cpan.org/CPAN/authors/id/G/GB/GBJK/FCGI-ProcManager-0.19.tar.gz tar xvzf FCGI-ProcManager-0.19.tar.gz cd FCGI-ProcManager-0.19 perl Makefile.PL make make install cd .. |
3、安装IO和IO::ALL模块
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | wget http://search.cpan.org/CPAN/authors/id/G/GB/GBARR/IO-1.25.tar.gz tar zxvf IO-1.25.tar.gz cd IO-1.25 perl Makefile.PL make make install cd .. wget http://search.cpan.org/CPAN/authors/id/I/IN/INGY/IO-All-0.41.tar.gz tar zxvf IO-All-0.41.tar.gz cd IO-All-0.41 perl Makefile.PL make make install cd .. |
4、下载Perl脚本
这个脚本的目的就是产生一个PERL的FastCGI接口,让Nginx可以以CGI方式处理Perl。
下载Perl脚本
1 2 3 | wget http://www.mike.org.cn/wp-content/uploads/2011/07/perl-fcgi.zip unzip perl-fcgi.zip cp perl-fcgi.pl /usr/local/webserver/nginx/ |
注:建议把这个脚本放在Nginx安装目录。
修改脚本权限
1 | chmod 755 /usr/local/webserver/nginx/perl-fcgi.pl |
5、建立一个CGI启动/停止脚本
这个SHELL脚本只是为了方便管理上面的Perl脚本。脚本中的www为nginx的运行用户,请据自己的实际情况调整。
注意事项:不能用root用户执行(会提示). 要用与Nginx相同身份的用户执行。否则可能会在Nginx Log中提示 Permision Denied。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | vi /usr/local/webserver/nginx/start_perl_cgi.sh #!/bin/bash #set -x dir=/usr/local/webserver/nginx/ stop () { #pkill -f $dir/perl-fcgi.pl kill $(cat $dir/logs/perl-fcgi.pid) rm $dir/logs/perl-fcgi.pid 2>/dev/null rm $dir/logs/perl-fcgi.sock 2>/dev/null echo "stop perl-fcgi done" } start () { rm $dir/now_start_perl_fcgi.sh 2>/dev/null chown www.www $dir/logs echo "$dir/perl-fcgi.pl -l $dir/logs/perl-fcgi.log -pid $dir/logs/perl-fcgi.pid -S $dir/logs/perl-fcgi.sock" >>$dir/now_start_perl_fcgi.sh chown www.www $dir/now_start_perl_fcgi.sh chmod u+x $dir/now_start_perl_fcgi.sh sudo -u www $dir/now_start_perl_fcgi.sh echo "start perl-fcgi done" } case $1 in stop) stop ;; start) start ;; restart) stop start ;; esac |
修改SHELL脚本权限
1 | chmod 755 /usr/local/webserver/nginx/start_perl_cgi.sh |
启动脚本
1 | /usr/local/webserver/nginx/start_perl_cgi.sh start |
正常情况下在/usr/local/webserver/nginx/logs下生成perl-fcgi.sock这个文件,如果没有生成,请检查下上面的步聚。
二、安装Nagios
A、安装前准备
安装的机器上必须有一个WEB服务,本文是在Nginx环境上安装的。
下载nagios主程序和相关插件程序包
1 2 3 | wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.3.tar.gz wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz |
安装GD库(Nagios中的statusmap和trends模块必须)
1 | apt-get install libgd2-noxpm libgd2-noxpm-dev |
B、Nagios监控端安装
1、创建Nagios用户及组
建立Nagios账号
1 | /usr/sbin/useradd -m -s /sbin/nologin nagios |
2、创建一个名为nagcmd的用户组,用于从web接口执行外部命令。将Nagios用户和Nginx用户加入组中。
1 2 3 | groupadd nagcmd usermod -a -G nagcmd nagios usermod -a -G nagcmd www |
注:上面的www是Nginx用户所属的组,如有不同请自行调整。