如何在 Linux 上安装和配置 Nagios

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 版本号)。

如何在 Linux 上安装 Nagios

第 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 配置文件。

如何在 Linux 上安装 Nagios

重新启动 Nagios 服务以应用配置更改:

$ sudo systemctl restart Nagios

现在使用 https://nagios-server-ip/nagios。 稍等片刻,您的远程主机将被添加到 Nagios Web 界面。

主机 从左侧导航栏中,您将看到那里列出了您的远程主机。

如何在 Linux 上安装 Nagios

然后去 服务 选项卡,您将看到您为监控配置的主机的所有服务的状态。

如何在 Linux 上安装 Nagios

在这篇文章中,我们解释了如何在 Linux 上安装和配置 Nagios 监控解决方案。 我们还解释了如何设置远程主机进行监控。 现在,您可以轻松监控 Linux 主机的运行状况以及在其上运行的服务。

如果您有兴趣使用 Zabbix 监控您的服务器,请单击此处。