介绍
Icinga是一个灵活而强大的开源监控系统,用于监控网络主机和服务的健康状况。 它可以用于监视网络工作者群集的负载和正常运行时间,存储设备上的可用磁盘空间,缓存服务上的内存消耗等。 一旦正确设置,Icinga可以让您全面了解大量主机和服务的状态,以及通知,停机计划和长期存储性能数据。
本教程将介绍如何安装Icinga内核,其数据库后端和Icinga Web界面。 最后,我们将设置电子邮件通知,以便在服务行为不端时,您可以在收件箱中收到提醒。
先决条件
在开始本教程之前,您将需要:
- 安装了LAMP的Ubuntu 16.04服务器,这在我们的教程中详细介绍了如何在Ubuntu 16.04上安装Linux,Apache,MySQL,PHP(LAMP) 。
- 因为Icinga Web有一个登录页面,并且还要求您在安装过程中输入敏感信息,应为Apache启用SSL加密。 您可以在我们的教程中学习如何获取和安装免费的SSL证书, 如何使用Ubuntu 16.04加密Apache 。
第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
这将打开一个新的空白文本文件。 粘贴在以下行中:
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数据库。 您将看到数据库适配器的几个配置屏幕:
- 启用Icinga 2的ido-mysql功能? 是
- 使用dbconfig-common配置icinga2-ido-mysql的数据库? 是
- 然后系统会提示您设置Icinga数据库密码。 创建一个强大的密码并记录下来。 设置Web界面时,我们需要它。
现在我们需要实际启用Icinga数据库后端。 icinga2
命令可以在命令行上启用和禁用功能。 当我们在此时,我们还将启用命令功能,最终将让我们从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手册的时区部分找到正确的时区格式。 完成后应该看起来像这样:
date.timezone = America/New_York
保存并关闭文件。 重新启动Apache进行更新:
sudo systemctl restart apache2
现在是时候通过Incinga Web的基于浏览器的设置了。
第3步 - 设置Icinga Web界面
在我们切换到浏览器进行基于Web的安装过程之前,我们需要创建一个设置令牌 。 这是我们在命令行上生成的一个关键字,授权我们使用Web设置工具。 我们用icingacli
命令创建这个密钥:
sudo icingacli setup token create
将打印一个简短的标记:
Output1558c2c0ec4572ab
将令牌复制到剪贴板,然后切换到浏览器并加载Icinga Web地址。 默认情况下,这是您的服务器的域名或IP地址,后跟/icingaweb2
:
https://icinga-master.example.com/icingaweb2
您将看到一个配置屏幕。 粘贴到您复制到剪贴板的令牌中,然后按下一步开始该过程。 有很多页面的选项可以通过。 我们一次一个通过他们。
模块设置
在第二页上,您可以选择为Web界面启用一些额外的模块。 我们可以安全地接受仅启用监控模块的默认设置。 单击下一步继续。
环境状况
第三页显示了PHP环境的状态。 您不应该看到任何红色的框,这将表明问题或配置错误。 您可能会看到一些黄色框提到PostgreSQL模块丢失。 我们可以安全地忽略这些,因为我们使用的是MySQL,而不是PostgreSQL。 单击下一步继续。
Icinga网络认证
第四页让我们选择我们想要验证Icinga Web用户的方式。 如果您想与LDAP服务进行集成以进行身份验证,则可以选择该选项。 我们将使用默认数据库将用户存储在MySQL数据库中。 单击下一步继续。
用户数据库设置
第五页要求我们设置一个数据库来存储用户数据。 这与我们以前在命令行安装期间设置的数据库是分开的。
大多数的默认值是正常的,但是我们还需要选择一个数据库名称和用户/密码组合:
- 资源名称: icingaweb_db
- 数据库类型: MySQL
- 主机: localhost
- 端口:
- 数据库名称: icingaweb_users
- 用户名: icingaweb
- 密码: 设置并记录密码
- 字符集:
- 坚持: 不加选择
- 使用SSL: 不选中
点击下一步继续。
创建用户数据库
下一页将会说您的数据库不存在,您没有凭据来创建它。 输入root用户名,输入MySQL根密码,单击“ 下一步”创建Icinga Web数据库和用户。
命名验证提供者
现在我们需要命名我们刚创建的身份验证后端。 默认的icingaweb2很好。 单击下一步 。
创建管理员帐户
现在我们已经设置了我们的用户数据库,我们可以创建我们的第一个Icinga Web管理帐户。 选择用户名和密码,然后单击下一步继续。
首选项和日志存储
接下来,我们将介绍如何存储用户首选项和日志的选项。 默认值是正确的,并且将记录到syslog时将首选项存储在数据库中。 点击下一步继续。
配置审核
我们会看到一个页面来查看我们所有的配置。 单击“下一步”确认配置详细信息,并继续配置监控模块。
监控配置简介
现在我们开始配置Icinga Web的实际监控模块。 单击下一步开始。
选择监控后端
首先,我们选择我们的监控后端 icinga的默认名称和IDO的类型是正确的 。 这表明Icinga Web将在命令行上安装事件时从我们之前配置的ido-mysql数据库中检索信息。
设置监控数据库
我们需要输入ido-mysql数据库的连接详细信息。 我们在安装过程中创建了这个密码。
此页面与用户数据库设置屏幕具有所有相同的选项:
- 资源名称: icinga_ido
- 数据库类型: MySQL
- 主机: localhost
- 端口:
- 数据库名称: icinga2
- 用户名: icinga2
- 密码: 您在安装过程中创建的密码
- 字符集
- 持久性: 未选中
- 使用SSL: 未选中
单击下一步继续。
选择命令传输方法
接下来是命令传输提示符。 这样,当我们在Web界面中手动运行运行状况检查时,我们可以指定Icinga Web如何将命令传递给Icinga。 本地命令文件的默认值是正确的,并且可以使用我们在第1步中启用的命令功能。单击下一步继续。
设置监控接口安全
这可以指定Web界面中应该被屏蔽的数据,以防止任何潜在的旁观者看到密码和其他敏感信息。 默认值是正确的。 点击下一步继续。
监控模块配置摘要
我们再次提供了我们的配置摘要。 点击Finish完成Icinga Web的设置。 恭喜! 消息将加载。
单击登录到Icinga Web 2并使用您的管理员用户名和密码登录。
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服务器:
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
行更改为您希望接收通知的地址:
. . .
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上监视主机和服务 ,我们将在那里设置远程监控。