Nagios Core + 插件 + Web 界面

Nagios Core + 插件 + Web 界面

整理一个完整的安装步骤,包含依赖安装、源码编译、Web UI 配置,最后加上 agent (NRPE) 的安装。


一、安装依赖

bash 复制代码
sudo apt update
sudo apt install -y autoconf gcc make unzip apache2 \
   php libapache2-mod-php libgd-dev libssl-dev \
   daemon wget unzip tar build-essential snmp \
   libnet-snmp-perl gettext

二、创建 Nagios 用户和组

bash 复制代码
sudo useradd nagios
sudo groupadd nagcmd
sudo usermod -a -G nagcmd nagios
sudo usermod -a -G nagcmd www-data

三、下载并安装 Nagios Core

  1. 获取最新版本(以 4.5.9 为例,版本可能会更新)
bash 复制代码
cd /tmp
wget https://github.com/NagiosEnterprises/nagioscore/releases/download/nagios-4.5.9/nagios-4.5.9.tar.gz
tar xvf nagios-4.5.9.tar.gz
cd nagios-4.5.9
  1. 编译 & 安装
bash 复制代码
./configure --with-command-group=nagcmd
make all
sudo make install
sudo make install-groups-users
sudo make install-daemoninit
sudo make install-commandmode
sudo make install-config
sudo make install-webconf

四、设置 Web 登录用户

bash 复制代码
sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

(输入两次密码,后续 Web 登录用)


五、安装 Nagios 插件

bash 复制代码
cd /tmp
wget https://github.com/nagios-plugins/nagios-plugins/releases/download/release-2.4.9/nagios-plugins-2.4.9.tar.gz
tar xvf nagios-plugins-2.4.9.tar.gz
cd nagios-plugins-2.4.9

./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
sudo make install

六、启动服务

bash 复制代码
sudo systemctl enable apache2
sudo systemctl enable nagios
sudo systemctl start apache2
sudo systemctl start nagios

七、访问 Web 界面

浏览器打开:

复制代码
http://<服务器IP>/nagios

用户名:nagiosadmin

密码:安装时设置的那个


八、安装 NRPE(远程监控插件,可选)

如果你要监控远程主机:

bash 复制代码
sudo apt install nagios-nrpe-server nagios-plugins -y

配置文件路径:

复制代码
/etc/nagios/nrpe.cfg

编辑允许访问的 IP:

复制代码
allowed_hosts=127.0.0.1,192.168.1.100

重启服务:

bash 复制代码
sudo systemctl restart nagios-nrpe-server

⚡ 至此 Nagios Core + 插件 + Web 界面在 Ubuntu 24.04 上就安装好了。


Nagios Core + Plugins + NRPE(一键脚本)

nagios_install.sh 脚本升级一下,增加 NRPE server + NRPE client 的安装步骤。这样:

  • Nagios 主服务器会安装 check_nrpe 插件(用于远程访问)。
  • 被监控的主机可以安装 nagios-nrpe-server(默认监听 TCP 5666)。

🔹 一键安装脚本(含 NRPE)

保存为 nagios_full_install.sh

bash 复制代码
#!/bin/bash
# Nagios Core + Plugins + NRPE 一键安装脚本
# 适配 Ubuntu 24.04

set -e

NAGIOS_VERSION="4.5.9"
PLUGINS_VERSION="2.4.9"
NAGIOS_USER="nagios"
NAGIOS_GROUP="nagcmd"
ADMIN_USER="nagiosadmin"

echo "🚀 更新系统..."
sudo apt update -y
sudo apt install -y autoconf gcc make unzip apache2 \
   php libapache2-mod-php libgd-dev libssl-dev \
   daemon wget tar build-essential snmp \
   libnet-snmp-perl gettext

echo "👤 创建用户和组..."
sudo useradd -m -s /bin/bash $NAGIOS_USER || true
sudo groupadd $NAGIOS_GROUP || true
sudo usermod -a -G $NAGIOS_GROUP $NAGIOS_USER
sudo usermod -a -G $NAGIOS_GROUP www-data

echo "📥 下载并安装 Nagios Core v$NAGIOS_VERSION..."
cd /tmp
wget -q https://github.com/NagiosEnterprises/nagioscore/releases/download/nagios-$NAGIOS_VERSION/nagios-$NAGIOS_VERSION.tar.gz
tar xvf nagios-$NAGIOS_VERSION.tar.gz
cd nagios-$NAGIOS_VERSION

./configure --with-command-group=$NAGIOS_GROUP
make all
sudo make install
sudo make install-groups-users
sudo make install-daemoninit
sudo make install-commandmode
sudo make install-config
sudo make install-webconf

echo "🔑 设置 Web 登录账号 ($ADMIN_USER)..."
sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users $ADMIN_USER

echo "📥 下载并安装 Nagios Plugins v$PLUGINS_VERSION..."
cd /tmp
wget -q https://github.com/nagios-plugins/nagios-plugins/releases/download/release-$PLUGINS_VERSION/nagios-plugins-$PLUGINS_VERSION.tar.gz
tar xvf nagios-plugins-$PLUGINS_VERSION.tar.gz
cd nagios-plugins-$PLUGINS_VERSION

./configure --with-nagios-user=$NAGIOS_USER --with-nagios-group=$NAGIOS_USER
make
sudo make install

echo "📥 安装 NRPE (服务端 + 客户端插件)..."
sudo apt install -y nagios-nrpe-server nagios-plugins nagios-nrpe-plugin

echo "⚙️ 配置 NRPE..."
NRPE_CFG="/etc/nagios/nrpe.cfg"
sudo sed -i "s/^allowed_hosts=.*/allowed_hosts=127.0.0.1,$(hostname -I | awk '{print $1}')/" $NRPE_CFG

echo "⚙️ 启动服务..."
sudo systemctl enable apache2
sudo systemctl enable nagios
sudo systemctl enable nagios-nrpe-server
sudo systemctl restart apache2
sudo systemctl restart nagios
sudo systemctl restart nagios-nrpe-server

echo "✅ Nagios + Plugins + NRPE 安装完成!"
echo "🌍 访问地址: http://$(hostname -I | awk '{print $1}')/nagios"
echo "👤 用户名: $ADMIN_USER"
echo "🔑 密码: 你刚刚设置的密码"
echo "📡 NRPE 已启用 (TCP 5666),允许 Nagios 主机访问。"

🔹 使用方法

bash 复制代码
chmod +x nagios_full_install.sh
./nagios_full_install.sh

🔹 验证 NRPE 是否工作

在 Nagios 主服务器上执行:

bash 复制代码
/usr/local/nagios/libexec/check_nrpe -H <被监控主机IP>

正常返回类似:

复制代码
NRPE v4.0.3

说明 NRPE 通信正常 ✅。


Nagios + NRPE 的示例配置

监控一台 Linux 主机的 磁盘 / CPU / 内存

🔹 一、Nagios 主服务器配置

Nagios 的配置文件路径在:

复制代码
/usr/local/nagios/etc/

主要有三个文件夹:

  • objects/ → 默认配置文件
  • nagios.cfg → 主配置文件
  • servers/ → (建议新建,用来放远程主机的配置)

1. 编辑主配置文件

告诉 Nagios 去加载 servers/ 目录里的配置:

bash 复制代码
sudo nano /usr/local/nagios/etc/nagios.cfg

找到这行(如果没有就加上):

复制代码
cfg_dir=/usr/local/nagios/etc/servers

保存后退出。

2. 新建配置目录
bash 复制代码
sudo mkdir -p /usr/local/nagios/etc/servers
3. 添加一台被监控主机(示例:192.168.1.50)

新建配置文件:

bash 复制代码
sudo nano /usr/local/nagios/etc/servers/client1.cfg

内容示例:

cfg 复制代码
define host {
    use                     linux-server
    host_name               client1
    alias                   My First Client
    address                 192.168.1.50
    max_check_attempts      5
    check_period            24x7
    notification_interval   30
    notification_period     24x7
}

# 检查 NRPE 通信是否正常
define service {
    use                     generic-service
    host_name               client1
    service_description     NRPE Connection
    check_command           check_nrpe!check_load
}

# 检查远程磁盘
define service {
    use                     generic-service
    host_name               client1
    service_description     Disk Usage (/)
    check_command           check_nrpe!check_disk
}

# 检查远程 CPU Load
define service {
    use                     generic-service
    host_name               client1
    service_description     CPU Load
    check_command           check_nrpe!check_load
}

# 检查远程内存 (需要在客户端自定义命令)
define service {
    use                     generic-service
    host_name               client1
    service_description     Memory Usage
    check_command           check_nrpe!check_mem
}

🔹 二、被监控主机(192.168.1.50)配置 NRPE

NRPE 配置文件:

复制代码
/etc/nagios/nrpe.cfg
  1. 修改允许访问的主机:
ini 复制代码
allowed_hosts=127.0.0.1,192.168.1.100

(假设 Nagios 服务器是 192.168.1.100

  1. 定义要执行的命令(检查内存需要手动添加):
    nrpe.cfg 末尾添加:
ini 复制代码
command[check_mem]=/usr/lib/nagios/plugins/check_mem -w 20 -c 10

⚠️ 默认 nagios-plugins 里没有 check_mem,你可以用 check_swap 或者自己放个脚本。

比如安装一个常用的脚本:

bash 复制代码
wget -O /usr/lib/nagios/plugins/check_mem https://raw.githubusercontent.com/justintime/nagios-plugins/master/check_mem/check_mem.pl
chmod +x /usr/lib/nagios/plugins/check_mem
  1. 重启 NRPE:
bash 复制代码
sudo systemctl restart nagios-nrpe-server

🔹 三、Nagios 主服务器测试

在 Nagios 主服务器上测试:

bash 复制代码
/usr/local/nagios/libexec/check_nrpe -H 192.168.1.50 -c check_load

如果正常会返回类似:

复制代码
OK - load average: 0.01, 0.05, 0.10

🔹 四、重启 Nagios

最后在主服务器上重启 Nagios:

bash 复制代码
sudo systemctl restart nagios

现在 Web 界面里就能看到 client1 这台主机及其 磁盘/CPU/内存 的监控数据了 ✅。


最小化 NRPE 客户端配置脚本

  • 安装 NRPE server
  • 配置 nrpe.cfg(允许 Nagios 主服务器访问)
  • 安装常用监控插件(磁盘、CPU、内存)
  • 启动 NRPE

🔹 NRPE 客户端一键脚本

保存为 nrpe_client_install.sh

bash 复制代码
#!/bin/bash
# NRPE 客户端最小化安装脚本
# 适配 Ubuntu 24.04
# 使用: sudo ./nrpe_client_install.sh <Nagios_Server_IP>

set -e

if [ -z "$1" ]; then
  echo "❌ 用法: $0 <Nagios_Server_IP>"
  exit 1
fi

NAGIOS_SERVER_IP=$1
NRPE_CFG="/etc/nagios/nrpe.cfg"

echo "🚀 更新系统..."
sudo apt update -y

echo "📥 安装 NRPE 和插件..."
sudo apt install -y nagios-nrpe-server nagios-plugins wget perl

echo "⚙️ 配置 NRPE (允许 Nagios 服务器 $NAGIOS_SERVER_IP 访问)..."
sudo sed -i "s/^allowed_hosts=.*/allowed_hosts=127.0.0.1,$NAGIOS_SERVER_IP/" $NRPE_CFG

echo "🛠️ 添加自定义检查命令 (内存监控)..."
if ! grep -q "check_mem" $NRPE_CFG; then
  sudo bash -c "cat >> $NRPE_CFG" <<EOF

# 内存检查命令
command[check_mem]=/usr/lib/nagios/plugins/check_mem -w 20 -c 10
EOF
fi

echo "📥 下载 check_mem 插件..."
if [ ! -f /usr/lib/nagios/plugins/check_mem ]; then
  sudo wget -q -O /usr/lib/nagios/plugins/check_mem https://raw.githubusercontent.com/justintime/nagios-plugins/master/check_mem/check_mem.pl
  sudo chmod +x /usr/lib/nagios/plugins/check_mem
fi

echo "🔄 重启 NRPE 服务..."
sudo systemctl enable nagios-nrpe-server
sudo systemctl restart nagios-nrpe-server

echo "✅ NRPE 客户端安装完成!"
echo "📡 监听端口: 5666"
echo "👉 请在 Nagios 主服务器上测试:"
echo "    /usr/local/nagios/libexec/check_nrpe -H $(hostname -I | awk '{print $1}')"

🔹 使用方法

  1. 在被监控主机上保存脚本:
bash 复制代码
nano nrpe_client_install.sh
  1. 赋予执行权限:
bash 复制代码
chmod +x nrpe_client_install.sh
  1. 执行安装(假设 Nagios 服务器 IP 是 192.168.1.100):
bash 复制代码
sudo ./nrpe_client_install.sh 192.168.1.100

🔹 脚本完成后

  • 被监控主机 NRPE 端口 5666 开放,允许 Nagios 服务器访问

  • 常用检查命令可用:

    • check_disk(磁盘使用率)
    • check_load(CPU 负载)
    • check_mem(内存使用情况)

在 Nagios 主服务器上测试:

bash 复制代码
/usr/local/nagios/libexec/check_nrpe -H 192.168.1.50 -c check_load
/usr/local/nagios/libexec/check_nrpe -H 192.168.1.50 -c check_disk
/usr/local/nagios/libexec/check_nrpe -H 192.168.1.50 -c check_mem

相关推荐
<但凡.4 小时前
Linux修炼:基础IO(二)
linux·运维·服务器·1024程序员节
wodongx1234 小时前
从一开始部署Android项目Sonarqube的自动化扫码+通知+增量扫描功能(Win环境、Docker,基于Jenkins)
运维·docker·jenkins·1024程序员节
小志biubiu5 小时前
linux_缓冲区及简单libc库【Ubuntu】
linux·运维·服务器·c语言·学习·ubuntu·c
java_logo6 小时前
Docker 部署 Elasticsearch 全流程手册
大数据·运维·mongodb·elasticsearch·docker·容器
TG_yunshuguoji6 小时前
亚马逊云渠道商:AWS实例自动替换策略在哪里设置?
运维·服务器·云计算·aws
Stay Passion6 小时前
Docker 组件:Docker Swarm
运维·docker·容器
qyhua7 小时前
从零部署自维护版 Uptime Kuma:Node.js + PM2 + Nginx 全链路实战指南
运维·nginx·node.js
JZC_xiaozhong7 小时前
OA 审批流与业务流程引擎区别:企业流程自动化进阶
运维·自动化·流程图·bpm·业务流程管理·流程设计可视化·流程监控
云飞云共享云桌面8 小时前
苏州精密机械制造企业一台云服务器带8个SolidWorks研发
大数据·运维·服务器·自动化·制造