nginx+nagios搭建 两篇文档

安装 php-fpm 妹的。

http://www.open-open.com/lib/view/1328680567780

http://blog.linuxeye.com/312.html

一、


http://www.open-open.com/lib/view/1328680567780

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。

?
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用户所属的组,如有不同请自行调整。

3、编译安装Nagios

?
1
2
3
4
5
6
7
8
9
10
11
12
tar zxvf nagios-3.2.3. tar .gz
cd nagios-3.2.3
. /configure --with- command -group=nagcmd
make
make all
make install
make install -init
make install -config
make install -commandmode
#这里是在Nginx下运行Nagios,这一步就不用做了
make install -webconf
cd ..

注:

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这五个目录,如果存在则可以表明程序被正确的安装到系统了。

?
1
2
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界面登陆帐号及密码

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

如果你没有htpasswd(这个工具由Apache安装包所提供),可在线生成需要加密数据。 

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

b)、创建加密验证文件

?
1
2
3
4
vi /usr/local/nagios/etc/nagiospasswd
  
#加入生成的加密数据,冒号前是用户名,后面是加密后的密码
mike:25JB.R7mXY96o

修改Nagios配置文件,给新增的用户增加访问权限
?
1
2
3
4
5
6
7
8
9
10
vi /usr/local/nagios/etc/cgi .cfg
  
#以下几项中分别加入新增的用户,多用户用逗号分隔。
authorized_for_system_information=nagiosadmin,mike
authorized_for_configuration_information=nagiosadmin,mike
authorized_for_system_commands=nagiosadmin,mike
authorized_for_all_services=nagiosadmin,mike
authorized_for_all_hosts=nagiosadmin,mike
authorized_for_all_service_commands=nagiosadmin,mike
authorized_for_all_host_commands=nagiosadmin,mike

2)、修改NGINX配置,以支持WEB方式访问Nagios

方法一:以http://ip方式访问

NGINX配置片断如下

?
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
42
43
server
   {
     listen       80;
     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   60;
     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主目录下创建一个软链

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

NGINX配置片断如下
?
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
server
   {
     listen       80;
     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   60;
     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的参数定义。
?
1
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插件是必须安装的。

?
1
2
3
4
5
tar zxvf nagios-plugins-1.4.15. tar .gz
cd nagios-plugins-1.4.15
. /configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install

验证Nagios插件是否正确安装
?
1
ls /usr/local//nagios/libexec

显示安装的插件文件,即所有的插件都安装在libexec这个目录下。

7、启动服务

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

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

如果没有报错,可以启动Nagios服务
?
1
/usr/local/nagios/bin/nagios -d  /usr/local/nagios/etc/nagios .cfg

查看Nagios运行状态
?
1
/usr/local/nagios/bin/nagiostats

8、安装NRPE

由于Nagios只能监测自己所在的主机的一些本地情况,例如,cpu负载、内存使用、硬盘使用等等。如果想要监测被监控的服务器上的这些本地情况,就要用到NRPE。NRPE(Nagios Remote Plugin Executor)是Nagios的一个扩展,它被用于被监控的服务器上,向Nagios监控平台提供该服务器的一些本地的情况。NRPE可以称为Nagios的Linux客户端。

由于NRPE是通过SSL方式在监控和被监控主机上进行数据传输的,所以必须先安装ssl相关的软件包。

?
1
apt-get  install libssl-dev libssl0.9.8

编译安装NRPE
?
1
2
3
4
5
6
7
tar zxvf nrpe-2.12. tar .gz
cd nrpe-2.12
. /configure
make all
make install -plugin
make install -daemon
make install -daemon-config

注:监控主机上只需要make install-plugin这一步就可以了。监控机上只要有一个check_nrpe插件用于连接被监控端nrpe的daemon就行了。

启动NRPE

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

验证NRPE是否正确安装
?
1
/usr/local/nagios/libexec/check_nrpe -H localhost

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

C、Nagios被控端安装配置

1、创建Nagios用户及组

建立Nagios账号

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

2、编译并安装Nagios插件
?
1
2
3
4
5
6
tar zxvf nagios-plugins-1.4.15. tar .gz
cd nagios-plugins-1.4.15
. /configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install
cd ..

验证程序是否被正确安装:
?
1
ls /usr/local/nagios/libexec

显示安装的插件文件,即所有的插件都安装在libexec这个目录下。

3、安装NRPE

?
1
2
3
4
5
6
7
8
tar zxvf nrpe-2.12. tar .gz
cd nrpe-2.12
. /configure
make all
make install -plugin
make install -daemon
make install -daemon-config
cd ..

4、启动NRPE
?
1
/usr/local/nagios/bin/nrpe -c  /usr/local/nagios/etc/nrpe .cfg -d

验证NRPE是否正确安装
?
1
/usr/local/nagios/libexec/check_nrpe -H localhost

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

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

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

?
1
2
3
4
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


二、


http://blog.linuxeye.com/312.html

本文基于《LNMP最新源码安装脚本》,Nagios依赖PHP环境和perl环境,由于Nginx不支持Perl的CGI,需先来搭建Perl环境,Nagios原理介绍略。
1、下载最新稳定源码包和Perl脚本

mkdir nagios-cacti
cd nagios-cacti
wget http://www.cpan.org/modules/by-module/FCGI/FCGI-0.74.tar.gz
wget http://www.cpan.org/authors/id/B/BO/BOBTFISH/FCGI-ProcManager-0.24.tar.gz
wget http://blog.linuxeye.com/wp-content/uploads/2013/04/perl-fcgi.pl
wget http://jaist.dl.sourceforge.net/project/nagios/nagios-3.x/nagios-3.5.0/nagios-3.5.0.tar.gz
wget http://nchc.dl.sourceforge.net/project/nagiosplug/nagiosplug/1.4.16/nagios-plugins-1.4.16.tar.gz
wget http://nchc.dl.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.14/nrpe-2.14.tar.gz

2、Nginx对Perl的CGI支持
Nginx支持Perl的CGI方法有好几种,基本原理都是通过Perl的FCGI模块实现,下面的方法就是其中一种:
安装FCGI模块

tar xzf FCGI-0.74.tar.gz
cd FCGI-0.74
perl Makefile.PL
make && make install
cd ../

安装FCGI-ProcManager模块

tar xzf FCGI-ProcManager-0.24.tar.gz
cd FCGI-ProcManager-0.24
perl Makefile.PL
make && make install
cd ../

Perl脚本

cp perl-fcgi.pl /usr/local/nginx
chmod +x /usr/local/nginx/perl-fcgi.pl
/usr/local/nginx/perl-fcgi.pl > /usr/local/nginx/logs/perl-fcgi.log 2>&1 & #启动Perl
chmod 777 /usr/local/nginx/logs/perl-fcgi.sock #Nginx Log中提示Permision Denied方法
cd ../

3、Nagios安装(服务端)

useradd -s /sbin/nologin nagios
groupadd nagcmd
usermod -a -G nagcmd nagios
usermod -a -G nagcmd www
tar xzf nagios-3.5.0.tar.gz
cd nagios
yum -y install gd-devel
./configure --prefix=/usr/local/nagios --with-command-group=nagcmd
make all
make install #用于安装主要的程序、CGI及HTML文件
make install-init #用于生成init启动脚本
make install-config #用于安装示例配置文件
make install-commandmode #用于设置相应的目录权限
chkconfig --add nagios
chkconfig nagios on
cd ../

Nagios主程序只是提供一个运行框架,其具体监控是靠运行在其下的插件完成的,Nagios插件必须安装

tar xzf nagios-plugins-1.4.16.tar.gz
cd nagios-plugins-1.4.16
./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios
make && make install
cd ../

由于Nagios只能监测自己所在的主机的一些本地情况,例如,cpu负载、内存使用、硬盘使用等等。如果想要监测被监控的服务器上的这些本地情况,就要
用到NRPE。NRPE(Nagios Remote Plugin
Executor)是Nagios的一个扩展,它被用于被监控的服务器上,向Nagios监控平台提供该服务器的一些本地的情况。NRPE可以称为
Nagios的Linux客户端。

tar xzf nrpe-2.14.tar.gz
cd nrpe-2.14
./configure
make && make install
cp sample-config/nrpe.cfg /usr/local/nagios/etc/
chown nagios.nagios /usr/local/nagios/etc/nrpe.cfg
cd ../

4、Nginx配置(服务端)

ln -s /usr/local/nagios/share /data/admin/nagios

以http://www.linuxeye.com/nagios,需要建立软链接,服务nginx.conf配置文件如下:

################http://www.linuxeye.com/nagios#########################
        server {
        listen  80;
        server_name    _;
        access_log     /dev/null;
        root /data/admin;
        index index.php;
        location ~ .*\.(php|php5)?$  {
                fastcgi_pass  127.0.0.1:9000;
                fastcgi_index index.php;
                include fastcgi.conf;
                }
        location ~ .*\.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$ {
                expires      30d;
                }
        location ~ .*\.(js|css)?$ {
                expires      1h;
                }
        location /status {
                stub_status on;
                }
        location ~ .*\.(cgi|pl)?$ {
                auth_basic "Nagios Access";
                auth_basic_user_file /usr/local/nagios/etc/htpasswd.users;
                gzip off;
                root   /usr/local/nagios/sbin;
                rewrite ^/nagios/cgi-bin/(.*)\.cgi /$1.cgi break;
                fastcgi_pass  unix:/usr/local/nginx/logs/perl-fcgi.sock;
                fastcgi_param SCRIPT_FILENAME /usr/local/nagios/sbin$fastcgi_script_name;
                fastcgi_index index.cgi;
                fastcgi_param  REMOTE_USER        $remote_user;
                fastcgi_param HTTP_ACCEPT_LANGUAGE en_US;
                include fastcgi_params;
                fastcgi_read_timeout   60;
                }
        }

以http://nagios.linuxeye.com服务nginx.conf配置文件如下:

################http://nagios.linuxeye.com##############################
        server {
        listen  80;
        server_name     nagios.linuxeye.com;
        access_log      logs/nagios_access.log combined;
        auth_basic "Nagios Access";
        auth_basic_user_file /usr/local/nagios/etc/htpasswd.users;
        location / {
        root   /usr/local/nagios/share;
        index  index.html index.htm index.php;
                }
        location ~ .*\.(php|php5)?$ {
        root /usr/local/nagios/share;
        fastcgi_pass  127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi.conf;
                }
        location /nagios {
            alias /usr/local/nagios/share;
                }
        location /cgi-bin/images {
            alias /usr/local/nagios/share/images;
                }
        location /cgi-bin/stylesheets {
            alias /usr/local/nagios/share/stylesheets;
                }
        location /cgi-bin {
            alias /usr/local/nagios/sbin;
                }
        location ~ .*\.(cgi|pl)?$ {
        gzip off;
        root   /usr/local/nagios/sbin;
        rewrite ^/nagios/cgi-bin/(.*)\.cgi /$1.cgi break;
        fastcgi_pass  unix:/usr/local/nginx/logs/nginx-fcgi.sock;
        fastcgi_param SCRIPT_FILENAME /usr/local/nagios/sbin$fastcgi_script_name;
        fastcgi_index index.cgi;
        fastcgi_param  REMOTE_USER        $remote_user;
        fastcgi_param HTTP_ACCEPT_LANGUAGE en_US;
        include fastcgi_params;
        fastcgi_read_timeout   60;
                }
        }

#创建web验证用户
在有安装apache服务器用htpasswd或者在线生成

/usr/local/apache/bin/htpasswd -nb admin 123456 > /usr/local/nagios/etc/htpasswd.users
chown nagios.nagios /usr/local/nagios/etc/htpasswd.users

5、服务端配置文件修改
NRPE

sed -i 's@allowed_hosts=.*$@allowed_hosts=127.0.0.1,192.168.1.114@g' /usr/local/nagios/etc/nrpe.cfg
sed -i 's@command[check_hda1]@#command[check_hda1]@g' /usr/local/nagios/etc/nrpe.cfg
sed -i '223a command[check_df]=/usr/local/nagios/libexec/check_disk -w 20 -c 10' /usr/local/nagios/etc/nrpe.cfg
sed -i '224a command[check_cpu_procs]=/usr/local/nagios/libexec/check_procs -w 50 -c 90 --metric=CPU' /usr/local/nagios/etc/nrpe.cfg
sed -i '225a command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 5%' /usr/local/nagios/etc/nrpe.cfg
echo '/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d' >> /etc/rc.local
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d #启动nrpe

#修改配置文件归类

sed -i 's@cfg_file=/usr/local/nagios/etc/objects/templates.cfg@#cfg_file=/usr/local/nagios/etc/objects/templates.cfg@g' /usr/local/nagios/etc/nagios.cfg
sed -i 's@cfg_file=/usr/local/nagios/etc/objects/localhost.cfg@#cfg_file=/usr/local/nagios/etc/objects/localhost.cfg@g' /usr/local/nagios/etc/nagios.cfg
sed -i '32a cfg_file=/usr/local/nagios/etc/objects/hosts.cfg' /usr/local/nagios/etc/nagios.cfg
sed -i '33a cfg_file=/usr/local/nagios/etc/objects/hostgroups.cfg' /usr/local/nagios/etc/nagios.cfg
sed -i '34a cfg_file=/usr/local/nagios/etc/objects/contactsgroups.cfg' /usr/local/nagios/etc/nagios.cfg
sed -i '35a cfg_file=/usr/local/nagios/etc/objects/services.cfg' /usr/local/nagios/etc/nagios.cfg

#命令检查时间间隔

sed -i 's@^command_check_interval.*$@command_check_interval=10s@g' /usr/local/nagios/etc/nagios.cfg

#指定用户admin可以通过浏览器操纵nagios服务的关闭、重启等各种操作

sed -i 's@authorized_for_system_information=.*$@authorized_for_system_information=admin@g' /usr/local/nagios/etc/cgi.cfg
sed -i 's@authorized_for_configuration_information=.*$@authorized_for_configuration_information=admin@g' /usr/local/nagios/etc/cgi.cfg
sed -i 's@authorized_for_system_commands=.*$@authorized_for_system_commands=admin@g' /usr/local/nagios/etc/cgi.cfg
sed -i 's@authorized_for_all_services=.*$@authorized_for_all_services=admin@g' /usr/local/nagios/etc/cgi.cfg
sed -i 's@authorized_for_all_hosts=.*$@authorized_for_all_hosts=admin@g' /usr/local/nagios/etc/cgi.cfg
sed -i 's@authorized_for_all_service_commands=.*$@authorized_for_all_service_commands=admin@g' /usr/local/nagios/etc/cgi.cfg
sed -i 's@authorized_for_all_host_commands=.*$@authorized_for_all_host_commands=admin@g' /usr/local/nagios/etc/cgi.cfg

#hosts.cfg

cat > /usr/local/nagios/etc/objects/hosts.cfg << EOF
define host {
host_name                 linux4
alias                     nagios-server
address                   192.168.1.114
contact_groups            sagroup
check_command             check-host-alive
max_check_attempts          10
notification_interval       5
notification_period         24x7
notification_options        d,u,r
}
define host {
host_name                 linux3
alias                     192.168.1.113
address                   192.168.1.113
contact_groups            sagroup
check_command             check-host-alive
max_check_attempts          10
notification_interval       5
notification_period         24x7
notification_options        d,u,r
}
EOF
chown nagios.nagios /usr/local/nagios/etc/objects/hosts.cfg
chmod 664 /usr/local/nagios/etc/objects/hosts.cfg

#hostgroups.cfg

cat > /usr/local/nagios/etc/objects/hostgroups.cfg << EOF
define hostgroup {
hostgroup_name  sa-servers
alias           sa servers
members         linux4,linux3
}
EOF
chown nagios.nagios /usr/local/nagios/etc/objects/hostgroups.cfg
chmod 664 /usr/local/nagios/etc/objects/hostgroups.cfg

#contacts.cfg

cp /usr/local/nagios/etc/objects/contacts.cfg /usr/local/nagios/etc/objects/contacts.cfg.bk
cat > /usr/local/nagios/etc/objects/contacts.cfg << EOF
define contact {
contact_name    admin
alias           system administrator
service_notification_period    24x7
host_notification_period       24x7
service_notification_options   w,u,c,r
host_notification_options       d,u,r
host_notification_commands     notify-host-by-email
service_notification_commands  notify-service-by-email
email                          admin@linuxeye.com
}
EOF

#services.cfg

cat > /usr/local/nagios/etc/objects/services.cfg << EOF
define service {
host_name               linux4,linux3
service_description     check-host-alive
check_command           check-host-alive
check_period            24x7
max_check_attempts      4
normal_check_interval   3
retry_check_interval    2
contact_groups          sagroup
notification_interval   10
notification_period     24x7
notification_options    w,u,c,r
}
define service {
host_name               linux4,linux3
service_description     check_http
check_command           check_http
check_period            24x7
max_check_attempts      4
normal_check_interval   3
retry_check_interval    2
contact_groups          sagroup
notification_interval   10
notification_period     24x7
notification_options    w,u,c,r
}
define service{
host_name               linux4,linux3
service_description     check_ssh
check_command           check_ssh
max_check_attempts      4
normal_check_interval   3
retry_check_interval    2
check_period            24x7
notification_interval   10
notification_period     24x7
notification_options    w,u,c,r
contact_groups          sagroup
}
define service{
host_name               linux4,linux3
service_description     check-disk
check_command           check_nrpe!check_df
max_check_attempts      4
normal_check_interval   3
retry_check_interval    2
check_period            24x7
notification_interval   10
notification_period     24x7
notification_options    w,u,c,r
contact_groups          sagroup
}
define service{
host_name               linux4,linux3
service_description     check_cpu_procs
check_command           check_nrpe!check_cpu_procs
max_check_attempts      4
normal_check_interval   3
retry_check_interval    2
check_period            24x7
notification_interval   10
notification_period     24x7
notification_options    w,u,c,r
contact_groups          sagroup
}
define service{
host_name               linux4,linux3
service_description     check_load
check_command           check_nrpe!check_load
max_check_attempts      4
normal_check_interval   3
retry_check_interval    2
check_period            24x7
notification_interval   10
notification_period     24x7
notification_options    w,u,c,r
contact_groups          sagroup
}
define service{
host_name               linux4,linux3
service_description     check_users
check_command           check_nrpe!check_users
max_check_attempts      4
normal_check_interval   3
retry_check_interval    2
check_period            24x7
notification_interval   10
notification_period     24x7
notification_options    w,u,c,r
contact_groups          sagroup
}
define service{
host_name               linux4,linux3
service_description     check_swap
check_command           check_nrpe!check_swap
max_check_attempts      4
normal_check_interval   3
retry_check_interval    2
check_period            24x7
notification_interval   10
notification_period     24x7
notification_options    w,u,c,r
contact_groups          sagroup
}
define service{
host_name               linux4,linux3
service_description     check_zombie_procs
check_command           check_nrpe!check_zombie_procs
max_check_attempts      4
normal_check_interval   3
retry_check_interval    2
check_period            24x7
notification_interval   10
notification_period     24x7
notification_options    w,u,c,r
contact_groups          sagroup
}
EOF
 
chown nagios.nagios /usr/local/nagios/etc/objects/services.cfg
chmod 664 /usr/local/nagios/etc/objects/services.cfg

#commands.cfg

echo 'define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}' >> /usr/local/nagios/etc/objects/commands.cfg

#contactsgroups.cfg

cat > /usr/local/nagios/etc/objects/contactsgroups.cfg << EOF
define contactgroup {
contactgroup_name    sagroup
alias                system administrator group
members              admin
}
EOF
chown nagios.nagios /usr/local/nagios/etc/objects/contactsgroups.cfg
chmod 664 /usr/local/nagios/etc/objects/contactsgroups.cfg

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg #检查配置是否有错误
service nagios start

6、被监控端(客户端)

mkdir nagios
cd nagios
wget http://nchc.dl.sourceforge.net/project/nagiosplug/nagiosplug/1.4.16/nagios-plugins-1.4.16.tar.gz
wget http://nchc.dl.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.14/nrpe-2.14.tar.gz
useradd -M -s /sbin/nologin nagios
tar xzf nagios-plugins-1.4.16.tar.gz
cd nagios-plugins-1.4.16
./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios
make && make install
cd ../
tar xzf nrpe-2.14.tar.gz
cd nrpe-2.14
./configure
make && make install
mkdir /usr/local/nagios/etc
cp sample-config/nrpe.cfg  /usr/local/nagios/etc/
cd ../
sed -i 's@allowed_hosts=.*$@allowed_hosts=192.168.1.114@g' /usr/local/nagios/etc/nrpe.cfg
sed -i 's@command[check_hda1]=@#command[check_hda1]=@' /usr/local/nagios/etc/nrpe.cfg
sed -i '224a command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20 -c 10' /usr/local/nagios/etc/nrpe.cfg
sed -i '225a command[check_cpu_procs]=/usr/local/nagios/libexec/check_procs -w 50 -c 90 --metric=CPU' /usr/local/nagios/etc/nrpe.cfg
sed -i '226a command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 5%' /usr/local/nagios/etc/nrpe.cfg
echo '/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d' >> /etc/rc.local
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
iptables -A INPUT -p tcp -s 192.168.1.114 -m state --state NEW -m tcp --dport 5666 -j ACCEPT



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值