Nagios是一款强大的网络监控工具,能够帮助系统管理员监控服务器的性能、服务状态、网络连接等,以下是使用Nagios监控服务器的分步指南:
安装Nagios Core
选择使用Nagios Core,适合初学者且功能全面。
-
在Ubuntu上安装:
- 更新包仓库:
sudo apt update
- 安装Nagios Core:
sudo apt install nagios-core
- 安装依赖项:
sudo apt install -y nagios-plugins nagios-plugins-contrib
- 更新包仓库:
-
在CentOS/RHEL上安装:
- 安装Nagios Core:
yum install nagios
- 安装插件:
yum install nagios-plugins nagios-plugins-contrib
- 安装Nagios Core:
-
启动服务并设置开机启动:
- 启动服务:
sudo systemctl start nagios
- 设置开机启动:
sudo systemctl enable nagios
- 启动服务:
配置Nagios Core
-
配置文件位置:
- 主配置文件:
/etc/nagios2.cfg - 接收者配置:
/etc/nagios2/conf.d/ receiver.cfg - 服务和主机配置:
/etc/nagios2/conf.d/ hosts.cfg和services.cfg
- 主配置文件:
-
配置接收者(receiver):
- 打开
receiver.cfg,添加接收者配置:define receiver "influxdb" { method "tcp" host "localhost" port 808 # 其他参数根据你的收集工具调整 }
- 打开
-
配置监控目标:
-
打开
hosts.cfg,定义主机和服务,定义一个Web服务器:define host "web-server" host_name web.example.com use_nagios!yes check_command "check_http!http://localhost/health"
-
打开
services.cfg,定义服务(如HTTP、CPU使用率等):define service "http" service_name http host_name $HOSTNAME check_command "check_http!http://localhost/"
-
-
定义检查命令:
- 在
services.cfg中添加检查命令,例如监控硬盘空间:define command "check_disk_space" command_name check_disk_space command_path /usr/lib/nagios/plugins/checks/ arguments "$USER $GROUP $HOST $STATE $DESC $OUTPUT $DEF"
- 在
配置数据收集工具(如NRPE)
-
安装NRPE:
- 在监控目标服务器安装NRPE:
yum install nagios-nrpe
- 配置
nrpe.cfg:define nrpe_command "check_cpu" command_name check_cpu command_path /usr/lib/nagios/plugins/checks/ arguments "$USER $GROUP $HOST $STATE $DESC $OUTPUT $DEF"
- 在监控目标服务器安装NRPE:
-
在Nagios Core中配置NRPE接收器:
- 打开
receiver.cfg,添加NRPE接收器:define receiver "nrpe" { method "nrpe" host "monitor.example.com" port 5666 }
- 打开
启用并测试监控
-
启动Nagios服务:
- 在监控服务器上启动Nagios:
sudo systemctl start nagios
- 确保服务在后台运行:
sudo systemctl enable nagios
- 在监控服务器上启动Nagios:
-
通过Web界面访问:
- 访问Nagios Web界面:
http://localhost:8001
- 使用默认账号(admin/ admin),可能需要更改密码。
- 访问Nagios Web界面:
-
测试监控:
- 使用
check_http命令测试Web服务:nagios -c hosts.cfg -v
- 检查被监控主机的状态。
- 使用
配置接收器(如InfluxDB)
-
安装InfluxDB:
- 在监控服务器上安装InfluxDB:
sudo apt install influxdb
- 启动并配置InfluxDB:
sudo systemctl start influxdb sudo systemctl enable influxdb
- 在监控服务器上安装InfluxDB:
-
配置Nagios接收器:
- 在
receiver.cfg中添加InfluxDB接收器:define receiver "influxdb" { method "tcp" host "localhost" port 808 database "nagios" retention "1d" # 其他参数根据需求调整 }
- 在
定期检查和优化
-
日志管理:
- 检查Nagios日志文件:
tail -f /var/log/nagios2/nagios2.log
- 确保日志文件大小不超过限制,并配置日志rotate。
- 检查Nagios日志文件:
-
监控配置:
- 定期检查
hosts.cfg和services.cfg,确保所有监控项正确配置。 - 调整监控频率,避免过度监控。
- 定期检查
高级功能(可选)
-
智能监控:
使用Nagios的智能监控功能,自动发现和监控新服务。
-
自动化处理:
配置触发器,当监控异常时,自动触发问题处理流程。
-
集成其他工具:
将Nagios数据集成到Graphite或Prometheus,生成图表。
故障排除
-
服务无法连接:
- 检查防火墙设置,确保Nagios能够访问被监控主机的相关端口。
- 检查NRPE配置,确保主机名和端口正确。
-
检查命令失败:
- 确认检查命令路径正确,权限足够。
- 查看日志文件,获取错误信息。
通过以上步骤,你可以有效地监控服务器的运行状态,确保其高可用性和稳定性,遇到问题时,参考Nagios官方文档或社区,获取进一步的帮助。









