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

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虚拟文件系统交互,允许用户在运行时动态修改内核参数。这些参数控制着系统的各种行为,包括网络设置、文件...

取消回复欢迎 发表评论: