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

介绍

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](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. Enable Icinga 2's ido-mysql feature? YES
  2. Configure database for icinga2-ido-mysql with dbconfig-common? YES
  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的其余部分是在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 Web2

您将看到配置屏幕。粘贴您复制到剪贴板的令牌,然后按“ 下一步”开始此过程。有很多页面可供选择。我们将逐一介绍它们。

模块设置

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

环境状况

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

Icinga Web身份验证

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

用户数据库设置

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

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

  1. Resource Name: icingaweb_db
  2. Database Type: MySQL
  3. Host: localhost
  4. Port:
  5. Database Name: icingaweb_users
  6. Username: icingaweb
  7. Password: set and record a password
  8. Character Set:
  9. Persistent: leave unchecked
  10. Use SSL: leave unchecked

点击下一步继续。

创建用户数据库

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

命名身份验证提供程序

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

创建管理员帐户

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

首选项和日志存储

接下来,我们将介绍如何存储用户首选项和日志。默认设置就不错,并且会在记录到syslog时将首选项存储在数据库中。点击下一步继续。

配置审核

我们将看到一个页面,用于查看我们的所有配置。单击“ 下一步”以确认配置详细信息,然后继续配置监视模块。

监控配置简介

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

选择监控后端

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

设置监控数据库

我们需要输入ido-mysql数据库的连接细节。我们在安装期间创建了此密码。

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

  1. Resource Name: icinga_ido
  2. Database Type: MySQL
  3. Host: localhost
  4. Port:
  5. Database Name: icinga2
  6. Username: icinga2
  7. Password: password you created during installation
  8. Character Set
  9. Persistent: unchecked
  10. Use SSL: unchecked

单击“ 下一步”继续。

选择命令传输方法

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

设置监控接口安全性

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

监控模块配置摘要

再一次,我们会看到我们的配置摘要。点击完成以完成Icinga Web的设置。一个恭喜!消息将加载。

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

Icinga Web2

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

现在我们已经完成了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主机已被配置出现问题时发送通知。让我们用一个问题测试一下,看看会发生什么。我们将使用一个被调用的命令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》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏JavaEdge

SpringBoot+Security 发送短信验证码在core模块下properties包中创建SmsCodeProperties在ValidateCodeProperties中new一个SmsCo

2926
来自专栏云计算教程系列

如何在Ubuntu 16.04上使用Apache或Nginx加密Tomcat 8连接

Apache Tomcat是一个Web服务器和servlet容器,旨在为Java应用程序提供服务。Tomcat经常用于生产企业部署和较小的应用程序需求,既灵活又...

4393
来自专栏JAVA烂猪皮

Zookeeper的简介和应用场景

Zookeeper是一个分布式协调服务;就是为用户的分布式应用程序提供协调服务 A、zookeeper是为别的分布式程序服务的 B、Zookeeper本身就...

1381
来自专栏从零开始学自动化测试

Selenium2+python自动化40-cookie相关操作

前言 虽然cookie相关操作在平常ui自动化中用得少,偶尔也会用到,比如登录有图形验证码,可以通过绕过验证码方式,添加cookie方法登录。 登录后换账号登录...

3088
来自专栏Petrichor的专栏

apt-get指令

apt-cache search package #搜索包(相当于yum list | grep pkg) apt-cache show packag...

1601
来自专栏云计算教程系列

如何在Ubuntu 14.04上安装VestaCP并设置网站

Vesta控制面板是一个免费的开源网站控制面板,内置网站,电子邮件,数据库和DNS功能。在本教程结束时,我们将在Ubuntu 14.04上安装并运行Vesta,...

930
来自专栏python学习路

二、urllib进阶

Handler处理器 和 自定义Opener opener是 urllib.request.OpenerDirector 的实例,我们之前一直都在使用的ur...

3065
来自专栏听雨堂

在虚拟主机上发布.Net应用的一些总结

      因为虚拟主机不方便建立应用程序,所以,基本上应用都是相对于根来说的。目标是:能够快速,简单的发布.Net 2.0 的Web应用程序,要便于管理。尽可...

2209
来自专栏LIN_ZONE

php项目,别人无法访问自己(windows 系统)上Apache服务器原因(转载)

2.windows默认带防火墙的,进入 控制面板-系统和安全-Windows 防火墙-允许的程序(win10系统的是:进入 控制面板-允许应用或功能通过Wind...

663
来自专栏weixuqin 的专栏

Django 使用第三方服务发送电子邮件

1354

扫码关注云+社区

领取腾讯云代金券