Icinga是一个灵活而强大的开源监控系统,用于监控网络主机和服务的运行状况。它可用于监视Web worker集群的负载和正常运行时间,存储设备上的可用磁盘空间,缓存服务上的内存消耗等。正确设置后,Icinga可以让您快速了解大量主机和服务的状态,以及通知,停机时间安排和性能数据的长期存储。
本教程将介绍如何安装Icinga的核心--数据库后端和Icinga Web界面。最后,我们会设置电子邮件通知,以便您在服务行为异常时可以在收件箱中收到提醒。
在开始本教程之前,您需要:
要获得最新版本的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](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数据库后端。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界面了。
Icinga核心是完全可配置的,可以在没有Web界面的情况下使用,但Icinga Web提供了关于主机和服务运行状况的可浏览的概述,并允许您在您的浏览器安排停机时间,确认问题,手动触发运行状况检查以及发送通知。
让我们用apt-get
安装Icinga Web :
$ sudo apt-get install icingaweb2
Icinga Web的其余部分是在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的设置了。
在我们切换到浏览器进行基于Web的设置过程之前,我们需要创建一个设置令牌。这是我们在命令行上生成的密钥,授权我们使用Web设置工具。我们使用以下icingacli
命令创建此密钥:
$ sudo icingacli setup token create
将打印一个短令牌:
1558c2c0ec4572ab
将令牌复制到剪贴板,然后切换到浏览器并加载Icinga Web地址。默认情况下,这是您的服务器的域名或IP地址,后跟/icingaweb2
:
https://icinga-master.example.com/icingaweb2
您将看到配置屏幕。粘贴您复制到剪贴板的令牌,然后按“ 下一步”开始此过程。有很多页面可供选择。我们将逐一介绍它们。
在第二页上,您可以选择为Web界面启用一些额外的模块。我们可以安全地接受仅启用监控模块的默认值。单击“ 下一步”继续。
第三页显示了PHP环境的状态。如果有任何红色框表示存在问题或配置错误。您可能会看到一些黄色框提示PostgreSQL模块丢失。我们可以放心地忽略这些,因为我们使用的是MySQL,而不是PostgreSQL。单击“ 下一步”继续。
第四页让我们选择我们想要如何验证Icinga Web用户。如果要与LDAP服务集成以进行身份验证,则可以选择该服务。我们将使用默认的Database来将用户存储在我们的MySQL数据库中。单击“ 下一步”继续。
第五页要求我们设置一个数据库来存储用户数据。这与我们之前在命令行安装期间设置的数据库是分开的。
大多数默认设置都不错,但我们还需要选择数据库名称和用户/密码组合:
点击下一步继续。
下一页将说明您的数据库不存在,并且您没有创建它的凭据。输入root作为用户名,输入MySQL root密码,然后单击Next以创建Icinga Web数据库和用户。
现在我们需要命名刚刚创建的身份验证后端。使用默认的icingaweb2。单击下一步。
现在我们已经设置了用户数据库,我们可以创建我们的第一个Icinga Web管理帐户。选择用户名和密码,然后单击“ 下一步”继续。
接下来,我们将介绍如何存储用户首选项和日志。默认设置就不错,并且会在记录到syslog时将首选项存储在数据库中。点击下一步继续。
我们将看到一个页面,用于查看我们的所有配置。单击“ 下一步”以确认配置详细信息,然后继续配置监视模块。
现在我们开始为Icinga Web配置实际的监控模块。单击“ 下一步”开始。
首先,我们选择我们的监控后端。icinga的默认名称和IDO的类型都可以。这表明Icinga Web将从我们之前在命令行上安装东西时配置的ido-mysql数据库中检索信息。
我们需要输入ido-mysql数据库的连接细节。我们在安装期间创建了此密码。
此页面具有与用户数据库设置屏幕相同的所有选项:
单击“ 下一步”继续。
接下来是命令传输提示。这让我们可以指定当我们在Web界面中手动运行运行状况检查时,Icinga Web如何将命令传递给Icinga。默认的Local Command File就很好,可以使用我们在步骤1中启用的命令功能。单击Next继续。
这使您可以指定应在Web界面中屏蔽的数据,以防止任何潜在的旁观者看到密码和其他敏感信息。默认值就很好。点击下一步继续。
再一次,我们会看到我们的配置摘要。点击完成以完成Icinga Web的设置。一个恭喜!消息将加载。
单击登录到Icinga Web 2,然后使用您的管理员用户名和密码登录。
Icinga Web的主界面将加载。稍微探索并熟悉界面。如果您的服务器没有设置交换空间,您可能会看到一个红色的“ 严重错误”框。我们现在可以忽略这个,您也可以确认通过点击红色框,选择问题确认从右边栏,填写评论,最后点击确认问题按钮。
现在我们已经完成了Icinga和Icinga Web的设置,让我们设置电子邮件通知。
如果在出现问题时无法收到警报,则监控就发挥不了作用。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更新一些设置来发送邮件。
要使电子邮件通知正常工作,请更新发送给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主机已被配置出现问题时发送通知。让我们用一个问题测试一下,看看会发生什么。我们将使用一个被调用的命令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,还有其他开源的监控系统,欢迎访问腾讯云社区获取更多相关内容。
参考文献:《How To Install Icinga and Icinga Web on Ubuntu 16.04》
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。