如何在Ubuntu 16.04上安装Icinga和Icinga Web

Icinga是一个灵活而强大的开源监控系统,用于监控网络主机和服务的健康状况。本教程将介绍如何安装Icinga内核,其数据库后端和Icinga Web界面。最后,我们将设置电子邮件通知,以便在服务行为不端时,您可以在收件箱中收到提醒。

介绍

Icinga是一个灵活而强大的开源监控系统,用于监控网络主机和服务的健康状况。 它可以用于监视网络工作者群集的负载和正常运行时间,存储设备上的可用磁盘空间,缓存服务上的内存消耗等。 一旦正确设置,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命令可以在命令行上启用和禁用功能。 当我们在此时,我们还将启用命令功能,最终将让我们从Web界面运行手动运行状况检查。

sudo icinga2 feature enable ido-mysql command

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

sudo systemctl restart icinga2

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

sudo systemctl status icinga2
● 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的安装过程之前,我们需要创建一个设置令牌 这是我们在命令行上生成的一个关键字,授权我们使用Web设置工具。 我们用icingacli命令创建这个密钥:

sudo icingacli setup token create

将打印一个简短的标记:

1558c2c0ec4572ab

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

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

Icinga Web设置页面

您将看到一个配置屏幕。 粘贴到您复制到剪贴板的令牌中,然后按下一步开始该过程。 有很多页面的选项可以通过。 我们一次一个通过他们。

模块设置

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

环境状况

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

Icinga网络认证

第四页让我们选择我们想要验证Icinga Web用户的方式。 如果您想与LDAP服务进行集成以进行身份​​验证,则可以选择该选项。 我们将使用默认数据库将用户存储在MySQL数据库中。 单击下一步继续。

用户数据库设置

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

大多数的默认值是正常的,但是我们还需要选择一个数据库名称和用户/密码组合:

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

点击下一步继续。

创建用户数据库

下一页将会说您的数据库不存在,您没有凭据来创建它。 输入root用户名,输入MySQL根密码,单击“ 下一步”创建Icinga Web数据库和用户。

命名验证提供者

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

创建管理员帐户

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

首选项和日志存储

接下来,我们将介绍如何存储用户首选项和日志的选项。 默认值是正确的,并且将记录到syslog时将首选项存储在数据库中。 点击下一步继续。

配置审核

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

监控配置简介

现在我们开始配置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: 未选中

单击下一步继续。

选择命令传输方法

接下来是命令传输提示符。 这样,当我们在Web界面中手动运行运行状况检查时,我们可以指定Icinga Web如何将命令传递给Icinga。 本地命令文件的默认值是正确的,并且可以使用我们在第1步中启用的命令功能。单击下一步继续。

设置监控接口安全

这可以指定Web界面中应该被屏蔽的数据,以防止任何潜在的旁观者看到密码和其他敏感信息。 默认值是正确的。 点击下一步继续。

监控模块配置摘要

我们再次提供了我们的配置摘要。 点击Finish完成Icinga Web的设置。 恭喜! 消息将加载。

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

Icinga Web界面

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

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

第4步 - 设置电子邮件

如果出现问题时无法收到警报,则监控不会太有帮助。 Icinga的默认配置有一些脚本来发送给管理员,但是我们需要在我们的服务器上设置电子邮件,然后才能正常工作。 最简单的方法是使用一个名为ssmtp的程序将所有服务器的邮件通过标准的SMTP服务器进行路由。

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

sudo apt-get install ssmtp mailutils

现在我们使用我们的SMTP详细信息编辑ssmtp配置文件。 这些应由您的ISP,电子邮件提供商或IT部门提供。 您将需要一个用户名,pasword和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,内存和其他系统度量。 当系统的负载超过5时,Icinga默认配置将触发警告。 现在我们来说吧

stress --cpu 6

切换回Icinga Web界面,您将看到负载指标缓慢上升。 经过几次检查,它将进入一个 警告状态。 是指支票在被认为是状态之前必须再次失败,此时通知将被发送。 这是为了避免发送快速解决问题的临时问题的通知。

等待警告达到硬状态并发送通知。 您应该收到一封电子邮件,其中包含有什么问题。

CTRL-C退出stress指令。 系统负载将恢复得相当快,并在Icinga Web界面中恢复为OK 您还将收到另一封电子邮件,通知您问题已清除。

结论

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