如何在Ubuntu16.04上安装Icinga和IcingaWeb

来自菜鸟教程
跳转至:导航、​搜索

介绍

Icinga 是一个灵活而强大的开源监控系统,用于监控联网主机和服务的健康状况。 它可用于监控 Web Worker 集群的负载和正常运行时间、存储设备上的可用磁盘空间、缓存服务的内存消耗等。 一旦正确设置,Icinga 可以让您一目了然地了解大量主机和服务的状态,以及通知、停机时间安排和性能数据的长期存储。

本教程将介绍安装 Icinga 核心、其数据库后端和 Icinga Web 界面。 最后,我们将设置电子邮件通知,以便您可以在服务出现异常时在收件箱中收到警报。

先决条件

在开始本教程之前,您需要:

第 1 步 — 安装 Icinga

要获得最新版本的 Icinga,我们首先需要添加一个由 Icinga 团队维护的软件存储库。 然后我们将使用 apt-get 安装软件并运行几个配置屏幕来设置 Icinga 的数据库后端。

首先,下载Icinga开发者的包签名密钥,添加到apt系统中:

curl -sSL https://packages.icinga.com/icinga.key | sudo apt-key add -

此密钥将用于自动验证我们从 Icinga 存储库下载的任何软件的完整性。 现在我们需要将存储库地址添加到 apt 配置文件中。 使用您喜欢的文本编辑器打开文件。 我们将在本教程中使用 nano

sudo nano /etc/apt/sources.list.d/icinga.list

这将打开一个新的空白文本文件。 粘贴到以下行:

/etc/apt/sources.list.d/icinga.list

deb https://packages.icinga.com/ubuntu icinga-xenial main

保存并关闭文件,然后刷新你的包缓存:

sudo apt-get update

apt-get 现在将从我们刚刚添加的存储库中下载信息,使 Icinga 包可供安装:

sudo apt-get install icinga2 icinga2-ido-mysql

这将安装主要的 Icinga 软件,以及使 Icinga 能够将历史数据和其他信息放入 MySQL 数据库的数据库适配器。 您将看到一些数据库适配器的配置屏幕:

  1. 启用 Icinga 2 的 ido-mysql 功能?
  2. 使用 dbconfig-common 为 icinga2-ido-mysql 配置数据库?
  3. 然后系统会提示您设置 Icinga 数据库密码。 创建一个强密码并记录下来以备后用。 我们在设置 Web 界面时需要它。

现在我们需要实际启用 Icinga 数据库后端。 icinga2 命令可以在命令行启用和禁用功能。 在此过程中,我们还将启用 command 功能,最终让我们从 Web 界面运行手动运行状况检查。

sudo icinga2 feature enable ido-mysql command

现在重新启动 icinga2 以使用新功能:

sudo systemctl restart icinga2

最后,让我们检查 icinga2 的状态以确保它正常运行:

sudo systemctl status icinga2
Output● icinga2.service - Icinga host/service/network monitoring system
   Loaded: loaded (/lib/systemd/system/icinga2.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2017-04-20 00:54:55 UTC; 3s ago
  Process: 15354 ExecStartPre=/usr/lib/icinga2/prepare-dirs /usr/lib/icinga2/icinga2 (code=exited, status=0/SUCCESS)
 Main PID: 15416 (icinga2)
    Tasks: 11
   Memory: 7.7M
      CPU: 488ms
. . .

如果您看到 Active: active (running),则表示 Icinga 已启动并正在运行。 现在我们已经设置了 Icinga 核心系统和数据库后端,是时候启动并运行 Web 界面了。

第 2 步 – 安装 Icinga Web 界面

Icinga 核心是完全可配置和可用的,无需 Web 界面,但 Icinga Web 提供了一个很好的可浏览的主机和服务健康状况概览,并允许您安排停机时间、确认问题、手动触发健康检查和发送通知,对从您的浏览器。

让我们用 apt-get 安装 Icinga Web:

sudo apt-get install icingaweb2

Icinga Web 的其余设置是在网络浏览器中完成的,但在我们切换之前,我们需要更新一个设置。 Icinga Web 需要为 PHP 环境设置时区,所以让我们编辑 PHP 配置文件:

sudo nano /etc/php/7.0/apache2/php.ini

我们需要找到一个特定的行来更新。 在nano中我们可以按CTRL-W调出搜索界面,输入date.timezone,然后点击ENTER。 光标将移动到我们需要更新的行。 首先,通过删除最初的 ; 分号取消注释该行,然后输入正确的时区。 您可以在 PHP 手册的时区部分 中找到正确的时区格式。 完成后它应该看起来像这样:

/etc/php/7.0/apache2/php.ini

date.timezone = America/New_York

保存并关闭文件。 重启 Apache 进行更新:

sudo systemctl restart apache2

现在是时候完成 Incinga Web 的基于浏览器的设置了。

第 3 步 — 设置 Icinga Web 界面

在我们切换到浏览器进行基于 Web 的设置过程之前,我们需要创建一个 设置令牌 。 这是我们在命令行上生成的授权我们使用网络设置工具的密钥。 我们使用 icingacli 命令创建此密钥:

sudo icingacli setup token create

将打印一个简短的令牌:

Output1558c2c0ec4572ab

将令牌复制到剪贴板,然后切换到浏览器并加载 Icinga 网址。 默认情况下,这是您服务器的域名或 IP 地址,后跟 /icingaweb2

https://icinga-master.example.com/icingaweb2

您将看到一个配置屏幕。 将复制的令牌粘贴到剪贴板,然后按 Next 开始该过程。 有许多页面可供选择。 我们将一次一步地介绍它们。

模块设置

在第二页上,您可以选择为 Web 界面启用一些额外的模块。 我们可以安全地接受仅启用 Monitoring 模块的默认设置。 单击下一步继续。

环境状况

第三页显示了我们的 PHP 环境的状态。 您不应该看到任何红色框,这表明存在问题或配置错误。 您可能会看到一些提到缺少 PostgreSQL 模块的黄色框。 我们可以放心地忽略这些,因为我们使用的是 MySQL,而不是 PostgreSQL。 单击下一步继续。

Icinga 网络身份验证

第四页让我们选择如何验证 Icinga Web 用户。 如果您想与 LDAP 服务集成以进行身份验证,这将是选择它的地方。 我们将使用默认值 Database 将用户存储在我们的 MySQL 数据库中。 单击下一步继续。

用户数据库设置

第五页要求我们建立一个数据库来存储用户数据。 这与我们之前在命令行安装期间设置的数据库是分开的。

大多数默认值都可以,但我们还需要选择数据库名称和用户/密码组合:

  1. 资源名称:icingaweb_db
  2. 数据库类型:MySQL
  3. 主机:localhost
  4. 港口:
  5. 数据库名称:icingaweb_users
  6. 用户名:icingaweb
  7. 密码:设置并记录密码
  8. 字符集:
  9. 持久性:不选中
  10. 使用 SSL: 不选中

点击 Next 继续。

创建用户数据库

下一页将显示您的数据库不存在并且您没有创建它的凭据。 输入 root 作为用户名,输入 MySQL root 密码并单击 Next 创建 Icinga Web 数据库和用户。

命名身份验证提供程序

现在我们需要命名我们刚刚创建的身份验证后端。 默认的 icingaweb2 很好。 单击下一步

创建管理员帐户

现在我们已经建立了我们的用户数据库,我们可以创建我们的第一个 Icinga Web 管理帐户。 选择用户名和密码,然后单击 Next 继续。

首选项和日志存储

接下来,我们将看到有关如何存储用户首选项和日志的选项。 默认值很好,在登录到 syslog 时会将首选项存储在数据库中。 点击 Next 继续。

配置审查

我们会看到一个页面来查看我们的所有配置。 单击 Next 确认配置详细信息并继续配置监控模块。

监控配置介绍

现在我们开始为 Icinga Web 配置实际的监控模块。 点击下一步开始。

选择监控后端

首先,我们选择我们的监控后端。 icinga 的默认名称和 IDO 的类型都可以。 这表明 Icinga Web 将在命令行上安装时从我们之前配置的 ido-mysql 数据库中检索信息。

设置监控数据库

我们需要输入 ido-mysql 数据库的连接详细信息。 我们在安装过程中创建了此密码。

此页面具有与用户数据库设置屏幕相同的选项:

  1. 资源名称:icinga_ido
  2. 数据库类型:MySQL
  3. 主机:localhost
  4. 港口:
  5. 数据库名称:icinga2
  6. 用户名:icinga2
  7. 密码:您在安装过程中创建的密码
  8. 字符集
  9. 持久:未选中
  10. 使用 SSL:未选中

单击下一步继续。

选择命令传输方法

接下来是 Command Transport 提示符。 这让我们可以指定当我们在 Web 界面中手动运行健康检查时,Icinga Web 将如何将命令传递给 Icinga。 Local Command File 的默认值很好,可以与我们在步骤 1 中启用的 command 功能一起使用。 单击下一步继续。

设置监控接口安全

这使您可以指定应在 Web 界面中屏蔽的数据,以防止任何潜在的旁观者看到密码和其他敏感信息。 默认值很好。 点击 Next 继续。

监控模块配置汇总

再一次,我们看到了我们的配置摘要。 点击 Finish 完成 Icinga Web 的设置。 Congratulations! 消息将加载。

点击 Login to Icinga Web 2 并使用您的管理员用户名和密码登录。

Icinga Web 的主界面将加载。 稍微探索一下并熟悉界面。 如果您的服务器没有设置交换空间,您可能会看到一个红色的 严重错误 框。 我们暂时可以忽略这个问题,或者您可以通过点击红色框,在右侧栏中选择Acknowledge,填写评论,最后点击Acknowledge问题X202X]确认问题按钮。

现在我们已经完成了 Icinga 和 Icinga Web 的设置,让我们设置电子邮件通知。

第 4 步 - 设置电子邮件

如果出现问题时您无法收到警报,那么监控就没有太大帮助。 Icinga 的默认配置有一些脚本可以向管理员发送电子邮件,但我们需要在服务器上设置电子邮件才能工作。 最简单的方法是使用一个名为 ssmtp 的程序通过标准 SMTP 服务器路由所有服务器的邮件。

首先,安装 ssmtp 和一些帮助邮件实用程序:

sudo apt-get install ssmtp mailutils

现在我们用我们的 SMTP 详细信息编辑 ssmtp 配置文件。 这些应由您的 ISP、电子邮件提供商或 IT 部门提供。 您需要用户名、密码和 SMTP 服务器的地址:

sudo nano /etc/ssmtp/ssmtp.conf

文件中会有一些现有的配置。 删除它并用这个非常基本的设置替换它,该设置应该适用于大多数 SMTP 服务器:

/etc/ssmtp/ssmtp.conf

mailhub=mail.example.com:465
UseTLS=yes
FromLineOverride=yes
AuthUser=smtp_username
AuthPass=smtp_password

保存并关闭文件。 要测试连接,请使用 mail 命令:

echo "hello world" | mail -s "test subject" sammy@example.com

您很快就会在收件箱中看到一封电子邮件。 现在我们需要更新 Icinga 发送邮件的一些设置。

第 5 步 — 设置和测试通知

要使电子邮件通知正常工作,请更新 Icinga 发送到的电子邮件地址:

sudo nano /etc/icinga2/conf.d/users.conf

email 行更改为您希望接收通知的地址:

/etc/icinga2/conf.d/users.conf

. . .
email = "sammy@example.com"
. . .

最后一次重新启动 Icinga:

sudo systemctl restart icinga2

icinga-master 主机已配置为在出现问题时发送通知。 让我们制造一个问题,看看会发生什么。 我们将使用一个名为 stress 的命令来增加系统的负载以触发警告。

安装stress

sudo apt-get install stress

stress 可以操纵负载、磁盘 IO、内存和其他系统指标。 当系统负载超过五时,Icinga 默认配置将触发警告。 现在让我们这样做:

stress --cpu 6

切换回 Icinga Web 界面,您会看到 load 指标缓慢上升。 经过几次检查后,它将进入 soft Warning 状态。 Soft 意味着检查必须再失败几次才能被视为 hard 状态,此时将发送通知。 这是为了避免针对快速自行修复的暂时性问题发送通知。

等待警告达到硬状态并发送通知。 您应该会收到一封电子邮件,其中包含问题的详细信息。

CTRL-C退出stress命令。 系统负载将很快恢复并在 Icinga Web 界面中恢复为 Ok。 您还会收到另一封电子邮件,告知您问题已解决。

结论

在本教程中,我们成功设置了 Icinga 和 Icinga Web,包括 Icinga 的电子邮件通知功能。 目前我们只监控 Icinga 主机本身。 继续我们的下一个教程 如何在 Ubuntu 16.04 上使用 Icinga 监控主机和服务,我们将在其中设置远程监控。