服务端Nagios:nagios-4.1.1.tar.gz
https://www.nagios.org/downloads/nagios-core/thanks/
客户端NRPE: nrpe-2.15.tar.gz
https://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.15/
脚本插件:nagios-plugins-2.1.1.tar.gz
https://www.nagios.org/downloads/nagios-plugins/
Apache服务:Apache/2.2.15
使用本地yum源安装
绘图工具rrdtool:rrdtool-1.5.0-rc2.tar.gz
http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.5.0-rc2.tar.gz
图形化工具pnp4nagios:pnp4nagios-0.6.25.tar.gz
http://jaist.dl.sourceforge.net/project/pnp4nagios/PNP-0.6/pnp4nagios-0.6.25.tar.gz
下载完毕后,我们把Nagios的相关软件包通过sftp上传到Linux服务器上。
yum install �y php gcc glibc glibc-commongd gd-devel perl-CPAN opensslopenssl-devel
注意:如果安装不成功提示:Public key for php-cli-5.3.3-22.el6.x86_64.rpm isnot installed
则红帽执行:rpm --import/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
centos执行:rpm --import/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
添加用户和组:nagios
useradd nagios
现在进入安装的上传路径下/app,对需要安装的包进行解压。
tar zxvfnagios-plugins-2.1.1.tar.gz
tar zxvf nagios-4.1.1.tar.gz
tar zxvf nrpe-2.15.tar.gz
进入nagios-4.1.1进行编译安装
./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios
/usr/local/nagios表示nagios的安装路径
编译完毕如下:
可以看到需要新建用户nagios,系统中如果没有的话。我们现在可以新建用户。
继续执行makeall,如下图:
执行结果如下:
我们只需要按照上边的命令执行即可,如下图:
make install安装nagios的相关程序文件。
makeinstall-init安装nagios启动的初始化脚本。
makeinstall-commandmode 安装nagios的命令文件。
makeinstall-config安装nagios的配置文件。
makeinstall-webconf安装nagios的web配置文件。
为 apache创建一个登陆用户,注意用户名是 nagiosadmin,该用户名是在cgi.cfg设置的默认户名。注意:第一次添加用户用-c 选项,以后再添加千万别在用这个选项了,会覆盖以前的所有
htpasswd -c /usr/local/nagios/etc/htpasswd nagiosadmin
注意:如果apache是使用源码安装的话,我们在执行make install-webconf会报错。我们只需要把sample-config/httpd.conf复制到/usr/local/apache2/conf/下,并重命名为nagios.conf即可。在这apache是安装到/usr/local/apache2下。如下:
cpsample-config/httpd.conf /usr/local/apache2/conf/nagios.conf
ll/usr/local/apache2/conf/
以上操作之后,我们还需要在/usr/local/apache/conf/httpd.conf文件中添加 Include conf/nagios.conf。
注意:include第一个字母大写意。
为了让Nagios可以开机自动启动,我们把 Nagios添加到启动管理程序中。
以上是nagios的安装步骤
下面进行nagios插件的安装。进入nagios的插件目录,如下图:
编译插件
./configure --prefix=/usr/lo cal/nagios --with-nagios-user=nagios--with-nagios-group=nagios
编译结果如下:
编译完毕,没有报错就可以进行安装。
make&&makeinstall
安装结果如下:
查看下安装情况:
插件截图:
以上是nagios-plugin插件的安装。
NREP是基于xinetd的服务,所以需要确认xinetd 服务是否有安装
service xinetd status
安装成功后启动服务并验证。
service xinetd start
进入nrpe-2.15解压包的目录/app/nrpe-2.15进行配置
./configure --enable-command-args
配置结果如下:
进行编译:
make all
安装NRPE插件check_nrpe,如下:
make install-plugin
安装NRPE命令,如下:
make install-daemon
安装NRPE配置文件,如下:
make install-daemon-config
安装npre与xinetd服务关联
make install-xinetd
以上是安装步骤。
[root@abiu243 xinetd.d]# pwd
/etc/xinetd.d
[[email protected]]# vi /etc/xinetd.d/nrpe
# default: on
# description:NRPE (Nagios Remote Plugin Executor)
service nrpe
{
flags = REUSE
socket_type = stream
port = 5666
wait = no
user = nagios
group = nagios
server = /usr/local/nagios/bin/nrpe
server_args = -c /usr/local/nagios/etc/nrpe.cfg--inetd
log_on_failure += USERID
disable = no ##注意修改为no
only_from = 127.0.0.1 192.168.1.145
}
#注意:在only_from后面,客户端上面配置文件添加服务端IP,反之服务端上面添加客户端IP,中间以空格隔开
[[email protected]]# vi /etc/services
#在文件末尾添加,如果不添加端口,nrpe将不能正常运行
nrpe 5666/tcp #nrpe
NREP是基于xinetd的服务,所以只要开启xinetd 服务就行
直接用yum源安装
yum install �y httpd
添加httpd服务开机自启动
chkconfig httpd on
需要创建nagios用户和组。
nrpe和nagios-plugin的安装按照上面的安装步骤进行安装
配置文件在安装时放在了/usr/local/nagios/etc/目录下。
[root@Nagios-Server~]# ls -l /usr/local/nagios/etc/
total 88
-rw-rw-r-- 1nagios nagios 11408 May 29 02:09 cgi.cfg #CGI 配置文件
-rw-r--r-- 1root root 22 May 29 02:13 htpasswd.users #Apache 验证密码文件
-rw-rw-r-- 1nagios nagios 43776 May 29 02:09 nagios.cfg #Nagios 主配置文件
drwxrwxr-x 2nagios nagios 4096 May 29 02:09objects #监控对象定义文件目录
-rw-rw---- 1nagios nagios 1340 May 29 02:09resource.cfg #Nagios资源配置文件
217.41 上面资源配置统一放在monitor下面,根据之前IDC主机业务属性,划分数据库、DMZ区web、测试区、WEB区、应用区、二期上线新增VLAN18、VLAN19、VLAN20三个区域,后期新上线的机器按VLAN 添加到各文件
commands.cfg #命令配置文件
contacts.cfg #联系人配置文件
timeperiods.cfg #时间周期配置文件
templates.cfg #模板配置文件
contactgroups.cfg #增加联系组定义文件
hosts.cfg #增加主机配置文件
hostgroups.cfg #增加主机组配置文件
services.cfg #增加服务配置文件
servicegroups.cfg #增加服务组配置文件
执行命令保证双方通信正常
49配置:
41配置:
输出NRPE版本号,表示通信正常
查看本地执行状态
[root@idcrm-test1 etc]#/usr/local/nagios/libexec/check_ftp -H 192.168.217.49 -p 21
FTP OK - 0.004second response time on port 21 [220 (vsFTPd3.0.2)]|time=0.004202s;;;0.000000;10.000000
这边check_command check_nrpe!check_vsftp 中
check_vsftp 需要与客户端本地配置的监控条目名字要一致,否则会有错误
至此vsftp的相关配置完成,登陆前端查看状态,红色字体代表“紧急”,绿色代表“正常”***代表“告警”,如下图
pnp4nagios是一个基于php和perl语言的强大工具,它可以通过process_perfdata.pl脚本调用rrdtool对nagios的性能数据进行分析并绘制成相应的性能图。所以在安装pnp4nagios之前,我们必须先安装php、perl、rrdtool.
rrdtool是RoundRobin Database Tool的缩写。从功能上说,rrdtool可用于数据存储+数据展示。著名的网络流量绘图软件cacti和集群监控系统Ganglia使用的都是rrdtool。
在数据存储方面,rrdtool采用“RoundRobin”模式存储数据,即环状数据库。注意:rrdtool数据库文件后缀名为“.rrd”。
在正式安装rrdtool之前,我们还必须要安装rrdtool编译时,所需要的基础库。如下:
yum -y install gcc cairo-devel libxml2-devel pango-devel pangolibpng-devel freetype freetype-devel libart_lgpl-devel
基础库安装完毕后,我们现在开始正式安装rrdtool。
进入rrdtool的解压目录
配置rrdtool,如下:
./configure --prefix=/usr/local/rrdtool
配置结果如下
直接进行编译安装
make&&make install
安装结果如下:
安装完成后进行验证:
/usr/local/rrdtool/bin/rrdtool�v
perl-Time-HiRes组件一定要在安装配置pnp4nagios之前安装,否则在安装配置pnp4nagios时,提示如下的错误信息:
configure:error: Perl Module Time::HiRes not available
未验证。
yum install �y perl-Time-HiRes
开始安装pnp4nagios(终于到这一步了)
进入pnp4nagios的解压目录
配置pnp4nagios:
./configure--prefix=/usr/local/pnp4nagios --with-rrdtool=/usr/local/rrdtool/bin/rrdtool --with-nagios-user=nagios--with-nagios-group=nagios--with-perl_lib_path=/usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi/
会出现如上图的问题,则执行
cp -r /usr/local/rrdtool/lib/perl/5.10.1/x86_64-linux-thread-multi/* /usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi/
再次执行上面的配置命令:
结果如下:
编译pnp4nagios,如下:
makeall
注意:
通过上图,我们知道pnp4nagios的最后一步的安装有两种方法:一是make install进行一步一步的安装pnp4nagios,二是使用make fullinstall进行自动安装。
这边我们用make install
make install
执行结果如下:
安装pnp4nagios的web配置文件,如下:
makeinstall-webconf
注意:如果apache是使用源码安装的话,我们在执行make install-webconf会报错。
不要怕,我们只需要把sample-config/httpd.conf复制到/usr/local/apache2/conf/下,并重命名为pnp4nagios.conf即可。在这apache是安装到/usr/local/apache2下。如下:
cpsample-config/httpd.conf /usr/local/apache2/conf/ pnp4nagios.conf
ll/usr/local/apache2/conf/
以上操作之后,我们还需要在/usr/local/apache/conf/httpd.conf文件中添加 Include conf/pnp4nagios.conf。最后,我们还要重启apache。
安装pnp4nagios的配置文件,如下:
make install-config
安装pnp4nagios启动的初始化脚本,如下:
make install-init
pnp4nagios安装完毕后,我们来查看下其安装的目录,如下:
ll/usr/local/pnp4nagios/
下面来介绍下pnp4nagios的目录,如下:
bin目录用来存放pnp4nagios启动命令npcd。如下:
/usr/local/pnp4nagios/bin/npcd-h
pnp4nagios开机启动脚本就是由这个命令控制,如下:
vi/etc/init.d/npcd
etc目录主要存放pnp4nagios各种配置文件,如下:
ll/usr/local/pnp4nagios/etc/
lib目录存放pnp4nagios的库文件。
libexec目录存放pnp4nagios执行的插件,比如process_perfdata.pl
ll/usr/local/pnp4nagios/libexec
其他的目录就不需要做介绍了。
以上就是pnp4nagios的安装。
pnp4nagios安装完毕后,我们现在来配置pnp4nagios。
切换到pnp4nagios的安装目录的etc目录下,如下:
cd/usr/local/pnp4nagios/etc/
现在开始修改etc目录下内容,如下:
mvmisccommands.cfg-sample misccommands.cfg
mvnagios.cfg-sample nagios.cfg
mvrra.cfg-sample rra.cfg
修改etc/pages目录下内容,如下:
mvpages/web_traffic.cfg-sample pages/web_traffic.cfg
修改etc/check_commands目录下内容,如下:
mvcheck_commands/check_all_local_disks.cfg-samplecheck_commands/check_all_local_disks.cfg
mvcheck_commands/check_nrpe.cfg-sample check_commands/check_nrpe.cfg
mvcheck_commands/check_nwstat.cfg-sample check_commands/check_nwstat.cfg
以上修改完毕后,我们来配置pnp4nagios的工作模式。
如果想要了解pnp4nagios的全部工作模式,可以访问这个连接。如下:
http://docs.pnp4nagios.org/pnp-0.6/config
或者http://www.kar-chan.com/?p=2267
pnp4nagios安装完毕后,我们来启动pnp4nagios。要启动pnp4nagios,我们可以使用如下命令:
/etc/init.d/npcd start
ps aux |grep npcd
通过上图,我们可以很明显的看到pnp4nagios已经正常启动,并且也能看出pnp4nagios运行在nagios用户下。
为了以后的方便,我们直接把pnp4nagios开机启动。如下:
chkconfignpcd on
chkconfig�list npcd
pnp4nagios启动后,现在我们通过如下连接访问pnp4nagios,如下:
http://192.168.1.243/pnp4nagios/
注意:系统会弹出如上的对话框,在此我们只需填入nagios中配置的具有访问权限的用户即可,在此我填写的是nagios的管理员账号nagiosadmin。
通过上面两幅图,我们可以看很明显的看到pnp4nagios可以正常访问。
但是在第二幅图,我们也看到了系统给出的提示。如下:
pnp4nagios may not work correctly with yourenvironment. Remove or rename the /usr/local/pnp4nagios/share/install.php
file on your own risk.
它的意思是要把/usr/local/pnp4nagios/share/install.php文件删除或者重命名。
现在我们对此文件进行操作,如下:
mv/usr/local/pnp4nagios/share/install.php/usr/local/pnp4nagios/share/install.php.bak
ll/usr/local/pnp4nagios/share/
对该文件操作文件后,我们再次刷新该页面,可能会出现如下的错误信息。如下:
该错误是正常的错误,不用管它。继续往下配置。
在pnp4nagios的这几种工作模式中,我们使用Bulk Mode with NPCD模式。要使用Bulk Mode with NPCD模式,我们需要修改nagios的相关配置,具体修改如下。
配置nagios.cfg文件
修改nagios的配置文件nagios.cfg,在该文件加入或修改如下选项:
vi/usr/local/nagios/etc/nagios.cfg
process_performance_data=1
#
#service performance data
#
service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata
service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=15
service_perfdata_file_processing_command=process-service-perfdata-file
#
#host performance data starting with Nagios 3.0
#
host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata
host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$
host_perfdata_file_mode=a
host_perfdata_file_processing_interval=15
host_perfdata_file_processing_command=process-host-perfdata-file
注意:
process_performance_data=1表示启用nagios性能数据输出。
如果上面的内容你记不得,也没事的,我们可以直接从/usr/local/pnp4nagios/etc/nagios.cfg文件中复制即可。如下:
vi/usr/local/pnp4nagios/etc/nagios.cfg +16
配置commands.cfg文件
nagios.cfg文件修改完毕后,我们现在来编辑commands.cfg文件。在该文件中加入或修改如下选项:
vi/usr/local/nagios/etc/objects/commands.cfg
definecommand{
command_name process-service-perfdata-file
command_line /bin/mv/usr/local/pnp4nagios/var/service-perfdata/usr/local/pnp4nagios/var/spool/service-perfdata.$TIMET$
}
definecommand{
command_name process-host-perfdata-file
command_line /bin/mv /usr/local/pnp4nagios/var/host-perfdata/usr/local/pnp4nagios/var/spool/host-perfdata.$TIMET$
}
同时还要把nagios中原来的定义process-host-perfdata和process-service-perfdata给注释掉。如下:
如果上面的内容你记不得,也没事的,我们可以直接从/usr/local/pnp4nagios/etc/misccommands.cfg文件中复制即可。如下:
vi/usr/local/pnp4nagios/etc/misccommands.cfg +34
配置templates.cfg文件
commands.cfg文件修改完毕后,我们现在来编辑templates.cfg文件。在该文件中加入如下选项:
vi/usr/local/nagios/etc/objects/templates.cfg
definehost {
namehost-pnp
action_url/pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_’ class=’tips’rel=’/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=_HOST_
register0
}
defineservice {
namesrv-pnp
action_url/pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$’ class=’tips’rel=’/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$
register0
}
如果上面的内容你记不得,也没事的,我们可以直接从pnp4nagios官网查看。如下:
http://docs.pnp4nagios.org/pnp-0.6/webfe
配置主机cfg文件
以上文件全部配置完毕后,我们现在添加一台主机。如下:
vi/usr/local/nagios/etc/ilanni/ilanni.cfg
definehost{
useilanniserver,host-pnp
host_nameilanni
aliastest server
address192.168.1.248
check_commandcheck-host-alive
}
defineservice{
usegeneric-service,srv-pnp
host_nameilanni
service_descriptionnrpe_load
check_commandcheck_nrpe!check_load
}
nagios配置完毕后,我们来检查下nagios配置是否正确。如下:
/etc/init.d/nagiosconfigtest
通过上图,我们可以看到nagios配置是没有问题的。
现在我们来重新启动pnp4nagios和nagios,如下:
/etc/init.d/npcdrestart
/etc/init.d/nagiosreload
现在我们登录nagios进行查看,先来看看pnp4nagios绘制主机的性能图,如下:
通过上面三张图,我们可以很明显的看出pnp4nagios已经把主机的相关数据进行绘图。
然后再来看看pnp4nagios绘制服务的性能图,如下:
通过上面三张图,我们可以很明显的看出pnp4nagios已经把服务的相关数据进行绘图。
最后,我们再来查看下pnp4nagios把数据存放的位置。如下:
ll/usr/local/pnp4nagios/var/perfdata/
ll/usr/local/pnp4nagios/var/perfdata/ilanni
到此有关pnp4nagios绘制nagios性能的图形已经全部完成。