如何在 Ubuntu 14.04 上安装 Nagios 4 和监控服务器如何在 Ubuntu 14.04 上安装 Nagios 4 和监控服务器如何在 Ubuntu 14.04 上安装 Nagios 4 和监控服务器如何在 Ubuntu 14.04 上安装 Nagios 4 和监控服务器
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Ubuntu 14.04 上安装 Nagios 4 和监控服务器

介绍

在本教程中,我们将介绍如何在 Ubuntu 14.04 上安装非常流行的开源监控系统 Nagios 4。我们将介绍一些基本配置,以便您能够通过 Web 界面监控主机资源。我们还将利用 Nagios Remote Plugin Executor (NRPE) 作为代理安装在远程主机上,以监控其本地资源。

Nagios 对于保持服务器清单以及确保关键服务正常运行非常有用。使用 Nagios 等监控系统是任何生产服务器环境的必备工具。

先决条件

要学习本教程,您必须在将运行 Nagios 的 Ubuntu 14.04 服务器上拥有超级用户权限。理想情况下,您将使用具有超级用户权限的非根用户。如果您在设置方面需要帮助,请按照本教程中的步骤 1 到 3 进行操作:使用 Ubuntu 14.04 进行初始服务器设置。

还需要 LAMP 堆栈。如果您需要进行设置,请按照本教程进行操作:如何在 Ubuntu 14.04 上安装 Linux、Apache、MySQL、PHP (LAMP) 堆栈。

本教程假设您的服务器启用了专用网络。如果没有,只需将所有对私有 IP 地址的引用替换为公共 IP 地址。

现在我们已经解决了先决条件,让我们继续安装 Nagios 4。

安装 Nagios 4

本节将介绍如何在监控服务器上安装 Nagios 4。您只需完成此部分一次。

创建 Nagios 用户和组

我们必须创建一个将运行 Nagios 进程的用户和组。创建一个 \nagios 用户和 \nagcmd 组,然后使用以下命令将用户添加到组中:

  1. sudo useradd nagios
  2. sudo groupadd nagcmd
  3. sudo usermod -a -G nagcmd nagios

安装构建依赖

因为我们是从源代码构建 Nagios Core,所以我们必须安装一些开发库来完成构建。在此期间,我们还将安装 apache2-utils,它将用于设置 Nagios Web 界面。

首先,更新您的 apt-get 包列表:

  1. sudo apt-get update

然后安装需要的包:

  1. sudo apt-get install build-essential libgd2-xpm-dev openssl libssl-dev xinetd apache2-utils unzip

让我们现在安装 Nagios。

安装 Nagios 核心

下载最新稳定版 Nagios Core 的源代码。转到 Nagios 下载页面,然后单击表单下方的跳过下载链接。复制最新稳定版本的链接地址,以便您可以将其下载到您的 Nagios 服务器。

在撰写本文时,最新的稳定版本是 Nagios 4.1.1。使用 curl 将其下载到您的主目录:

cd ~
curl -L -O https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.1.1.tar.gz

使用以下命令提取 Nagios 存档:

  1. tar xvf nagios-*.tar.gz

然后切换到解压后的目录:

  1. cd nagios-*

在构建 Nagios 之前,我们必须对其进行配置。如果要将其配置为使用 postfix(可以使用 apt-get 安装),请将 --with-mail=/usr/sbin/sendmail 添加到以下命令:

  1. ./configure --with-nagios-group=nagios --with-command-group=nagcmd

现在用这个命令编译 Nagios:

  1. make all

现在我们可以运行这些 make 命令来安装 Nagios、init 脚本和示例配置文件:

  1. sudo make install
  2. sudo make install-commandmode
  3. sudo make install-init
  4. sudo make install-config
  5. sudo /usr/bin/install -c -m 644 sample-config/httpd.conf /etc/apache2/sites-available/nagios.conf

为了通过 Web 界面向 Nagios 发出外部命令,我们必须将 Web 服务器用户 www-data 添加到 nagcmd 组:

  1. sudo usermod -G nagcmd www-data

安装 Nagios 插件

在这里找到最新版本的 Nagios 插件:Nagios 插件下载。复制最新版本的链接地址,复制链接地址,方便下载到你的Nagios服务器。

在撰写本文时,最新版本是 Nagios Plugins 2.1.1。使用 curl 将其下载到您的主目录:

cd ~
curl -L -O http://nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz

使用此命令提取 Nagios 插件存档:

  1. tar xvf nagios-plugins-*.tar.gz

然后切换到解压后的目录:

  1. cd nagios-plugins-*

在构建 Nagios 插件之前,我们必须对其进行配置。使用此命令:

  1. ./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl

现在用这个命令编译 Nagios 插件:

  1. make

然后用这个命令安装它:

  1. sudo make install

安装 NRPE

在 NRPE 下载页面找到 NRPE 最新稳定版本的源代码。将最新版本下载到您的 Nagios 服务器。

在撰写本文时,最新版本是 2.15。使用 curl 将其下载到您的主目录:

  1. cd ~
  2. curl -L -O http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz

使用以下命令提取 NRPE 存档:

  1. tar xvf nrpe-*.tar.gz

然后切换到解压后的目录:

  1. cd nrpe-*

使用以下命令配置 NRPE:

  1. ./configure --enable-command-args --with-nagios-user=nagios --with-nagios-group=nagios --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnu

现在使用以下命令构建并安装 NRPE 及其 xinetd 启动脚本:

  1. make all
  2. sudo make install
  3. sudo make install-xinetd
  4. sudo make install-daemon-config

在编辑器中打开 xinetd 启动脚本:

  1. sudo vi /etc/xinetd.d/nrpe

通过将 Nagios 服务器的私有 IP 地址添加到末尾来修改 only_from 行(替换为服务器的实际 IP 地址):

only_from = 127.0.0.1 10.132.224.168

保存并退出。只允许 Nagios 服务器与 NRPE 通信。

重启xinetd服务启动NRPE:

  1. sudo service xinetd restart

现在 Nagios 4 已经安装好了,我们需要配置它。

配置 Nagios

现在让我们执行初始 Nagios 配置。您只需在 Nagios 服务器上执行一次此部分。

组织 Nagios 配置

在您喜欢的文本编辑器中打开主要的 Nagios 配置文件。我们将使用 vi 来编辑文件:

sudo vi /usr/local/nagios/etc/nagios.cfg

现在通过删除 # 来取消注释这一行:

#cfg_dir=/usr/local/nagios/etc/servers

保存并退出。

现在创建将存储您将监视的每个服务器的配置文件的目录:

sudo mkdir /usr/local/nagios/etc/servers

配置 Nagios 联系人

在您喜欢的文本编辑器中打开 Nagios 联系人配置。我们将使用 vi 来编辑文件:

sudo vi /usr/local/nagios/etc/objects/contacts.cfg

找到电子邮件指令,并将其值(突出显示的部分)替换为您自己的电子邮件地址:

email                           nagios@localhost        ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******

保存并退出。

配置 check_nrpe 命令

让我们在 Nagios 配置中添加一个新命令:

  1. sudo vi /usr/local/nagios/etc/objects/commands.cfg

将以下内容添加到文件末尾:

define command{
        command_name check_nrpe
        command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

保存并退出。这允许您在 Nagios 服务定义中使用 check_nrpe 命令。

配置阿帕奇

启用 Apache 重写和 cgi 模块:

sudo a2enmod rewrite
sudo a2enmod cgi

使用 htpasswd 创建一个名为 \nagiosadmin 的管理员用户,该用户可以访问 Nagios Web 界面:

sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

在提示符下输入密码。请记住此密码,因为您将需要它来访问 Nagios Web 界面。

注意:如果您创建的用户未命名为 \nagiosadmin,则需要编辑 /usr/local/nagios/etc/cgi.cfg 并将所有 \nagiosadmin 引用更改为您创建的用户。

现在创建一个 nagios.conf 的符号链接到 sites-enabled 目录:

sudo ln -s /etc/apache2/sites-available/nagios.conf /etc/apache2/sites-enabled/

Nagios 已准备好启动。让我们这样做,然后重新启动 Apache:

sudo service nagios start
sudo service apache2 restart

要使 Nagios 在服务器启动时启动,请运行以下命令:

sudo ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios

可选:通过 IP 地址限制访问

如果要限制可以访问 Nagios Web 界面的 IP 地址,则需要编辑 Apache 配置文件:

sudo vi /etc/apache2/sites-available/nagios.conf

通过在它们前面添加 # 符号找到并注释以下两行:

Order allow,deny
Allow from all

然后通过删除 # 符号取消注释以下行,并在 Allow from 行中添加您要允许的 IP 地址或范围(以空格分隔):

#  Order deny,allow
#  Deny from all
#  Allow from 127.0.0.1

由于这些行将在配置文件中出现两次,因此您需要再次执行这些步骤。

保存并退出。

现在重新启动 Apache 以使更改生效:

sudo service nagios restart
sudo service apache2 restart

Nagios 现在正在运行,所以让我们尝试登录。

访问 Nagios Web 界面

打开您最喜欢的网络浏览器,然后转到您的 Nagios 服务器(用 IP 地址或主机名替换突出显示的部分):

http://nagios_server_public_ip/nagios

因为我们将 Apache 配置为使用 htpasswd,所以您必须输入之前创建的登录凭据。我们使用 \nagiosadmin 作为用户名:

验证后,您将看到默认的 Nagios 主页。单击左侧导航栏中的 Hosts 链接,查看 Nagios 正在监控哪些主机:

如您所见,Nagios 仅监控“localhost”或其自身。

让我们用 Nagios 监控另一台主机吧!

使用 NRPE 监控主机

在本节中,我们将向您展示如何向 Nagios 添加新主机,以便对其进行监控。对您希望监控的每台服务器重复此部分。

在您要监控的服务器上,更新 apt-get:

sudo apt-get update

现在安装 Nagios 插件和 NRPE:

sudo apt-get install nagios-plugins nagios-nrpe-server

配置允许的主机

现在,让我们更新 NRPE 配置文件。在你最喜欢的编辑器中打开它(我们使用的是 vi):

sudo vi /etc/nagios/nrpe.cfg

找到 allowed_hosts 指令,并将 Nagios 服务器的私有 IP 地址添加到以逗号分隔的列表中(用它代替突出显示的示例):

allowed_hosts=127.0.0.1,10.132.224.168

保存并退出。这会将 NRPE 配置为通过其私有 IP 地址接受来自 Nagios 服务器的请求。

配置允许的 NRPE 命令

查找根文件系统的名称(因为它是我们要监控的项目之一):

df -h /

我们将使用 NRPE 配置中的文件系统名称来监控您的磁盘使用情况(可能是 /dev/vda)。现在打开 nrpe.cfg 进行编辑:

sudo vi /etc/nagios/nrpe.cfg

NRPE 配置文件很长而且注释很多。您需要查找和修改几行:

  • server_address:设置为本主机的私有IP地址
  • allowed_hosts:设置为您的 Nagios 服务器的私有 IP 地址
  • 命令[check_hda1]:将/dev/hda1 更改为您的根文件系统名称

上述三行应如下所示(替换适当的值):

server_address=client_private_IP
allowed_hosts=nagios_server_private_IP
command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/vda

请注意,如果 Nagios 服务器配置为使用它们,此文件中定义的其他几个“命令”将运行。另请注意,NRPE 将侦听端口 5666,因为设置了 server_port=5666 . 如果您有任何防火墙阻止该端口,请确保将其打开到您的 Nagios 服务器。

保存并退出。

重启NRPE

重新启动 NRPE 以使更改生效:

sudo service nagios-nrpe-server restart

在要监控的主机上完成安装和配置 NRPE 后,您必须将这些主机添加到 Nagios 服务器配置中,然后它才会开始监控它们。

将主机添加到 Nagios 配置

在您的 Nagios 服务器上,为您要在 /usr/local/nagios/etc/servers/ 中监视的每个远程主机创建一个新的配置文件。将突出显示的单词“yourhost”替换为您的主机名:

sudo vi /usr/local/nagios/etc/servers/yourhost.cfg

添加以下主机定义,将 host_name 值替换为您的远程主机名(示例中为 \web-1”),将 alias 值替换为主机描述,以及带有远程主机私有 IP 地址的 address 值:

define host {
        use                             linux-server
        host_name                       yourhost
        alias                           My first Apache server
        address                         10.132.234.52
        max_check_attempts              5
        check_period                    24x7
        notification_interval           30
        notification_period             24x7
}

使用上面的配置文件,Nagios 将只监视主机是 up 还是 down。如果这对您来说足够了,请保存并退出,然后重新启动 Nagios。如果您想监控特定服务,请继续阅读。

为您要监视的服务添加任何这些服务块。请注意,check_command 的值决定了将要监视的内容,包括状态阈值。以下是您可以添加到主机配置文件中的一些示例:

平:

define service {
        use                             generic-service
        host_name                       yourhost
        service_description             PING
        check_command                   check_ping!100.0,20%!500.0,60%
}

SSH(notifications_enabled 设置为 0 禁用服务通知):

define service {
        use                             generic-service
        host_name                       yourhost
        service_description             SSH
        check_command                   check_ssh
        notifications_enabled           0
}

如果您不确定 use generic-service 是什么意思,它只是继承默认定义的名为“generic-service”的服务模板的值。

现在保存并退出。重新加载您的 Nagios 配置以使任何更改生效:

sudo service nagios reload

完成配置 Nagios 以监视所有远程主机后,您应该设置好了。请务必访问您的 Nagios Web 界面,并查看服务页面以查看所有受监控的主机和服务:

结论

现在您已经监控了您的主机和它们的一些服务,您可能想花一些时间来弄清楚哪些服务对您至关重要,这样您就可以开始监控它们了。您可能还想设置通知,例如,当您的磁盘利用率达到警告或临界阈值或您的主要网站关闭时,您会收到一封电子邮件,这样您就可以及时或在问题发生之前解决问题。

祝你好运!

©2015-2025 艾丽卡 support@alaica.com