Nagios安装步骤及配置详解
nanshan 2025-08-02 20:21 8 浏览 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
相关推荐
- 0722-6.2.0-如何在RedHat7.2使用rpm安装CDH(无CM)
-
文档编写目的在前面的文档中,介绍了在有CM和无CM两种情况下使用rpm方式安装CDH5.10.0,本文档将介绍如何在无CM的情况下使用rpm方式安装CDH6.2.0,与之前安装C5进行对比。环境介绍:...
- ARM64 平台基于 openEuler + iSula 环境部署 Kubernetes
-
为什么要在arm64平台上部署Kubernetes,而且还是鲲鹏920的架构。说来话长。。。此处省略5000字。介绍下系统信息;o架构:鲲鹏920(Kunpeng920)oOS:ope...
- 生产环境starrocks 3.1存算一体集群部署
-
集群规划FE:节点主要负责元数据管理、客户端连接管理、查询计划和查询调度。>3节点。BE:节点负责数据存储和SQL执行。>3节点。CN:无存储功能能的BE。环境准备CPU检查JDK...
- 在CentOS上添加swap虚拟内存并设置优先级
-
现如今很多云服务器都会自己配置好虚拟内存,当然也有很多没有配置虚拟内存的,虚拟内存可以让我们的低配服务器使用更多的内存,可以减少很多硬件成本,比如我们运行很多服务的时候,内存常常会满,当配置了虚拟内存...
- 国产深度(deepin)操作系统优化指南
-
1.升级内核随着deepin版本的更新,会自动升级系统内核,但是我们依旧可以通过命令行手动升级内核,以获取更好的性能和更多的硬件支持。具体操作:-添加PPAs使用以下命令添加PPAs:```...
- postgresql-15.4 多节点主从(读写分离)
-
1、下载软件[root@TX-CN-PostgreSQL01-252software]#wgethttps://ftp.postgresql.org/pub/source/v15.4/postg...
- Docker 容器 Java 服务内存与 GC 优化实施方案
-
一、设置Docker容器内存限制(生产环境建议)1.查看宿主机可用内存bashfree-h#示例输出(假设宿主机剩余16GB可用内存)#Mem:64G...
- 虚拟内存设置、解决linux内存不够问题
-
虚拟内存设置(解决linux内存不够情况)背景介绍 Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存...
- Elasticsearch性能调优(5):服务器配置选择
-
在选择elasticsearch服务器时,要尽可能地选择与当前业务量相匹配的服务器。如果服务器配置太低,则意味着需要更多的节点来满足需求,一个集群的节点太多时会增加集群管理的成本。如果服务器配置太高,...
- Es如何落地
-
一、配置准备节点类型CPU内存硬盘网络机器数操作系统data节点16C64G2000G本地SSD所有es同一可用区3(ecs)Centos7master节点2C8G200G云SSD所有es同一可用区...
- 针对Linux内存管理知识学习总结
-
现在的服务器大部分都是运行在Linux上面的,所以,作为一个程序员有必要简单地了解一下系统是如何运行的。对于内存部分需要知道:地址映射内存管理的方式缺页异常先来看一些基本的知识,在进程看来,内存分为内...
- MySQL进阶之性能优化
-
概述MySQL的性能优化,包括了服务器硬件优化、操作系统的优化、MySQL数据库配置优化、数据库表设计的优化、SQL语句优化等5个方面的优化。在进行优化之前,需要先掌握性能分析的思路和方法,找出问题,...
- Linux Cgroups(Control Groups)原理
-
LinuxCgroups(ControlGroups)是内核提供的资源分配、限制和监控机制,通过层级化进程分组实现资源的精细化控制。以下从核心原理、操作示例和版本演进三方面详细分析:一、核心原理与...
- linux 常用性能优化参数及理解
-
1.优化内核相关参数配置文件/etc/sysctl.conf配置方法直接将参数添加进文件每条一行.sysctl-a可以查看默认配置sysctl-p执行并检测是否有错误例如设置错了参数:[roo...
- 如何在 Linux 中使用 Sysctl 命令?
-
sysctl是一个用于配置和查询Linux内核参数的命令行工具。它通过与/proc/sys虚拟文件系统交互,允许用户在运行时动态修改内核参数。这些参数控制着系统的各种行为,包括网络设置、文件...
你 发表评论:
欢迎- 一周热门
-
-
UOS服务器操作系统防火墙设置(uos20关闭防火墙)
-
极空间如何无损移机,新Z4 Pro又有哪些升级?极空间Z4 Pro深度体验
-
手机如何设置与显示准确时间的详细指南
-
NAS:DS video/DS file/DS photo等群晖移动端APP远程访问的教程
-
如何在安装前及安装后修改黑群晖的Mac地址和Sn系列号
-
如何修复用户配置文件服务在 WINDOWS 上登录失败的问题
-
一加手机与电脑互传文件的便捷方法FileDash
-
日本海上自卫队的军衔制度(日本海上自卫队的军衔制度是什么)
-
10个免费文件中转服务站,分享文件简单方便,你知道几个?
-
爱折腾的特斯拉车主必看!手把手教你TESLAMATE的备份和恢复
-
- 最近发表
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)