在现代IT运维中,服务器监控告警系统是保障业务连续性和系统稳定性的关键。Nagios 是一款开源、功能强大且广泛使用的监控工具,特别适合部署在 Ubuntu 等 Linux 系统上。本教程将带领你从零开始,在 Ubuntu 22.04 上完整安装并配置 Nagios,即使是 Linux 运维新手也能轻松上手。
一、准备工作:更新系统并安装依赖
首先,确保你的 Ubuntu 系统是最新的,并安装必要的编译和运行依赖:
Nagios 需要专用的系统用户来运行服务: 前往官方 GitHub 下载最新版 Nagios Core(以 4.4.13 为例): 为 Nagios Web 界面设置管理员账户(例如 admin): 重启 Apache 使配置生效: Nagios 本身不包含监控逻辑,需通过插件实现。安装官方插件包: 打开浏览器,访问以下地址(将 your_server_ip 替换为你的服务器 IP): http://your_server_ip/nagios 使用之前创建的用户名(如 admin)和密码登录,即可看到 Nagios 的监控主界面。 编辑配置文件 保存后,检查配置是否正确: 若无报错,重启 Nagios 服务: 至此,你已成功在 Ubuntu 上部署了一套完整的 Nagios 监控告警系统。通过这个平台,你可以实时监控服务器的 CPU、内存、磁盘、网络服务等关键指标,并在异常时收到邮件或短信告警。掌握 Linux 运维监控工具 如 Nagios,是迈向专业 DevOps 工程师的重要一步。后续可进一步集成 NRPE、SNMP 或对接 Grafana 实现更高级的可视化。 关键词回顾:Ubuntu Nagios监控、Nagios安装教程、服务器监控告警系统、Linux运维监控工具。sudo apt updatesudo apt upgrade -ysudo apt install -y apache2 php libapache2-mod-php gcc g++ make wget unzip autoconf libc6 libgd-dev libssl-dev xinetd snmp libnet-snmp-perl gettext 二、创建 Nagios 用户和组
sudo useradd nagiossudo groupadd nagcmdsudo usermod -a -G nagcmd nagiossudo usermod -a -G nagcmd www-data 三、下载并编译安装 Nagios Core
cd /tmpwget https://github.com/NagiosEnterprises/nagioscore/archive/nagios-4.4.13.tar.gztar -xzf nagios-4.4.13.tar.gzcd nagioscore-nagios-4.4.13/./configure --with-command-group=nagcmdmake allsudo make installsudo make install-initsudo make install-configsudo make install-commandmodesudo make install-webconf 四、配置 Web 访问认证
sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users admin# 系统会提示你输入并确认密码 sudo systemctl restart apache2 五、安装 Nagios Plugins(插件)
cd /tmpwget https://github.com/nagios-plugins/nagios-plugins/releases/download/release-2.4.0/nagios-plugins-2.4.0.tar.gztar -xzf nagios-plugins-2.4.0.tar.gzcd nagios-plugins-2.4.0/./configure --with-nagios-user=nagios --with-nagios-group=nagiosmakesudo make install 六、启动 Nagios 服务并设置开机自启
sudo systemctl start nagiossudo systemctl enable nagios 七、访问 Web 界面
八、添加被监控主机(示例)
/usr/local/nagios/etc/servers/localhost.cfg
(若不存在可新建),添加如下内容监控本地主机:define host { use linux-server host_name localhost alias Localhost address 127.0.0.1}define service { use generic-service host_name localhost service_description PING check_command check_ping!100.0,20%!500.0,60%}define service { use generic-service host_name localhost service_description SSH check_command check_ssh} sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg sudo systemctl restart nagios 结语
