前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在Ubuntu 16.04上安装Icinga和Icinga Web

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

原创
作者头像
陈树丶
修改2018-07-26 10:34:37
1.2K0
修改2018-07-26 10:34:37
举报

介绍

Icinga是一个灵活而强大的开源监控系统,用于监控网络主机和服务的运行状况。它可用于监视Web worker集群的负载和正常运行时间,存储设备上的可用磁盘空间,缓存服务上的内存消耗等。正确设置后,Icinga可以让您快速了解大量主机和服务的状态,以及通知,停机时间安排和性能数据的长期存储。

本教程将介绍如何安装Icinga的核心--数据库后端和Icinga Web界面。最后,我们会设置电子邮件通知,以便您在服务行为异常时可以在收件箱中收到提醒。

准备

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

第1步 - 安装Icinga

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

首先,下载Icinga开发人员的包,验证密钥并将其添加到apt系统中:

代码语言:txt
复制
$  curl -sSL https://packages.icinga.com/icinga.key | sudo apt-key add -

此密钥将用于自动验证我们从Icinga存储库下载的任何软件的完整性。现在我们需要将存储库地址添加到apt配置文件中。使用您喜欢的文本编辑器打开文件。我们将在本教程中使用nano

代码语言:txt
复制
$   sudo nano /etc/apt/sources.list.d/icinga.list

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

/etc/apt/sources.list.d/icinga.list

代码语言:txt
复制
deb [https://packages.icinga.com/ubuntu](https://packages.icinga.com/ubuntu) icinga-xenial main

保存并关闭该文件,然后刷新包缓存:

代码语言:txt
复制
$   sudo apt-get update

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

代码语言:txt
复制
$   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界面运行状况检查。

代码语言:txt
复制
$   sudo icinga2 feature enable ido-mysql command

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

代码语言:txt
复制
$   sudo systemctl restart icinga2

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

代码语言:txt
复制
$   sudo systemctl status icinga2
代码语言:txt
复制
● 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 :

代码语言:txt
复制
$  sudo apt-get install icingaweb2

Icinga Web的其余部分是在Web浏览器中完成的,但在我们切换之前,我们需要更新一个设置。Icinga Web需要为PHP环境设置时区,所以让我们编辑PHP配置文件:

代码语言:txt
复制
$   sudo nano /etc/php/7.0/apache2/php.ini

我们需要找到要更新的特定行。在nano中我们可以按下CTRL-W以显示搜索界面,输入date.timezone,然后点击ENTER。光标将移动到我们需要更新的行。首先,通过删除初始;分号取消注释该行,然后键入正确的时区。

您可以在PHP手册的时区部分找到正确的时区格式。当你完成它时应该看起来像这样:

/etc/php/7.0/apache2/php.ini

代码语言:txt
复制
date.timezone = America/New_York

保存并关闭文件。重启Apache以进行更新:

代码语言:txt
复制
$   sudo systemctl restart apache2

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

第3步 - 设置Icinga Web界面

在我们切换到浏览器进行基于Web的设置过程之前,我们需要创建一个设置令牌。这是我们在命令行上生成的密钥,授权我们使用Web设置工具。我们使用以下icingacli命令创建此密钥:

代码语言:txt
复制
$  sudo icingacli setup token create

将打印一个短令牌:

代码语言:txt
复制
1558c2c0ec4572ab

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

代码语言:txt
复制
https://icinga-master.example.com/icingaweb2
Icinga Web2
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 Web2

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

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

第4步 - 设置电子邮件

如果在出现问题时无法收到警报,则监控就发挥不了作用。Icinga的默认配置有一些脚本可以通过电子邮件发送给管理员,但是我们需要在它们工作之前在我们的服务器上设置电子邮件。最简单的方法是使用一个ssmtp程序来通过标准SMTP服务器路由所有服务器的邮件。

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

代码语言:txt
复制
$   sudo apt-get install ssmtp mailutils

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

代码语言:txt
复制
$   sudo nano /etc/ssmtp/ssmtp.conf

文件中将存在一些现有配置。删除它并将其替换为适用于大多数SMTP服务器的基本设置:

/etc/ssmtp/ssmtp.conf

代码语言:txt
复制
mailhub=mail.example.com:465
UseTLS=yes
FromLineOverride=yes
AuthUser=smtp_username
AuthPass=smtp_password

保存并关闭文件。要测试连接,请使用以下mail命令:

代码语言:txt
复制
$   echo "hello world" | mail -s "test subject" sammy@example.com

您很快就会在收件箱中看到一封电子邮件。现在我们需要为Icinga更新一些设置来发送邮件。

第5步 - 设置和测试通知

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

代码语言:txt
复制
$   sudo nano /etc/icinga2/conf.d/users.conf

将email行更改为您希望在以下位置接收通知的地址:

/etc/icinga2/conf.d/users.conf

代码语言:txt
复制
. . .
email = "sammy@example.com"
. . .

最后一次重启Icinga:

代码语言:txt
复制
$   sudo systemctl restart icinga2

该主体icinga主机已被配置出现问题时发送通知。让我们用一个问题测试一下,看看会发生什么。我们将使用一个被调用的命令stress来增加系统的负载以触发警告。

安装stress:

代码语言:txt
复制
$   sudo apt-get install stress

stress可以操纵负载,磁盘IO,内存和其他系统指标。当系统负载超过5时,Icinga默认配置将触发警告。我们现在就假设:

代码语言:txt
复制
$   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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 准备
  • 第1步 - 安装Icinga
  • 第2步 - 安装Icinga Web界面
  • 第3步 - 设置Icinga Web界面
    • 模块设置
      • 环境状况
        • Icinga Web身份验证
          • 用户数据库设置
            • 创建用户数据库
              • 命名身份验证提供程序
                • 创建管理员帐户
                  • 首选项和日志存储
                    • 配置审核
                      • 监控配置简介
                        • 选择监控后端
                          • 设置监控数据库
                            • 选择命令传输方法
                              • 设置监控接口安全性
                                • 监控模块配置摘要
                                • 第4步 - 设置电子邮件
                                • 第5步 - 设置和测试通知
                                • 结论
                                相关产品与服务
                                云数据库 MySQL
                                腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
                                领券
                                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档