百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Nagios安装步骤及配置详解

nanshan 2025-08-02 20:21 6 浏览 0 评论


首先,要准备好安装包和所需插件,如下:

nagios-3.4.4.tar.gz、
nagios-plugins-1.4.16.tar.gz、nrpe-2.12.tar.gz、pnp4nagios-0.6.14.tar.gz

安装环境准备:

首先,挂载系统盘,挂载到/mnt下面,并配置yum源。

注意:安装前一定要禁用防火墙和SELinux

安装思路:

(1) 服务端(监控端):需安装nagios-3.4.4.tar.gz、
nagios-plugins-1.4.16.tar.gz、nrpe-2.12.tar.gz、pnp4nagios-0.6.14.tar.gz

(2) 客户端(被监控端):只需安装
nagios-plugins-1.4.16.tar.gz、nrpe-2.12.tar.gz

一、 安装nagios之前,需先安装所需包:

#yum -y install gd fontconfig-devel libjpeg-devel libpng-devel gd-devel perl-gd openssl-devel php cpp gcc gcc-c++ libstdc++ glib2-devel libtoul-ltdl-devel

#yum -y install mysql mysql-server php-mysql httpd php

说明:因为要网页访问nagios,而且nagios是php开发的,所以需安装PHP、Apache;之所以安装MySQL是因为为了与cacti结合使用,所以就先装上。

二、 创建nagios用户组:

#groupadd -g 6000 nagios

#groupadd -g 6001 nagcmd

#useradd -u 6000 -g nagios -G nagcmd -d /home/nagios nagios

说明:“6000”、“6001”这两个数字可以使其他的,这只是指定用户组和用户的id

三、 安装nagios

解压nagios源码包、配置文件、编译文件、安装

#./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios --with-command-user=nagios --with-command-group=nagcmd --enable-event-broker --enable-nanosleep --enable-embedded-perl --with-perlcache

#make all

#make install

#make install-init

#make install-commandmode

#make install-webconf

#make install-config

到这一步,就已经安装完成nagios,但我们还需修改Apache配置文件,才可以访问nagios

配置Apache,让PHP与Apache联系

打开Apache的主配置文件httpd.confg,添加以下两行:

AddType application/x-httpd-php .php

DirectoryIndex index.html index.html.var index.php


然后呢,我们还需对nagios做访问控制,具体如下:

同样,需要在Apache主配置文件httpd.confg,添加以下内容:

ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"

<Directory "/usr/local/nagios/sbin">

AllowOverride None

Options ExecCGI

Order allow,deny

Allow from all

AuthName "Nagios Access"

AuthType basic

Authuserfile /usr/local/nagios/etc/.htpasswd.users

Require valid-user

</Directory>


ScriptAlias /nagios "/usr/local/nagios/share"

<Directory "/usr/local/nagios/share">

AllowOverride None

Options None

Order allow,deny

Allow from all

AuthName "Nagios Access"

AuthType basic

Authuserfile /usr/local/nagios/etc/.htpasswd.users

Require valid-user

</Directory>


设置用户访问控制

# htpasswd -c /usr/local/nagios/etc/.htpasswd.users nagios

#chown nagios:nagcmd /usr/local/nagios/etc/.htpasswd.users

# usermod -a -G nagios:nagcmd apache


cgi.cfg脚本控制文件修改(作用是控制相关cgi脚本):

#vim /usr/local/nagios/etc/cgi.cfg

先确保use_authentication=1

authorized_for_system_information=nagiosadmin,test

authorized_for_configuration_information=nagiosadmin,test

authorized_for_system_commands=test //多个用户之间用逗号隔开

authorized_for_all_services=nagiosadmin,test

authorized_for_all_hosts=nagiosadmin,test

authorized_for_all_service_commands=nagiosadmin,test

authorized_for_all_host_commands=nagiosadmin,test

提示:上面的nagios用户是执行命令
/usr/local/apache/bin/htpasswd –c
/usr/local/nagios/etc/htpasswd nagios 所生成的;这个要注意,不能随便加没有存在的验证用户,为了安全起见,不要添加过多的验证用户。

重启服务 :

# service httpd restart

#service nagios restart

设置为开机启动:

#chkconfig httpd on

#chkconfig --add nagios

#chkconfig nagios on

到这,我们的nagios就以安装完毕,此时可以打开浏览器输入本机IP地址加nagios就可以访问了,格式如下:

http://localhost/nagiso

打开后会让你输入用户名和密码,这时我们就输入先前添加的nagiosadmin用户及其密码就进可入。

Nagios配置:

commands.cfg #命令定义配置文件,里面定义的命令可以被其他文件引用,其它定义的文件中使用的命令,必须应在这个文件中注册才能使用。

contacts.cfg #联系人和联系人组配置文件

printer.cfg #监控打印机的一个事例配置文件(默认未启用)

switch.cfg #监控路由器的一个事例配置文件(默认未启用)

templates.cfg #模板配置文件,在此可以定义模板,在其他文件中引用。使用的过程中应使用use命令。

timeperiods.cfg #定义监控时间段的配置文件

windows.cfg #监控Windows的一个事例配置文件(默认未启用)

如果要使用以上配置文件,需要在nagios配置文件中取消相关注释。当然也可以自己动手建立自己定义的配置文件,然后按下面的方式加入进来:

vim /usr/local/nagios/etc/nagios.cfg

cfg_file=/usr/local/nagios/etc/objects/commands.cfg
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
cfg_file=/usr/local/nagios/etc/objects/templates.cfg
#cfg_file=/usr/local/nagios/etc/services.cfg
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
cfg_file=/usr/local/nagios/etc/objects/windows.cfg
#cfg_file=/usr/local/nagios/etc/objects/switch.cfg
#cfg_file=/usr/local/nagios/etc/objects/printer.cfg

取消掉相应的注释选项,就代表开启了相应的引用文件


改check_external_commands=0为check_external_commands=1(作用是:允许在web界面下执行重启nagios、停止主机/服务检查等操作。)

把command_check_interval的值从默认的1改成command_check_interval=10s(也可自己定义,主要是定义检测时间的,不要太长也不要太短)

主配置文件主要就修该这些,如需其它可自己再修改


提示:每次修改过相应的文件后,在重启nagios服务前,最好先检查一下自己配置的是否正确:

#/usr/local/nagios/bin/nagios –v /usr/local/nagios/etc/nagios.cfg

Total Warning:0

Total Errors:0

如果警告和错误都是0,则说明配置的没问题;

如果只出现了警告,没有出现错误,也可以重启服务

如果出现了错误,那么就要重新修改,知道没有Error,否则会无法重启服务


警告:Nagios 的配置过程涉及几个定义有:主机、主机组、服务、服务组、联系人、联系人组、监控时间和监控命令等,从这些定义可以看出,Nagios 的各个配置文件之间是互为关联、彼此引用的。成功配置一台 Nagios 监控系统,需要掌握每个配置文件之间依赖与被依赖的关系,可从下面四个步骤来入手,第一步:定义哪些主机、主机组、服务和服务组,第二步:要定义这个监控要通过什么命令实现,第三步:要定义监控的时间段,第四步:要定义主机或服务出现问题时要通知的联系人和 联系人组;强烈建议依据以上顺序对 Nagios 系统进行相关配置。

四、 安装nagios-plugins插件

解压源码包、配置文件、编译、安装

#tar -vxzf nagios-plugins-1.4.14.tar.gz

#./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-command-user=nagios --with-command-group=nagcmd --prefix=/usr/local/nagios

# make all

# make install

说明:如果安装成功,会在/usr/local/nagios/libexec目录下有许多插件

#ls
/usr/local/nagios/libexec/(可查看是否有许多插件,如无则安装不成功,需重新安装)

为了安全,需修改nagios安装目录的权限,如下:

# chmod 755 /usr/local/nagios

到这一步,如上无出任何问题,则nagios-plugins插件成功安装完毕。

五、 安装nrpe

提示:在安装nrpe之前,需要安装openssl库,否则会提示,而安装不通过,所以先检查是否安装了OpenSSL库,如无安装,请先安装(#yum –y install openssl openssl-devel)

解压源码包、配置文件、编译、安装

#tar -xzvf nrpe-2.12.tar.gz

#cd nrpe-2.12(进入解压目录)

#./configure

#make all

#make install-plugin(服务端只需执行到这一步就OK了

# make install-daemon

#make install-daemon-config(客户端执行到这一步,如出现如下两行,则表示安装成功

/usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/etc

/usr/bin/install -c -m 644 -o nagios -g nagios sample-config/nrpe.cfg /usr/local/nagios/etc

说明:在Nagios服务器端只要安装nrpe监控插件check_nrpe就可以了,不需要安装nrpe服务。所以执行到上一步就可以了。而客户端需要全部执行安装。

修改配置文件(客户端):

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

找到下面的内容所在行并修改
allowed_hosts=127.0.0.1,192.168.129.21(
之间要用逗号隔开,千万不能有空格

说明:后面的IP地址应为服务端的IP地址,允许Nagios监控服务器192.168.129.21监控客户端,这是重要的一点


nrpe客户端监测命令定义:

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

command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10

command[check_load]=/usr/local/nagios/libexec/check_load -w 5,4,3 -c 7,6,5

command[check_opt_space]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda2

command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 50 -c 100 -s Z

command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 500 -c 1000

command[check_root_space]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda3

command[check_swap]=/usr/local/nagios/libexec/check_swap –w 20% -c 10%


command[check_http]=/usr/local/nagios/libexec/check_http -H 10.20.10.201 -p 80

command[check_web]=/usr/local/nagios/libexec/check_http -H 10.20.10.31 -u /index.jsp

command[check_ping]=/usr/local/nagios/libexec/check_ping -H 10.10.10.2 -w 100,5% -c 200,10%

command[check_oracle_data]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /oracle_data

command[check_tcp]=/usr/local/nagios/libexec/check_tcp -H 10.20.10.224 -p 1521 -w 0.009 -c 0.010


启动nrpe服务:

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

设置为开机启动:

vim /etc/rc.d/rc.local(把下面的一行只需添加进去就可以了)

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

通过如下命令验证nrpe是否正常启动,可以看到端口5666已经打开

# netstat -atulnp | grep 'nrpe'

tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN 24823/nrpe

检查nrpe是否安装成功,执行如下命令后出现版本号就表示安装成功。

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

NRPE v2.8b1

六、 安装pnp4nagios

提示:在安装pnp之前系统应已经安装好了nagios基础平台,pnp插件的安装还需要系统支持php,rrdtools,perl, pnp-latest。

Rrdtools安装:

tar zxvf rrdtool-1.0.50.tar.gz
cd rrdtool-1.0.50
./configure –prefix=/usr/local/rrdtool/
make && make install

rrdtools安装完成

#tar -zxvf pnp4nagios-0.6.14.tar.gz

# cd pnp4nagios-0.6.21

#./configure --prefix=/usr/local/pnp4nagios --with-rrdtool=/usr/local/rrdtool/bin/rrdtool --with-nagios-user=nagios --with-nagios-group=nagios

#make all

#make install

#make install-webconf

#make install-config

#make install-init

错误解决:

(1) 如果在配置完后出现如下一行:

RRDs Perl Modules: NOT FOUND (Version 1.4004)

说明没有安装rrdtool的perl模块,所以在RRDs Perl Modules 选项中出现not found 。

解决办法如下:

就按如下操作,将rrdtool下的模块文件添加到/usr/lib64/perl5:

ln -sv /usr/local/rrdtool/lib/perl/5.10.1/x86_64-linux-thread-multi/auto/RRDs/RRDs.so /usr/lib/perl5/

ln -sv /usr/local/rrdtool/lib/perl/5.10.1/x86_64-linux-thread-multi/RRDs.pm /usr/lib64/perl5/

(2) 注意make install-webconf这一步

出现的结果如下(如没出现,则不用管):

/usr/bin/install -c-m 644 httpd.conf/etc/httpd/conf.d/pnp4nagios.conf

因为每个人的apache安装在不同目录,所以这句话并不对每个人都起作用

我的apache在/usr/local/apache 中,所以要把pnp4nagios.conf 拷贝到/usr/local/apache/conf目录下,并在httpd.conf最后加上 Include conf/pnp4nagios.conf 注意include 第一个字母大写


配置pnp4nagiso:

(1) 修改nagios.cfg

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

#找到以下两项,修改为如下内容
process_performance_data=1

host_perfdata_command=process-host-perfdata
service_perfdata_command=process-service-perfdata #默认此句被注释掉了

(2) 修改pnp4nagios的etc目录下内容

#cd /usr/local/pnp4nagios/etc

#mv misccommands.cfg-sample misccommands.cfg

#mv nagios.cfg-sample nagios.cfg

#mv rra.cfg-sample rra.cfg

(3) 修改etc/pages目录下内容

#cd /usr/local/pnp4nagios/etc/pages/

#mv web_traffic.cfg-sample web_traffic.cfg

(4) 修改etc/check_commands目录下内容

cd /usr/local/pnp4nagios/etc/check_commands

mv check_all_local_disks.cfg-sample check_all_local_disks.cfg

mv check_nrpe.cfg-sample check_nrpe.cfg

mv check_nwstat.cfg-sample check_nwstat.cfg

(5) service npcd restart && chkconfig npcd on(启动服务,并开机启动)

(6) 修改commonds.cfg文件

vim /usr/local/nagios/etc/objects/commands.cfg

define command{

command_name process-host-perfdata

command_line /usr/local/pnp4nagios/libexec/process_perfdata.pl -d HOSTPERFDATA

}

define command{

command_name process-service-perfdata

command_line /usr/local/pnp4nagios/libexec/process_perfdata.pl

}

注意:原来已经有这两个命令的定义好了的,注意要注释掉原来的命令。

process-host-perfdata命令最后要加上-d HOSTPERFDATA

修改templates.cfg文件,添加以下内容:

define host {

name host-pnp

action_url /pnp4nagios/index.php/graph?host=$HOSTNAMEsrv=_HOST_

register 0

}


define service {

name srv-pnp

action_url /pnp4nagios/index.php/graph?host=$HOSTNAMEsrv=$SERVICEDESC$

register 0

}

说明:如果想要对某个监控对象做数据图表,则需在所对应的host或者service定义中(一般写在hosts.cfg或者services.cfg文件中),加入如下的定义:
process_perf_data 1

定义好上面两项后,只需在定义主机文件和服务文件的use行后面加入相应的host-pnp、srv-pnp

相关推荐

微软发布Win11/10 ISO镜像Defender更新,提升系统初始安全性

IT之家7月27日消息,除了Setup及WinRE更新外,NeoWin发现微软本周还针对Windows11/10/Server安装镜像发布了新的Defender安全智能...

微软革新Windows装机体验:内置应用全面升级,安全与便捷双提升

Windows内置应用迎来重大变革:更安全、更快速的初始体验如果您曾亲自安装过Windows11,或许注意到其内置应用并非开箱即用,而是一些占位程序,需要首次运行时从微软应用商店(Microsoft...

Hotpatch继续扩展 现在更多Windows PC在更新后无需重启

Windows11最近从其服务器版本中获得了一项非常重要的功能:Windows热补丁。该功能旨在通过允许操作系统在无需重启的情况下安装重要的安全更新来最大限度地减少停机时间和中断。最初,微软在...

微软承认Windows Server六月更新存在BUG:导致DHCP服务器故障

IT之家6月17日消息,科技媒体WindowsLatest今天(6月17日)发布博文,报道称微软承认6月WindowsServer更新存在BUG,可能导致DHCP服...

Windows Server2019安装Hyper-V的2个简单方法!

关于WindowsServer2019WindowsServer2019是微软发布的服务器操作系统,是WindowsServer2016的后续版本。它包含了许多新的特性和改进,适用于数据中心...

如何在不满足系统要求的旧计算机上安装 Windows 11 24H2

如果你想了解这个安装工具以及安装方法(老飞摄影微信公众号内提供安装包下载),请完整的看完后面的文字,以避免在安装过程当中出现问题。Windows11通常需要某些硬件功能,例如TPM和安全启动,...

第 137 期:微软表示 Windows 11 24H2 是迄今为止最稳定的版本

就在刚刚,微软“大言不惭”地声称,Windows1124H2是迄今为止最可靠的Windows版本。我们并不是说它很糟糕,因为我们每天的工作中也在使用它。上述言论只是一份微软的一份官方文件的一...

Windows 11 将推出带有“高级”选项的新设置页面

Windows11即将迎来一个包含一些高级功能的全新“设置”页面。严格来说,它并非全新功能。它更像是“开发者”栏目的重新设计,用户和开发者可以在其中调整各种附加功能。微软可能明白这些东西不仅对开发...

Windows server 2025 重复数据删除

一、概述windowsserver中的重复数据删除功能从windowsserver2012就开始支持了。Windowsserver中默认没有安装重复数据删除功能。在磁盘分区(卷)上启用重复...

Windows Server 2025预览版迎来更新,微软改善Insiders测试体验

在发布WindowsServer的build26040版本之际,微软公布了该产品的官方名称:WindowsServer2025。一同推出的,还有Windows11WindowsInsid...

升不升?Win11 24H2大范围推送了

微软在其官方支持文档中宣布,24H2版现在已经开始向运行Windows11原始版本、22H2和23H2版的合格设备推送。Windows11的24H2更新现已进入新的可用性阶段,这意味着更多符合条件...

微软发布Win11/10/Server安装镜像Defender更新

IT之家6月22日消息,继上个月为Lumma发布更新后,微软本月也为Windows11/10/Server安装镜像发布了新的Defender更新。此更新包很有必要,因为Wi...

第 81 期:微软最近的更新给 Windows Server 带来了 DHCP 问题

近日,微软确认,DHCP服务器服务可能会在WindowsServer安装2025年6月更新后停止响应或拒绝连接。DHCP问题会影响WindowsServer2025(KB50...

windws server 2012 R2 虚拟机windows server2019 经常断网事件

故障现象:在windowsserver2012R2的虚拟主机上面搭建一个Windowsserver2019的虚拟机系统用来做域控。安装完设置好防火墙和IP,经过测试是可以ping同正常访问...

微软扩展热补丁部署,现覆盖ARM架构Win11 24H2设备

IT之家7月9日消息,科技媒体NeoWin今天(7月9日)发布博文,报道称微软扩大热补丁(WindowsHotpatching)覆盖范围,在AMD和英特尔处理器设备外,现覆盖支...

取消回复欢迎 发表评论: