如何在 Ubuntu 16.04 上安装 Nagios

在本教程中,我们将向您展示如何在 Ubuntu 16.04 服务器上安装和配置 Nagios。 对于那些不知道的人,Nagios 是可用于网络和基础设施监控的开源软件。 Nagios 将监控服务器、交换机、应用程序和服务。 它会在出现问题时向系统管理员发出警报,并在问题得到纠正时发出警报。 可以监控的资源包括 CPU、内存和磁盘空间负载、日志文件、温度或硬件错误。 它可以监控HTTP、SMTP、DNS等服务的各种参数和问题,并在插件的帮助下,可以进行高度扩展。 Nagios 核心最初设计为在 Linux 下运行,尽管它也应该在大多数其他单元下运行。

本文假设您至少具备 Linux 的基本知识,知道如何使用 shell,最重要的是,您将网站托管在自己的 VPS 上。 安装非常简单,假设您在 root 帐户下运行,如果不是,您可能需要添加 ‘sudo‘ 到命令以获取 root 权限。 我将向您展示在 Ubuntu 16.04 (Xenial Xerus) 服务器上逐步安装 Nagios。

先决条件

  • 运行以下操作系统之一的服务器:Ubuntu 16.04 (Xenial Xerus),以及任何其他基于 Debian 的发行版,如 Linux Mint。
  • 建议您使用全新的操作系统安装来防止任何潜在问题。
  • 对服务器的 SSH 访问(或者如果您在桌面上,则只需打开终端)。
  • 一种 non-root sudo user或访问 root user. 我们建议充当 non-root sudo user,但是,如果您在充当 root 时不小心,可能会损害您的系统。

在 Ubuntu 16.04 上安装 Nagios

步骤 1. 首先,通过运行以下命令确保所有系统包都是最新的 apt-get 终端中的命令。

sudo apt-get update sudo apt-get upgrade

步骤 2. 安装 LAMP (Linux, ApacheMariaDB, PHP) 服务器。

需要 Ubuntu 16.04 LAMP 服务器。 如果您没有安装 LAMP,您可以在此处按照我们的指南进行操作。 此外,安装所有必需的 PHP 模块:

apt-get install php7.0 openssl perl make php7.0-gd libgd2-xpm-dev libapache2-mod-php7.0 libperl-dev libssl-dev daemon wget apache2-utils unzip

步骤 3. 为 Nagios 创建用户和组。

现在创建一个新的 Nagios 用户帐户并为此帐户设置密码:

useradd nagios groupadd nagcmd usermod -a -G nagcmd nagios usermod -a -G nagcmd www-data

步骤 4. 安装 Nagios 和插件。

首先要做的就是去 Nagios的下载页面 并下载最新的稳定版 Nagios,在撰写本文时它是 4.4.6 版:

wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.4.6.tar.gz tar -zxvf /tmp/nagios-4.4.6.tar.gz cd /tmp/nagios-4.4.6/

执行以下步骤从源代码编译 Nagios:

./configure --with-nagios-group=nagios --with-command-group=nagcmd --with-httpd_conf=/etc/apache2/sites-enabled/ make all make install make install-init make install-config make install-commandmode make install-webconf

在接下来的步骤中,下载最新的 nagios 插件源 并使用以下命令安装:

wget https://www.nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz tar xzf nagios-plugins-2.1.1.tar.gz cd nagios-plugins-2.1.1 ./configure --with-nagios-user=nagios --with-nagios-group=nagios make make install

步骤 5. 配置 Nagios。

编辑 /usr/local/nagios/etc/objects/contacts.cfg 使用您喜欢的编辑器配置文件,并将与 nagiosadmin 联系人定义关联的电子邮件地址更改为您希望用于接收警报的地址。

nano /usr/local/nagios/etc/objects/contacts.cfg

更改电子邮件地址字段以接收通知:

[...] define contact{ contact_name nagiosadmin ; Short name of userus generic-contact ; Inherit default values from generic-contact template (defined above) alias Nagios Admin ; Full name of useremail [email protected] ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ****** [...]

步骤 6. 配置 Apache Nagios 的网络服务器。

现在创建 Nagios apache2 配置文件:

nano /etc/apache2/sites-enabled/nagios.conf

如果您想从特定 IP 系列访问 Nagios 管理控制台,请编辑以下行,在这里,我只想允许从 192.168.1.0/24 系列访问 Nagios 管理控制台:

[...] ## Comment the following lines ## #   Order allow,deny #   Allow from all  ## Uncomment and Change lines as shown below ## Order deny,allow Deny from all Allow from 127.0.0.1 192.168.1.0/24 [...]

使能够 Apache的重写和 CGI​​ 模块:

sudo a2enmod rewrite sudo a2enmod cgi

配置 Apache 验证:

我们需要为用户 nagiosadmin 设置密码。 此用户名将用于访问 Web 界面,因此请务必记住您将在此处输入的密码。 运行以下命令设置密码并输入两次密码:

# sudo htpasswd -s -c /usr/local/nagios/etc/htpasswd.users nagiosadmin New password: Re-type new password: Adding password for user nagiosadmin

重新开始 Apache 使更改生效:

systemctl restart apache2

步骤 7. 验证并启动 Nagios 服务。

接下来,我们要让 Nagios 在启动时启动,所以首先验证配置文件没有错误运行以下命令:

sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

你应该得到输出:

[...] Checking objects...     Checked 8 services.     Checked 1 hosts.     Checked 1 host groups.     Checked 0 service groups.     Checked 1 contacts.     Checked 1 contact groups.     Checked 24 commands.     Checked 5 time periods.     Checked 0 host escalations.     Checked 0 service escalations. Checking for circular paths...     Checked 1 hosts     Checked 0 service dependencies     Checked 0 host dependencies     Checked 5 timeperiods Checking global event handlers... Checking obsessive compulsive processor commands... Checking misc settings...  Total Warnings: 0 Total Errors:   0  Things look okay - No serious problems were detected during the pre-flight check [...]

Ubuntu 16.04 使用 systemd 用于启动/停止所有服务,因此,我们需要创建 nagios.service 文件:

nano /etc/systemd/system/nagios.service

添加以下行:

[Unit] Description=Nagios BindTo=network.target  [Install] WantedBy=multi-user.target  [Service] User=nagios Group=nagios Type=simple ExecStart=/usr/local/nagios/bin/nagios /usr/local/nagios/etc/nagios.cfg

使 Nagios 在系统启动时自动启动:

systemctl enable /etc/systemd/system/nagios.service

现在,启动 Nagios 服务:

systemctl start nagios

步骤 8. 访问 Nagios。

默认情况下,Nagios 将在 HTTP 端口 80 上可用。 打开您喜欢的浏览器并导航到 https://your-domain.com/install.php 或者 https://server-ip/install.php 并完成所需的步骤以完成安装。 当提示输入用户名和密码时,您将输入用户名“nagiosadmin”和您在步骤 6 中输入的密码。

恭喜! 您已成功安装 Nagios。 感谢您使用本教程在 ubuntu 16.04 (Xenial Xerus) 系统中安装 Nagios 监控工具。 如需其他帮助或有用信息,我们建议您查看 Nagios 官方网站.

Save