准备资源(在使用wget时有的资源失效了,因此可自行下载资源备用)php
连接:https://pan.baidu.com/s/1SZFn4X8HAq2nAqVsIWE2gA
提取码:hsqb css
准备工做
一、FCGI模块 安装
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
问题1:使用perl报错(Can't locate ExtUtils/Embed.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .).BEGIN failed--compilation aborted.)html
解决:yum install perl-ExtUtils-Embed -yios
二、安装FCGI-ProcManager模块
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
三、安装IO和IO::ALL模块
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 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
四、下载Perl脚本
目的就是产生一个PERL的FastCGI接口,让Nginx能够以CGI方式处理Perl。nginx
wget http://www.mike.org.cn/wp-content/uploads/2011/07/perl-fcgi.zip unzip perl-fcgi.zip cp perl-fcgi.pl /opt/nginx/ chmod 755 /opt/nginx/perl-fcgi.pl
问题1:无unzipweb
解决:yum install -y unzipvim
五、创建一个CGI启动/中止脚本
这个SHELL脚本只是为了方便管理上面的Perl脚本。脚本中的nginx为nginx的运行用户,请据本身的实际状况调整。安全
注意事项:不能用root用户执行(会提示). 要用与Nginx相同身份的用户执行。不然可能会在Nginx Log中提示 Permision Denied。bash
#!/bin/bash #set -x dir=/opt/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 nginx.nginx $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 nginx.nginx $dir/now_start_perl_fcgi.sh chmod u+x $dir/now_start_perl_fcgi.sh sudo -u nginx $dir/now_start_perl_fcgi.sh echo "start perl-fcgi done" } case $1 in stop) stop ;; start) start ;; restart) stop start ;; esac
chmod 755 /opt/nginx/start_perl_cgi.sh /opt/nginx/start_perl_cgi.sh start //启动脚本
注意:正常状况下在/opt/nginx/logs下生成perl-fcgi.sock这个文件,若是没有生成,请检查下上面的步聚。服务器
安装Nagios
安装前准备
安装的机器上必须有一个WEB服务,本文是在Nginx环境上安装的。
下载nagios主程序和相关插件程序包(资源失效的话用上面备用资源)
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模块必须)(yum 资源中没有这两个模块,若是在安装php时,可在那时加上gd库安装)
apt-get install libgd2-noxpm libgd2-noxpm-dev/yum install libgd2-noxpm libgd2-noxpm-dev
Nagios监控端安装
一、建立Nagios用户及组,创建Nagios帐号
/usr/sbin/useradd -m -s /sbin/nologin nagios
二、建立一个名为nagcmd的用户组,用于从web接口执行外部命令。将Nagios用户和Nginx用户加入组中。
groupadd nagcmd usermod -a -G nagcmd nagios usermod -a -G nagcmd nginx
注:上面的www是Nginx用户所属的组,若有不一样请自行调整。
三、编译安装Nagios
tar zxvf nagios-3.2.3.tar.gz cd nagios-3.2.3 ./configure --with-command-group=nagcmd --prefix=/opt/nagios make make all make install make install-init make install-config make install-commandmode #这里是在Nginx下运行Nagios,这一步就不用作了 make install-webconf
注:
make install 用于安装主要的程序、CGI及HTML文件
make install-init 用于生成init启动脚本
make install-config 用于安装示例配置文件
make install-commandmode 用于设置相应的目录权限
make install-webconf 用于安装Apache配置文件
四、验证程序是否被正确安装
切换目录到安装路径,这里是/usr/local/nagios,看是否存在etc、bin、 sbin、 share、 var这五个目录,若是存在则能够代表程序被正确的安装到系统了。
ls /opt/nagios/ bin/ etc/ sbin/ share/ var/
注:
bin–Nagios执行程序所在目录,其中的nagios文件即为主程序。
etc–Nagios配置文件位置
sbin–Nagios cgi文件所在目录,也就是执行外部命令所需文件所在的目录
Share–Nagios网页文件所在的目录
var–Nagios日志文件、spid 等文件所在的目录
var/archives–日志归档目录
var/rw–用来存放外部命令文件
五、配置NGINX
1)、配置Nagios Web界面登录账号及密码
htpasswd -c /usr/local/nagios/etc/nagiospasswd mike htpasswd(这个工具由Apache安装包所提供),可在线生成须要加密数据
nginx环境下
a)、访问http://www.4webhelp.net/us/password.php生成须要加密数据
b)、建立加密验证文件
vim /opt/nagios/etc/nagiospasswd #加入生成的加密数据,冒号前是用户名,后面是加密后的密码 nagios:25JB.R7mXY96o
c)、修改Nagios配置文件,给新增的用户增长访问权限
vim /opt/nagios/etc/cgi.cfg #如下几项中分别加入新增的用户,多用户用逗号分隔。 authorized_for_system_information=nagiosadmin,nagios authorized_for_configuration_information=nagiosadmin,nagios authorized_for_system_commands=nagiosadmin,nagios authorized_for_all_services=nagiosadmin,nagios authorized_for_all_hosts=nagiosadmin,nagios authorized_for_all_service_commands=nagiosadmin,nagios authorized_for_all_host_commands=nagiosadmin,nagios
2)、修改NGINX配置,以支持WEB方式访问Nagios
方法1:以http://ip/nagios方式访问
在WEB主目录下建立一个软链
ln -s /opt/nagios/share/ /opt/nginx/html/nagios
nginx.conf配置片段以下
server { listen 8080; server_name news.ci123.com; access_log /dev/null; root /opt/nginx/html; 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 /opt/nagios/etc/nagiospasswd;//密码文件 gzip off; root /opt/nagios/sbin; rewrite ^/nagios/cgi-bin/(.*)\.cgi /$1.cgi break; fastcgi_pass unix:/opt/nginx/logs/perl-fcgi.sock; fastcgi_param SCRIPT_FILENAME /opt/nagios/sbin$fastcgi_script_name; fastcgi_index index.cgi; fastcgi_param REMOTE_USER $remote_user; fastcgi_param AUTH_USER $remote_user; fastcgi_param HTTP_ACCEPT_LANGUAGE en_US; include fastcgi_params; fastcgi_read_timeout 60; } }
注:若是你的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),这两种方法都是不安全的。
方法二:以http://ip方式访问
server { listen 80; server_name 192.168.1.108; index index.html index.htm index.php; root /opt/nagios/share; auth_basic "Nagios Access"; auth_basic_user_file /opt/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 /opt/nagios/sbin; rewrite ^/nagios/cgi-bin/(.*)\.cgi /$1.cgi break; fastcgi_pass unix:/opt/webserver/nginx/logs/perl-fcgi.sock; fastcgi_param SCRIPT_FILENAME /opt/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 /opt/nagios/etc/nagiospasswd; } location /nagios { alias /opt/nagios/share; auth_basic "Nagios Access"; auth_basic_user_file /opt/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; }
六、编译并安装Nagios插件
因为Nagios主程序只是提供一个运行框架,其具体监控是靠运行在其下的插件完成的,因此Nagios插件是必须安装的。
tar zxvf nagios-plugins-1.4.15.tar.gz cd nagios-plugins-1.4.15 ./configure --with-nagios-user=nagios --with-nagios-group=nagios --prefix=/opt/nagios make make install
验证Nagios插件是否正确安装,显示安装的插件文件,即全部的插件都安装在libexec这个目录下。
ls /opt/nagios/libexec
七、启动服务
启动前先检查下配置文件是否正确
/opt/nagios/bin/nagios -v /opt/nagios/etc/nagios.cfg Nagios Core 3.4.1 Copyright (c) 2009-2011 Nagios Core Development Team and Community Contributors Copyright (c) 1999-2009 Ethan Galstad Last Modified: 05-11-2012 License: GPL Website: http://www.nagios.org Reading configuration data... Read main config file okay... Processing object config file '/opt/nagios/etc/objects/commands.cfg'... Processing object config file '/opt/nagios/etc/objects/contacts.cfg'... Processing object config file '/opt/nagios/etc/objects/timeperiods.cfg'... Processing object config file '/opt/nagios/etc/objects/templates.cfg'... Processing object config file '/opt/nagios/etc/objects/localhost.cfg'... Read object config files okay... Running pre-flight check on configuration data... Checking services... Checked 9 services. Checking hosts... Checked 1 hosts. Checking host groups... Checked 1 host groups. Checking service groups... Checked 0 service groups. Checking contacts... Checked 1 contacts. Checking contact groups... Checked 1 contact groups. Checking service escalations... Checked 0 service escalations. Checking service dependencies... Checked 0 service dependencies. Checking host escalations... Checked 0 host escalations. Checking host dependencies... Checked 0 host dependencies. Checking commands... Checked 25 commands. Checking time periods... Checked 5 time periods. Checking for circular paths between hosts... Checking for circular host and service dependencies... Checking global event handlers... Checking obsessive compulsive processor commands... Checking misc settings... Total Warnings: 0 Total Errors: 0 Things look okay - No serious problems were detected during the pre-flight check
若是没有报错,能够启动Nagios服务
/opt/nagios/bin/nagios -d /opt/nagios/etc/nagios.cfg
查看Nagios运行状态
/opt/nagios/bin/nagiostats
八、安装NRPE
因为Nagios只能监测本身所在的主机的一些本地状况,例如,cpu负载、内存使用、硬盘使用等等。若是想要监测被监控的服务器上的这些本地状况,就要用到NRPE。NRPE(Nagios Remote Plugin Executor)是Nagios的一个扩展,它被用于被监控的服务器上,向Nagios监控平台提供该服务器的一些本地的状况。NRPE能够称为Nagios的Linux客户端。
因为NRPE是经过SSL方式在监控和被监控主机上进行数据传输的,因此必须先安装ssl相关的软件包。
yum install libssl-dev libssl0.9.8
编译安装NRPE
tar zxvf nrpe-2.12.tar.gz cd nrpe-2.12 ./configure --prefix=/opt/nagios make all make install-plugin make install-daemon make install-daemon-config
注:监控主机上只须要make install-plugin这一步就能够了。监控机上只要有一个check_nrpe插件用于链接被监控端nrpe的daemon就好了。
启动NRPE
/opt/nagios/bin/nrpe -c /opt/nagios/etc/nrpe.cfg -d
验证NRPE是否正确安装(若是成功,会返回NRPE的版本号)
[root@test2-5 conf]# /opt/nagios/libexec/check_nrpe -H localhost NRPE v2.13
Nagios被控端安装配置(与监控端安装类似,切勿忽略)
一、建立Nagios用户及组,创建Nagios帐号
/usr/sbin/useradd -m -s /sbin/nologin nagios
二、编译并安装Nagios插件
tar zxvf nagios-plugins-1.4.15.tar.gz cd nagios-plugins-1.4.15 ./configure --with-nagios-user=nagios --with-nagios-group=nagios --prefix=/opt/nagios make make install
验证程序是否被正确安装:
ls /opt/nagios/libexec
三、安装NRPE
tar zxvf nrpe-2.12.tar.gz cd nrpe-2.12 ./configure --prefix=/opt/nagios make all make install-plugin make install-daemon make install-daemon-config
四、启动NRPE
/opt/nagios/bin/nrpe -c /opt/nagios/etc/nrpe.cfg -d
验证NRPE是否正确安装(若是成功,会返回NRPE的版本号)
[root@test2-5 conf]# /opt/nagios/libexec/check_nrpe -H localhost NRPE v2.13
五、修改NRPE配置文件,让监控主机能够访问被监控主机的NRPE。(不一样地方!)
缺省NRPE配置文件中只容许本机访问NRPE的Daemon
vim /opt/nagios/etc/nrpe.cfg #缺省为127.0.0.1,只能本机访问 allowed_hosts=192.168.1.108
六、重启nrpe的方法
kill all nrpe /opt/nagios/bin/nrpe -c /opt/nagios/etc/nrpe.cfg -d
参考:https://blog.csdn.net/cuipengchong/article/details/44589101,并添加问题。
本文分享 CSDN - 阿……莫西林。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。