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

介绍

Icinga 是一个灵活而强大的开源监控系统,用于监控网络主机和服务的健康,可以用来监控一群网络工作者的负载和工作时间,存储设备上的自由磁盘空间,缓存服务的内存消耗等。

本教程将涵盖安装Icinga核心,其数据库后端和Icinga Web接口. 最后,我们将设置电子邮件通知,以便您在服务行为不当时在您的收件箱中收到警告。

前提条件

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

步骤 1 - 安装 Icinga

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

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

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

这个密钥将被用来自动验证我们从Icinga存储库下载的任何软件的完整性。现在我们需要将存储库地址添加到一个apt配置文件中。

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

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

1[label /etc/apt/sources.list.d/icinga.list]
2deb https://packages.icinga.com/ubuntu icinga-xenial main

保存并关闭文件,然后更新您的包缓存:

1sudo apt-get update

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

1sudo apt-get install icinga2 icinga2-ido-mysql

这将安装主 Icinga 软件,以及一个数据库适配器,允许 Icinga 将历史数据和其他信息放入 MySQL 数据库。

  1. 启用 Icinga 2 的 ido-mysql 功能? YES
  2. 用 dbconfig-common 配置 icinga2-ido-mysql 的数据库? YES
  3. 然后您将被要求设置一个 Icinga 数据库密码。 创建一个强大的密码并将其保存到以后。 我们在设置 Web 界面时需要它。

现在我们需要实际启用Icinga数据库后端。icinga2命令可以启用和禁用命令行上的功能.当我们在操作时,我们还会启用command**功能,最终可以从Web界面运行手动健康检查。

1sudo icinga2 feature enable ido-mysql command

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

1sudo systemctl restart icinga2

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

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

如果你看到活跃:活跃(运行),Icinga已启动并运行,现在我们已经设置了Icinga核心系统和数据库后端,是时候启动和运行Web界面了。

步骤 2 – 安装 Icinga Web 界面

Icinga 核心是完全可配置和使用的没有 Web 界面,但 Icinga Web 提供了可浏览的健康概述您的主机和服务,并允许您计划停机时间,识别问题,手动触发健康检查,并从您的浏览器发送通知。

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

1sudo apt-get install icingaweb2

Icinga Web 的其他设置是在 Web 浏览器中完成的,但在我们切换之前,我们需要更新一个设置。

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

我们需要找到一个特定的行来更新。在nano中,我们可以按CTRL-W来引入搜索界面,键入date.timezone,然后点击ENTER。路由器将移动到我们需要更新的行。首先,通过删除初始的;半图,然后键入正确的时区。 您可以在 [PHP手册的时区部分]中找到正确的时区格式(https://secure.php.net/manual/en/timezones.php)。

1[label /etc/php/7.0/apache2/php.ini]
2date.timezone = America/New_York

保存并关闭文件. 重新启动 Apache 以更新:

1sudo systemctl restart apache2

现在是时候通过Incinga Web的基于浏览器的设置工作了。

步骤 3 – 设置 Icinga Web 界面

在我们切换到我们的浏览器为基于Web的设置过程之前,我们需要创建一个 setup token. 这是我们在命令行上生成的一个密钥,允许我们使用Web设置工具。

1sudo icingacli setup token create

将打印一个简短的代码:

1[secondary_label Output]
21558c2c0ec4572ab

将代码复制到您的剪辑板,然后切换到您的浏览器并加载Icinga Web 地址. 默认情况下,这是您的服务器的域名或 IP 地址,然后是 /icingaweb2:

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

Icinga Web Setup Page

您将收到一个配置屏幕。粘贴您复制到剪辑板上的代币,然后按下 Next 来开始这个过程。

模块设置

在第二页,您将有机会为 Web 界面启用一些额外的模块. 我们可以安全地接受仅启用 ** 监控 ** 模块的默认。

环境状态

第三页显示了我们的PHP环境的状态. 您不应该看到任何红色框,这将表明问题或错误的配置. 您可能会看到一些黄色框提到PostgreSQL模块缺失。

Icinga Web 身份验证

第四页允许我们选择我们想要验证Icinga Web用户的方式。如果您想与LDAP服务集成身份验证,这将是选择的地方。我们将使用默认的 Database 来存储用户在我们的MySQL数据库中。

用户数据库设置

第五页要求我们设置一个数据库来存储用户数据,这与我们之前在命令行安装过程中设置的数据库分开。

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

数据库类型: MySQL 3 主机: localhost 4 端口: 5 数据库名称: icingaweb_users 6 用户名: icingaweb 7 密码:设置并记录密码 8 字符集: 9 持久性:不检查 10 使用 SSL:不检查 8

点击下一步继续。

创建用户数据库

下一页会说你的数据库不存在,你没有创建它的凭据. 输入用户名 root ,输入MySQL root密码,然后点击 ** Next** 创建Icinga Web数据库和用户。

身份验证提供商的名称

现在我们需要命名我们刚刚创建的身份验证后端。默认 icingaweb2 是好的。

创建 Admin 帐户

现在我们已经设置了我们的用户数据库,我们可以创建我们的第一个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:未验证

点击下一步继续。

选择命令运输方式

接下来是 命令传输 提示,这让我们可以指定Icinga Web将如何将命令传输给Icinga,当我们手动在Web接口中运行健康检查时。

设置监控界面安全

这允许您指定应该在 Web 界面中掩盖的数据,以防止任何潜在的观众看到密码和其他敏感信息。

监控模块配置总结

再次,我们被介绍了我们配置的摘要. 点击 ** 完成** 完成Icinga Web的设置. 一个 ** 恭喜!** 消息将加载。

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

Icinga Web Interface

如果你的服务器没有交换空间设置,你可能会看到一个红色 批判性错误 框。我们现在可以忽略这一点,或者你可以通过点击红色框,从右侧列中选择 ** 认可** ,填写评论,最后点击 ** 认可问题** 按钮来 ** 认可** 这个问题。

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

步骤4:设置电子邮件

监控不会太有用,如果你无法收到警报,当事情发生错误时。Icinga的默认配置有几个脚本来发送电子邮件给管理员,但我们需要在我们的服务器上设置电子邮件之前,他们会工作。

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

1sudo apt-get install ssmtp mailutils

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

1sudo nano /etc/ssmtp/ssmtp.conf

删除它,并用这个非常基本的设置替换它,该设置应该与大多数SMTP服务器一起工作:

1[label /etc/ssmtp/ssmtp.conf]
2mailhub=mail.example.com:465
3UseTLS=yes
4FromLineOverride=yes
5AuthUser=smtp_username
6AuthPass=smtp_password

保存和关闭文件. 要测试连接,请使用邮件命令:

1echo "hello world" | mail -s "test subject" [email protected]

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

步骤 5 – 设置和测试通知

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

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

更改电子邮件行到您希望收到通知的地址:

1[label /etc/icinga2/conf.d/users.conf]
2. . .
3email = "[email protected]"
4. . .

重启 Icinga 最后一次:

1sudo systemctl restart icinga2

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

引用压力:

1sudo apt-get install stress

压力可以操纵负载,磁盘IO,内存和其他系统指标。Icinga的默认配置将触发警告,当系统的负载超过5。

1stress --cpu 6

返回 Icinga Web 接口,你会看到 负荷 ** 指标慢慢上升. 经过几次检查,它将输入一个 soft ** Warning 状态。 soft 意味着检查必须失败几次,然后被认为是一个 hard 状态,此时将发送通知。

等待警告到达硬状态并发送通知. 您应该收到一封电子邮件,详细说明发生了什么事。

CTRL-C来退出stress命令. 系统负载将恢复相当快,并返回Icinga Web接口中的OK**

结论

在本教程中,我们已经成功设置了Icinga和Icinga Web,包括Icinga的电子邮件通知功能,目前我们只监控Icinga主机本身,但继续我们的下一个教程(如何在Ubuntu 16.04上监控Icinga的主机和服务)(https://andsky.com/tech/tutorials/how-to-monitor-hosts-and-services-with-icinga-on-ubuntu-16-04)我们将设置远程监控。

Published At
Categories with 技术
comments powered by Disqus