Nagios 是一个强大的网络和系统监控工具,能够监控服务器的性能指标,如 CPU、内存、磁盘使用情况等,以下是配置Nagios进行服务器监控的详细步骤指南:
安装Nagios
安装Nagios Core(CE),这是最基本的监控版本。
在 Ubuntu 上安装Nagios Core:
sudo apt-get update sudo apt-get install nagios4
在 CentOS/RHEL 上安装Nagios Core:
sudo yum install nagios4
安装完成后,启动并启用Nagios服务:
sudo systemctl start nagios4 sudo systemctl enable nagios4
配置Nagios
默认情况下,Nagios配置文件位于 /etc/nagios4/config。
配置主机和服务:
创建或编辑 /etc/nagios4/hosts/localhost.cfg:
define host {
host_name localhost
alias localhost
address 127...1
max_check_interval 5
check_interval 60
notification_interval 300
use generic-check
check_command "check_local"
}
define service {
service_name HTTP
host_name localhost
use http
check_command "check_http!80"
max_check_attempts 5
check_interval 60
notification_interval 300
use generic-check
}
创建服务配置文件:
创建 /etc/nagios4/services/HTTP.cfg:
define service {
service_name HTTP
service_description HTTP Server
check_command 'check_http!80'
is_volatile 0
use generic-check
}
配置Nagios访问控制(可选):
创建 /etc/nagios4/cgi-bin/cgi.cfg,添加访问控制:
define cgidomain {
main
}
define cgiservice {
service {
name HTTP
path /nagios/cgi-bin
enabled 1
group admin
}
}
启动Nagios并访问其界面:
sudo systemctl start nagios4
打开浏览器,访问 http://localhost/nagios/,默认账号和密码为 admin 和空字符串。
用户和权限管理
创建管理员账号:
sudo useradd nagiosadmin sudo passwd nagiosadmin
登录Nagios界面,创建普通用户,指定监控权限。
高级配置
配置检查时间表:
在 /etc/nagios4/scheduled.cfg 中添加检查时间表:
define schedule {
host_name localhost
service_name HTTP
start_time 0
check_interval 60
notification_interval 300
}
配置报警接收者:
编辑 /etc/nagios4/notifications/Email.cfg,设置邮件报警:
define notification {
notification_method email
notification_options $3
sender nagios@localhost
service_notification_subject ${HOSTNAME}: ${SERVICEDESC} - ${SERVICESTATUS}
host_notification_subject ${HOSTNAME}: ${HOSTDESC} - ${HOSTSTATUS}
}
运行监控并测试
sudo systemctl restart nagios4
在浏览器中测试监控项,确保HTTP服务正常运行。
故障排除
检查Nagios日志文件:
tail -f /var/log/nagios4/nagios.log
如果服务不响应,检查防火墙设置,确保Nagios能够访问监控目标。
集成第三方工具
与 Zabbix 集成:
Zabbix 是一个综合监控平台,可以与Nagios集成,扩展监控功能。
使用 Prometheus 和 Grafana:
Prometheus 适用于容器化环境,收集和存储时间序列数据,Grafana 用于可视化。
与 InfluxDB 集成:
InfluxDB 用于存储监控数据,便于趋势分析和报警。
优化和扩展
优化监控配置:
合理设置检查间隔,确保监控不会过载或过于频繁。
使用模板和继承:
复用模板和使用继承减少重复配置,保持配置简洁。
监控数据存储:
选择适当的存储方式,如InfluxDB,方便数据分析和趋势监控。
集成自动化工具:
使用Ansible或Chef进行自动化部署和配置,简化Nagios的管理流程。
通过以上步骤,您可以配置Nagios进行服务器监控,确保系统的稳定和高效运行。




