Nginx环境下构建Nagios网络监控平台

  • 时间:
  • 浏览:0
  • 来源:大发pk10_pk10平台官方网站_大发pk10平台官方网站

  Nagios依赖PHP环境和perl环境。将会Nginx不支持Perl的CGI,这里就不到先来搭建Perl环境。

一、给Nginx上加对Perl的CGI支持

  让Nginx支持Perl的CGI最好的办法有好几种,基本原理都有通过Perl的FCGI模块实现。具体哪另另一个 多更好,目前没时间验证。下面的最好的办法如果其中四种 生活:

1、安装FCGI模块

wget http://search.cpan.org/CPAN/authors/id/F/FL/FLORA/FCGI-0.73.tar.gztar xvzf FCGI-0.73.tar.gz cd FCGI-0.73 perl Makefile.PLmake make install cd ..

2、安装FCGI-ProcManager模块

wget http://search.cpan.org/CPAN/authors/id/G/GB/GBJK/FCGI-ProcManager-0.19.tar.gztar xvzf FCGI-ProcManager-0.19.tar.gz cd FCGI-ProcManager-0.19 perl Makefile.PL make make install cd ..

3、安装IO和IO::ALL模块

wget http://search.cpan.org/CPAN/authors/id/G/GB/GBARR/IO-1.25.tar.gztar zxvf IO-1.25.tar.gzcd IO-1.25 perl Makefile.PLmake make install cd ..

wget http://search.cpan.org/CPAN/authors/id/I/IN/INGY/IO-All-0.41.tar.gztar zxvf IO-All-0.41.tar.gzcd IO-All-0.41 perl Makefile.PLmake make install cd ..

4、下载Perl脚本

  四种 生活脚本的目的如果产生另另一个 多PERL的FastCGI接口,让Nginx还不到以CGI最好的办法解决Perl。下载Perl脚本

wget http://www.mike.org.cn/wp-content/uploads/2011/07/perl-fcgi.zipunzip perl-fcgi.zipcp perl-fcgi.pl /usr/local/webserver/nginx/

注:建议把四种 生活脚本插进Nginx安装目录。

  修改脚本权限

chmod 755 /usr/local/webserver/nginx/perl-fcgi.pl

5、建立另另一个 多CGI启动/停止脚本

  四种 生活SHELL脚本如果为了方便管理上面的Perl脚本。脚本中的www为nginx的运行用户,请据被委托人的实际具体情况调整。

  注意事项:不到用root用户执行(会提示). 要用与Nginx相同身份的用户执行。如果 将会会在Nginx Log中提示 Permision Denied。

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/nullrm $dir/logs/perl-fcgi.sock 2>/dev/nullecho "stop perl-fcgi done" }  

start () { rm $dir/now_start_perl_fcgi.sh 2>/dev/null

 chown www.www $dir/logsecho "$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.shchmod u+x $dir/now_start_perl_fcgi.sh

 sudo -u www $dir/now_start_perl_fcgi.shecho "start perl-fcgi done" }  case $1 in stop) stop;; start) start;; restart) stop

start;; esac

  修改SHELL脚本权限

chmod 755 /usr/local/webserver/nginx/start_perl_cgi.sh

  启动脚本

/usr/local/webserver/nginx/start_perl_cgi.sh start

  正常具体情况下在/usr/local/webserver/nginx/logs下生成perl-fcgi.sock四种 生活文件,将会没有生成,请检查下上面的步聚。

二、安装Nagios

A、安装前准备

  安装的机器上不到有另另一个 多WEB服务,本文是在Nginx环境上安装的。

  下载nagios主程序运行和相关插件程序运行包

wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.3.tar.gzwget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gzwget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz

  安装GD库(Nagios中的statusmap和trends模块不到)

apt-get install libgd2-noxpm libgd2-noxpm-dev

B、Nagios监控端安装

1、创建Nagios用户及组

  建立Nagios账号

/usr/sbin/useradd -m -s /sbin/nologin nagios

2、创建另另一个 多名为nagcmd的用户组,用于从web接口执行内控 命令。将Nagios用户和Nginx用户加入组中。

groupadd nagcmd

usermod -a -G nagcmd nagios

usermod -a -G nagcmd www

注:上面的www是Nginx用户所属的组,如有不同请自行调整。

3、编译安装Nagios

tar zxvf nagios-3.2.3.tar.gzcd nagios-3.2.3

./configure --with-command-group=nagcmdmake make allmake install make install-initmake install-configmake install-commandmode#这里是在Nginx下运行Nagios,四种 生活步就不必做了 make install-webconfcd ..

注:make install 用于安装主要的程序运行、CGI及HTML文件

make install-init 用于生成init启动脚本

make install-config 用于安装示例配置文件

make install-commandmode 用于设置相应的目录权限

make install-webconf 用于安装Apache配置文件

4、验证程序运行是否是被正确安装

  切换目录到安装路径,这里是/usr/local/nagios,看是否是处于etc、bin、 sbin、 share、 var这兩个目录,将会处于则还不到表明程序运行被正确的安装进去系统了。

ls  /usr/local/nagios/ bin/     etc/     sbin/    share/   var/

注;bin–Nagios执行程序运行所在目录,其中的nagios文件即为主程序运行。

etc–Nagios配置文件位置

sbin–Nagios cgi文件所在目录,也如果执行内控 命令所需文件所在的目录

Share–Nagios网页文件所在的目录

var–Nagios日志文件、spid 等文件所在的目录

var/archives–日志归档目录

var/rw–用来存放内控 命令文件

5、配置NGINX

1)、配置Nagios Web界面登陆帐号及密码

htpasswd -c /usr/local/nagios/etc/nagiospasswd mike

  将会你没有htpasswd(四种 生活工具由Apache安装包所提供),可在线生成不到加密数据。

  a)、访问http://www.4webhelp.net/us/password.php生成不到加密数据

  b)、创建加密验证文件

vi /usr/local/nagios/etc/nagiospasswd

 #加入生成的加密数据,冒号前是用户名,上面是加密后的密码 mike:25JB.R7mXY96o

  修改Nagios配置文件,给新增的用户增加访问权限

vi /usr/local/nagios/etc/cgi.cfg

 #以下几项中分别加入新增的用户,多用户用逗号分隔。 authorized_for_system_information=nagiosadmin,mikeauthorized_for_configuration_information=nagiosadmin,mikeauthorized_for_system_commands=nagiosadmin,mikeauthorized_for_all_services=nagiosadmin,mikeauthorized_for_all_hosts=nagiosadmin,mikeauthorized_for_all_service_commands=nagiosadmin,mikeauthorized_for_all_host_commands=nagiosadmin,mike

2)、修改NGINX配置,以支持WEB最好的办法访问Nagios

最好的办法一:以http://ip最好的办法访问

NGINX配置片断如下

server

{ listen 400;

server_name 192.168.1.108;

index index.html index.htm index.php;

root /usr/local/nagios/share;

auth_basic "Nagios Access";

auth_basic_user_file /usr/local/nagios/etc/nagiospasswd;

location ~ .*\.(php|php5)?$

{

#fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

include fcgi.conf;

}  

location ~ .*\.(cgi|pl)?$

{ gzip off;

root /usr/local/nagios/sbin;

rewrite ^/nagios/cgi-bin/(.*)\.cgi /$1.cgi break;

fastcgi_pass unix:/usr/local/webserver/nginx/logs/perl-fcgi.sock;

fastcgi_param SCRIPT_FILENAME /usr/local/nagios/sbin$fastcgi_script_name;

fastcgi_index index.cgi;

fastcgi_read_timeout 400;

fastcgi_param REMOTE_USER $remote_user;

include fcgi.conf;

auth_basic "Nagios Access";

auth_basic_user_file /usr/local/nagios/etc/nagiospasswd;

}  

location /nagios

{  alias /usr/local/nagios/share;

 auth_basic "Nagios Access";

 auth_basic_user_file /usr/local/nagios/etc/nagiospasswd;

}  

log_format wwwlogs '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_forwarded_for';

access_log /data1/logs/access_www.log wwwlogs;

}

最好的办法二:以http://ip/nagios最好的办法访问

  在WEB主目录下创建另另一个 多软链

ln -s  /usr/local/nagios/share/  /data0/htdocs/www/nagios

  NGINX配置片断如下

server

{ listen 400;

server_name 192.168.1.108;

index index.html index.htm index.php;

root /data0/htdocs/www;

auth_basic "Nagios Access";

auth_basic_user_file /usr/local/nagios/etc/nagiospasswd;

location ~ .*\.(php|php5)?$

{

#fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

include fcgi.conf;

}  

location ~ .*\.(cgi|pl)?$

{ gzip off;

root /usr/local/nagios/sbin;

rewrite ^/nagios/cgi-bin/(.*)\.cgi /$1.cgi break;

fastcgi_pass unix:/usr/local/webserver/nginx/logs/perl-fcgi.sock;

fastcgi_param SCRIPT_FILENAME /usr/local/nagios/sbin$fastcgi_script_name;

fastcgi_index index.cgi;

fastcgi_read_timeout 400;

fastcgi_param REMOTE_USER $remote_user;

include fcgi.conf;

auth_basic "Nagios Access";

auth_basic_user_file /usr/local/nagios/etc/nagiospasswd;

}  

log_format wwwlogs '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_forwarded_for';

access_log /data1/logs/access_www.log wwwlogs;

}
注:将会你的fastcgi的配置文件中没有配置REMOTE_USER参数,一定要在nginx.conf中上加下面四种 生活fastcgi的参数定义。
fastcgi_param  REMOTE_USER        $remote_user;

  将会没四种 生活生活fastcgi的参数定义,Nagios就不到正确验证你的登陆信息。网上大多数文章解决Nginx下Nagios登陆验证失败的最好的办法都有在Nagios的cgi.cfg配置文件(nagios/etc/cgi.cfg)中关掉验证(use_authentication=0)或设置另另一个 多缺省的登陆用户(default_user_name=test),你你这俩种生活最好的办法都有不安全的。

6、编译并安装Nagios插件

  将会Nagios主程序运行如果提供另另一个 多运行框架,其具体监控是靠运行在其下的插件完成的,统统Nagios插件是不到安装的。

tar zxvf nagios-plugins-1.4.15.tar.gzcd nagios-plugins-1.4.15

./configure --with-nagios-user=nagios --with-nagios-group=nagiosmake make install

  验证Nagios插件是否是正确安装

ls /usr/local//nagios/libexec

  显示安装的插件文件,即所有的插件都安装进去libexec四种 生活目录下。

7、启动服务

  启动前先检查下配置文件是否是正确

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

  将会没有报错,还不到启动Nagios服务

/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg

查看Nagios运行具体情况

/usr/local/nagios/bin/nagiostats

8、安装NRPE

将会Nagios不到监测被委托人所在的主机的如果 本地具体情况,同类,cpu负载、内存使用、硬盘使用等等。将会愿意监测被监控的服务器上的哪些地方地方本地具体情况,就要用到NRPE。NRPE(Nagios Remote Plugin Executor)是Nagios的另另一个 多扩展,它被用于被监控的服务器上,向Nagios监控平台提供该服务器的如果 本地的具体情况。NRPE还不到称为 Nagios的Linux客户端。

将会NRPE是通过SSL最好的办法在监控和被监控主机上进行数据传输的,统统不到先安装ssl相关的软件包。

apt-get install libssl-dev libssl0.9.8

编译安装NRPE

tar zxvf nrpe-2.12.tar.gzcd nrpe-2.12 ./configuremake allmake install-pluginmake install-daemonmake install-daemon-config

注:监控主机上只不到make install-plugin四种 生活步就还不到了。监控机上若果有另另一个 多check_nrpe插件用于连接被监控端nrpe的daemon就行了。

启动NRPE

/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

验证NRPE是否是正确安装

/usr/local/nagios/libexec/check_nrpe -H localhost

注:将会成功,会返回NRPE的版本号。

C、Nagios被控端安装配置

1、创建Nagios用户及组

建立Nagios账号

/usr/sbin/useradd -m -s /sbin/nologin nagios

2、编译并安装Nagios插件

tar zxvf nagios-plugins-1.4.15.tar.gzcd nagios-plugins-1.4.15

./configure --with-nagios-user=nagios --with-nagios-group=nagiosmake make install cd ..

验证程序运行是否是被正确安装:

ls /usr/local/nagios/libexec

显示安装的插件文件,即所有的插件都安装进去libexec四种 生活目录下。

3、安装NRPE

tar zxvf nrpe-2.12.tar.gzcd nrpe-2.12 ./configuremake allmake install-pluginmake install-daemonmake install-daemon-configcd ..

4、启动NRPE

/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

验证NRPE是否是正确安装

/usr/local/nagios/libexec/check_nrpe -H localhost

注:将会成功,会返回NRPE的版本号。

5、修改NRPE配置文件,让监控主机还不到访问被监控主机的NRPE。

缺省NRPE配置文件中只允许本机访问NRPE的Daemon

vi /usr/local/nagios/etc/nrpe.cfg

 #缺省为127.0.0.1,不到本机访问 allowed_hosts=192.168.1.108

6、重启nrpe的最好的办法

killall nrpe/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d