Nagios 是一种流行的开源应用程序,用于持续监控系统、网络、服务和应用程序。 它不断监控机器和各种服务的状态。 如果出现任何问题,它会提供早期警告,以便管理员可以采取必要的措施。 Nagios 使用称为插件的外部程序对本地和主机执行所有检查。 它还为您提供了一个 Web 界面,允许查看主机和服务的状态、历史记录、日志和生成报告。
在这篇文章中,我们将解释如何在 Linux 上安装和配置 Nagios 并监控其他 Linux 服务器的运行状况。 我们将使用两台 Debian 10 (Buster) 服务器; 都在同一个网络上。 在监控服务器上,我们将安装 Nagios 核心、Nagios 插件和 check_nrpe 插件。 在远程主机上,我们将安装 Nagios 插件和 NRPE。
术语
让我们了解一些有助于您理解配置的术语:
主持人:是物理机、工作站、网络设备等需要被监控的设备。
服务:是主机上被监控的服务或资源,如HTTP、SMTP、POP、DNS、登录用户数、内存使用等。
Nagios 插件: 这些是检查主机或服务状态并验证它们是否正常工作的脚本。 有一些预定义的插件可以检查处理器负载、磁盘使用情况、ping 速率等基本资源。插件通常位于 /usr/local/nagios/libexec 目录。
NRPE(Nagios 远程插件执行器)插件: NRPE 附加组件在远程 Linux 主机上执行插件,然后允许 Nagios 密切关注本地资源(磁盘空间、内存使用情况等)。 NRPE 附加组件包括:
- NRPE 守护进程– 它运行在需要监控的远程 Linux/Unix 主机上
- check_nrpe 插件– 由 Nagios 监控服务器使用
你必须有 sudo 两个服务器上的权限。 我们机器的详细信息如下:
Nagios 监控服务器:
- 主机名:nagios-server,
- IP地址:192.168.72.158
Nagios 主机:
- 主机名:客户端
- IP地址:192.168.72.159
第 1 步 – 在监控服务器上安装 Nagios Core
在 Nagios 监控服务器上,按照以下步骤下载并安装 Nagios 核心。
1. 安装先决条件
首先,我们需要在 Nagios 监控服务器上安装 Prerequisites。 为此,请在终端中使用以下命令更新软件包列表:
$ sudo apt update
然后安装所需的包:
$ sudo apt install -y autoconf gcc libc6 make wget unzip apache2 php libapache2-mod-php7.4 libgd-dev openssl libssl-dev
2. 下载 Nagios 源码
导航到 /tmp 目录:
$ cd /tmp
然后使用以下命令下载 Nagios 源代码 wget 命令。 我们将下载当前可用的最新版 Nagios,即 4.4.6. 你可以参观纳吉奥斯 下载 寻找当前的稳定版本。
$ wget -O nagios.tar.gz https://github.com/NagiosEnterprises/nagioscore/archive/nagios-4.4.6.tar.gz
下载的文件将保存为 nagios.tar.gz 在里面 /tmp 目录。
3.编译源码
提取下载的存档 nagios.tar.gz 使用以下命令:
$ tar -xzf nagios.tar.gz
使用 光盘 命令:
$ cd nagioscore-nagios-4.4.6/
跑过 配置 脚本并指定路径 Apache 服务器配置目录:
$ ./configure --with-httpd-conf=/etc/apache2/sites-enabled
执行配置脚本后,您将在输出末尾看到以下摘要:
您的 配置 如果缺少任何先决条件,脚本可能会失败。 在这种情况下,安装缺少的先决条件并再次运行脚本。
现在使用以下命令编译 Nagios:
$ make all
4.创建用户和组
现在为 Nagios 创建用户和组。
$ sudo make install-groups-users
上面的命令将创建一个系统用户和组 Nagios。
我们还需要添加用户“www-数据”到 纳吉奥斯 团体。
$ sudo usermod -a -G nagios www-data
5. 安装二进制文件
然后要安装二进制文件,请使用以下命令:
$ sudo make install
6.安装服务/守护进程
要安装服务文件,请使用以下命令:
$ sudo make install-daemoninit
7.安装命令模式
要安装和配置外部命令文件,请使用以下命令:
$ sudo make install-commandmode
8. 安装配置文件
然后安装示例 Nagios 配置,使用以下命令:
$ sudo make install-config
9. 安装 Apache 配置文件
这将安装 Apache 配置文件,使用以下命令:
$ sudo make install-webconf
现在启用 Apache 使用以下命令的模块:
$ sudo a2enmod rewrite
sudo a2enmod cgi
为 Web 界面创建 Nagiosadmin 用户帐户:
现在我们将创建一个 Apache 可以访问 Nagios Web 界面的用户帐户。
$ sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
现在设置密码 nagiosadmin 用户帐号。 此密码将用于访问 Nagios 的 Web 界面。
然后重启 Apache 使配置更改生效:
$ sudo systemctl restart apache2
现在我们已经成功安装了 Nagios 核心引擎。
第 2 步 – 在监控服务器上安装 Nagios 插件
为了让 Nagios 核心正常工作,您需要安装 Nagios 插件。
下载 Nagios 插件
在 Nagios 服务器上,导航到 /tmp 目录:
$ cd /tmp
然后使用下载 Nagios 插件源代码 wget 命令。 我们将下载当前可用的最新版 Nagios 插件,即 2.3.3。 您可以访问 Github 页面以查找最近的稳定版本。
$ wget -O Nagios-plugins.tar.gz https://github.com/nagios-plugins/nagios-plugins/releases/download/release-2.3.3/nagios-plugins-2.3.3.tar.gz
下载的文件将保存为 Nagios-plugins.tar.gz 在里面 /tmp 目录。
编译
提取下载的存档 Nagios-plugins.tar.gz 使用以下命令:
$ tar zxf nagios-plugins.tar.gz
使用 光盘 命令:
$ cd nagios-plugins-2.3.3/
跑过 配置 脚本:
$ sudo ./configure
现在使用以下命令编译 Nagios 插件:
$ sudo make
$ sudo make install
第 3 步 – 在监控服务器上安装 check_nrpe 插件
现在我们将安装 check_nrpe 我们的 Nagios 服务器上的插件。
下载插件源
在 Nagios 服务器上,导航到 /tmp 目录:
$ cd /tmp
然后使用 wget 命令下载 check_nrpe 源代码。 我们将下载最新可用的 check_nrpe 版本,即 4.0.3。 您可以访问 Github 页面以查找最近的稳定版本。
$ wget -O Nagios-nrpe.tar.gz https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.3/nrpe-4.0.3.tar.gz
下载的文件将保存为 Nagios-nrpe.tar.gz 在里面 /tmp 目录。
编译源代码
提取下载的存档 nagios.tar.gz 使用以下命令:
$ tar -xzf Nagios-nrpe.tar.gz
使用 光盘 命令:
$ cd nrpe-4.0.3/
跑过 配置 脚本:
$ sudo ./configure
现在编译 check_nrpe 使用以下命令:
$ sudo make check_nrpe
$ sudo make install-plugin
第 4 步 – 配置 Nagios
现在,我们将配置 Nagios 主配置文件。 编辑 Nagios 配置文件 nagios.cfg 使用以下命令:
$ sudo nano /usr/local/nagios/etc/nagios.cfg
现在在文件中找到以下行并通过删除 # 从行首开始的字符。
#cfg_dir=/usr/local/nagios/etc/servers
上面的行指定了包含 Nagios 服务器将监视的所有主机的配置文件的目录。 现在保存并 close 配置文件。
现在我们将在上面定义的路径中创建目录:
$ sudo mkdir /usr/local/nagios/etc/servers
配置电子邮件联系人
现在我们将配置在发生任何事件时应通知的联系人。 使用以下命令编辑 Nagios 联系人配置:
为了从 Nagios 监控服务器接收警报,您需要配置联系人。 打开 联系人 配置文件,并指定您希望从 Nagios 接收电子邮件的电子邮件地址:
$ sudo nano /usr/local/nagios/etc/objects/contacts.cfg
在电子邮件指令中,替换 [email protected]本地主机 使用您自己的电子邮件地址,然后保存并 close 文件。
配置 check_nrpe
现在为了使用 check_nrpe 插件,我们将在 命令 配置文件。 编辑命令配置文件 命令.cfg 使用以下命令:
$ sudo nano /usr/local/nagios/etc/objects/commands.cfg
将以下行追加到末尾 命令.cfg 文件,然后保存并 close 它:
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
现在启动 Nagios 服务:
$ sudo systemctl start Nagios.service
第 5 步 – 访问 Nagios Web 界面
现在通过在任何 Web 浏览器中访问以下地址来访问 Nagios Web 界面:
https://nagios-server-ip/nagios
在我们的场景中,它将是:
https://192.168.72.158/nagios
在里面 需要身份验证 对话框,输入 nagiosadmin 作为您之前设置的用户名和密码。
登录到 Web 界面后,您将看到默认的 Nagios 网页。 前往 主机 左侧边栏中的选项卡以查看受监控的主机。
目前,您只会看到一个主机“本地主机” 这是 Nagios 服务器本身。 为了监控其他主机,您需要安装 NRPE 守护进程。
第 6 步 – 远程主机设置
现在你必须安装 Nagios 插件 和 NRPE 在需要在 Nagios 服务器上监控的主机上。
1. 在远程主机上安装 Nagios 插件
在需要监控的远程主机(客户端)中,按照以下步骤安装 Nagios 插件。
1.首先更新apt:
$ sudo apt update
2. 然后发出以下命令来安装所需的软件包:
$ sudo apt install autoconf gcc libmcrypt-dev make libssl-dev dc build-essential gettext
3. 现在,导航到 /tmp 并下载 Nagios 插件。
$ cd /tmp
$ wget -O Nagios-plugins.tar.gz https://github.com/nagios-plugins/nagios-plugins/releases/download/release-2.3.3/nagios-plugins-2.3.3.tar.gz
4. 解压下载的存档:
$ tar -zxf nagios-plugins.tar.gz
5. 进入解压文件夹并运行 配置 脚本:
$ cd nagios-plugins-2.3.3//
$ sudo ./configure
6. 编译插件:
$ sudo make
$ sudo make install
2. 在远程主机上安装 NRPE 守护程序
按照以下步骤在远程主机上安装 NRPE。
1.首先更新apt:
$ sudo apt update
2. 发出以下命令以安装先决条件:
$ sudo apt install -y autoconf automake gcc libc6 libmcrypt-dev make libssl-dev
3. 现在导航到 /tmp 并下载 NRPE。
$ cd /tmp
$ wget -O nrpe.tar.gz https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.3/nrpe-4.0.3.tar.gz
4. 解压下载的存档:
$ tar xzf nrpe.tar.gz
5. 进入解压后的文件夹并运行配置脚本:
$ sudo ./configure --enable-command-args
6. 使用以下命令编译 NRPE:
$ sudo make all
$ make install-groups-users
$ sudo make install
$ sudo make install-config
$ sudo make install-init
3.配置防火墙
现在,如果您的远程主机上正在运行防火墙,您将需要通过它打开端口 5666(由 NRPE 使用)。
$ sudo ufw allow 5666/tcp
4. 更新 NRPE 配置
现在在远程主机中打开 NRPE 配置文件:
$ sudo nano /usr/local/nagios/etc/nrpe.cfg
您将需要查找并修改以下条目:
添加客户端IP地址:
server_address=192.168.72.159
Add Nagios server IP address:
allowed_hosts=127.0.0.1,192.168.72.158
另外,更换 /dev/vda1 使用您的根文件系统:
command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda1
然后启动NRPE服务:
$ sudo systemctl start nrpe.service
现在检查 NRPE 服务是否正常运行:
$ sudo systemctl status nrpe.service
以下输出中的活动(运行)表明该服务已成功运行,没有任何问题。 您还可以看到 NRPE 允许从 192.168.72.158 这是 Nagios 服务器的 IP 地址。
现在检查是否 check_nrpe 在 Nagios 服务器上 可以与 远程主机上的 NRPE发出这个命令 Nagios 服务器:
$ /usr/local/nagios/libexec/check_nrpe -H remote_host_ip
您应该会收到以下类似的输出(NRPE 版本号)。
第 7 步 – 将主机配置添加到 Nagios 服务器
现在在 Nagios 监控服务器中,您需要在 /usr/local/nagios/etc/servers/ 用于您需要监控的所有远程主机。
对于我们的主机,我们将创建一个新的配置文件 客户端.cfg:
$ sudo nano /usr/local/nagios/etc/servers/client.cfg
代替 客户 使用您的主机名:
现在添加 主机定义 到新的配置文件替换值 主机名 使用远程主机名, 别名 带有简短的描述,并且 地址 与远程主机的 IP 地址。
此配置将检查主机是否启动或关闭。
define host {
use linux-server
host_name client
alias client machine
address 192.168.72.159
max_check_attempts 5
}
现在添加 服务定义 到用于监控远程主机的配置文件。 替换的值 主机名 与远程主机名。
笔记: 这些服务定义将使用在 /usr/local/nagios/etc/nrpe.cfg 远程主机上的文件。
添加以下服务块以监控 CPU负载 在远程主机上
define service {
use generic-service
host_name client
service_description CPU Load
check_command check_nrpe!check_load
}
c on the remote host:
define service{
use generic-service
host_name client
service_description Total Processes
check_command check_nrpe!check_total_procs
}
添加以下服务块进行监控 磁盘使用情况 在远程主机上:
define service {
use generic-service
host_name client
service_description Check Disk
check_command check_nrpe!check_disk
}
添加以下服务块进行监控 用户数 当前登录 在远程主机上:
define service {
use generic-service
host_name client
service_description Current Users
check_command check_nrpe!check_users
}
现在保存并 close 配置文件。
重新启动 Nagios 服务以应用配置更改:
$ sudo systemctl restart Nagios
现在使用 https://nagios-server-ip/nagios。 稍等片刻,您的远程主机将被添加到 Nagios Web 界面。
去 主机 从左侧导航栏中,您将看到那里列出了您的远程主机。
然后去 服务 选项卡,您将看到您为监控配置的主机的所有服务的状态。
在这篇文章中,我们解释了如何在 Linux 上安装和配置 Nagios 监控解决方案。 我们还解释了如何设置远程主机进行监控。 现在,您可以轻松监控 Linux 主机的运行状况以及在其上运行的服务。
如果您有兴趣使用 Zabbix 监控您的服务器,请单击此处。