在CentOS系统中搭建Nagios监控系统,可以帮助管理员实时监控服务器状态、服务可用性以及系统资源使用情况,本文将详细介绍在CentOS上安装和配置Nagios的完整步骤,包括环境准备、依赖安装、Nagios核心组件部署、Web界面配置以及常见问题排查。

环境准备与系统初始化
在开始安装Nagios之前,需要确保系统满足基本要求,推荐使用CentOS 7或更高版本,并确保系统已更新至最新状态,执行以下命令更新系统:
sudo yum update -y
关闭SELinux或将其设置为宽松模式,避免权限问题:
sudo setenforce 0 sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config
确保系统已安装必要的编译工具,如gcc、glibc、glibc-common等:
sudo yum install -y gcc glibc glibc-common make gd gd-devel
安装Apache与PHP
Nagios的Web界面依赖Apache和PHP,因此需要先安装这些组件,执行以下命令安装Apache和PHP:
sudo yum install -y httpd php php-mysql php-gd php-xml php-mbstring
安装完成后,启动Apache服务并设置为开机自启:
sudo systemctl start httpd sudo systemctl enable httpd
创建Nagios用户与组
为了安全起见,需要为Nagios创建专用的用户和组,执行以下命令:
sudo useradd -m -s /bin/bash nagios sudo groupadd nagcmd sudo usermod -a -G nagcmd nagios sudo usermod -a -G nagcmd apache
下载并编译安装Nagios核心
访问Nagios官网获取最新版本的Nagios核心源码,本文以Nagios 4.4.6为例,下载并解压源码:
cd /tmp wget https://github.com/NagiosEnterprises/nagioscore/archive/nagios-4.4.6.tar.gz tar -xzf nagios-4.4.6.tar.gz cd nagioscore-nagios-4.4.6
编译并安装Nagios核心:
./configure --with-nagios-group=nagios --with-command-group=nagcmd make all sudo make install sudo make install-init sudo make install-config sudo make install-commandmode
安装Nagios插件
Nagios插件是监控系统功能的核心组件,下载并安装Nagios插件:

cd /tmp wget https://github.com/nagios-plugins/nagiosplugins/archive/refs/tags/release-2.3.3.tar.gz tar -xzf release-2.3.3.tar.gz cd nagiosplugins-release-2.3.3
编译并安装插件:
./configure --with-nagios-user=nagios --with-nagios-group=nagios make sudo make install
配置Nagios Web界面
Nagios的Web界面配置文件位于/usr/local/nagios/etc/目录下,编辑cgi.cfg文件,确保用户权限正确:
sudo vi /usr/local/nagios/etc/cgi.cfg
找到以下行并确保nagiosadmin用户存在:
authorized_for_system_information=nagiosadmin authorized_for_configuration_information=nagiosadmin authorized_for_system_commands=nagiosadmin authorized_for_all_services=nagiosadmin authorized_for_all_hosts=nagiosadmin authorized_for_all_service_commands=nagiosadmin authorized_for_all_host_commands=nagiosadmin
配置Apache以支持Nagios的CGI脚本,创建Apache配置文件:
sudo vi /etc/httpd/conf.d/nagios.conf
ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin
<Directory "/usr/local/nagios/sbin">
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Alias /nagios /usr/local/nagios/share
<Directory "/usr/local/nagios/share">
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory> 保存后重启Apache服务:
sudo systemctl restart httpd
设置Nagios管理员密码
为Nagios的Web界面设置管理员密码:
sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
根据提示输入密码并确认。
启动并验证Nagios服务
启动Nagios服务并设置为开机自启:
sudo systemctl start nagios sudo systemctl enable nagios
检查Nagios配置是否正确:

sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
如果输出显示“Total Warnings: 0”和“Total Errors: 0”,则配置正确。
访问Nagios Web界面
在浏览器中访问http://服务器IP/nagios,输入之前设置的nagiosadmin用户名和密码即可登录,首次登录后,默认会监控本地主机的几个基本服务,如HTTP、SSH等。
添加自定义监控
若需监控其他主机或服务,需在/usr/local/nagios/etc/objects/目录下创建配置文件,添加一个新主机:
sudo vi /usr/local/nagios/etc/objects/newhost.cfg
define host{
use linux-server
host_name newhost
alias New Host
address 192.168.1.100
} 保存后,在nagios.cfg中引入该文件:
sudo vi /usr/local/nagios/etc/nagios.cfg
添加行:
cfg_file=/usr/local/nagios/etc/objects/newhost.cfg
重启Nagios服务使配置生效:
sudo systemctl restart nagios
常见问题排查
- Web界面无法访问:检查Apache服务是否正常运行,防火墙是否开放80端口。
- 监控数据显示异常:确认Nagios配置文件语法正确,被监控主机网络连通性正常。
相关问答FAQs
Q1: 如何解决Nagios Web界面提示“Authentication Failed”?
A1: 检查htpasswd.users文件是否存在,并确认用户名和密码正确,可重新生成密码文件:
sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Q2: 如何添加外部主机到Nagios监控?
A2: 在被监控主机上安装NRPE(Nagios Remote Plugin Executor),然后在Nagios服务器上创建主机配置文件,定义主机地址和监控命令,确保防火墙允许5666端口通信。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复