转载

IBM Accelerator for Machine Data Analytics,第 6 部分: 加快 InfoSphere BigInsights 应用程序...

开始之前

这是一个有关如何收集和分析由 InfoSphere BigInsights 产生的日志的分步指南。InfoSphere BigInsights 2.1 扩展数据源,让 IBM Accelerator for Machine Data Analytics 可以支持 InfoSphere BigInsights 和 Hadoop 日志,以便集成和分析 Hadoop 日志。

这个新的日志监控和分析功能旨在加快 InfoSphere BigInsights 应用程序的故障排除。在以前版本的 InfoSphere BigInsights 中,故障排除的过程既繁琐又费时,要求手动聚合日志文件,并在这些日志文件中进行手动文件搜索。此外,日志记录只能在有限的时间段内从 InfoSphere BigInsights Web 控制台获得。

利用 InfoSphere BigInsights 2.1 和 IBM Accelerator for Machine Data Analytics,InfoSphere BigInsights 中的所有 Hadoop 日志都可以被聚集到一个位置。通过 InfoSphere BigInsights 仪表板中的分面搜索,可以索引和访问日志。不再自动从索引中删除过期日志。

InfoSphere BigInsights Quick Start Edition

InfoSphere BigInsights Quick Start Edition 是一个免费的、可下载的 InfoSphere BigInsights 版本,是 IBM 基于 Hadoop 的产品。使用 Quick Start Edition,您可以尝试 IBM 为了提高开源 Hadoop 的价值而构建的特性,比如 Big SQL、文本分析和 BigSheets。为了让您的体验尽可能顺利,我们提供了引导式学习,包括分步的自学教程和视频,帮助您开始让 Hadoop 为您工作。没有时间或数据的限制,您可以自己选择时间使用大量数据进行实验。观看视频,遵循教程(PDF),并 立刻下载 BigInsights Quick Start Edition 。

目标

本文说明如何使用新的 InfoSphere BigInsights 日志监控特性(这里称为 日志监控应用程序 ),以及 IBM Accelerator for Machine Data Analytics 对 InfoSphere BigInsights 应用程序进行故障排除。在本教程中,学习如何:

  1. 开始收集 InfoSphere BigInsights 日志。
  2. 索引所收集的日志,并在 InfoSphere BigInsights 仪表板中分析它。
  3. 在 HBase 中验证日志收集。

先决条件

您应该熟悉在 IBM Accelerator for Machine Data Analytics 中提供的一套应用程序。熟悉 InfoSphere BigInsights 文本分析工具会更好,但这不是必须掌握的技能。阅读本系列的第 1 部分,这一部分概述了 IBM Accelerator for Machine Data Analytics(请参阅参考资料)。

系统要求

为了运行本教程中的示例,您需要:

  • 安装 InfoSphere BigInsights 2.1
  • 安装 IBM Accelerator for Machine Data Analytics

回页首

在一个虚构的公司 Sample Outdoors Company 的情况下

在 Sample Outdoors Company,IBM Accelerator for Machine Data Analytics 进入生产环境已有几个月的时间。Sample Outdoors Company 拥有一些多层应用程序,许多应用程序都是 InfoSphere BigInsights 应用程序。在使用 InfoSphere BigInsights Version 2 时,Sample Outdoors Company 经常发现:失败应用程序的日志早在需要使用它们进行故障排除之前就已被删除。即使日志文件是可用的,在各种日志中查找应用程序失败的根本原因的过程也非常繁琐。

Sample Outdoors Company 现在已经升级到 InfoSphere BigInsights 2.1,并配置了 BigInsights 日志监控应用程序,用于收集和分析 InfoSphere BigInsights Hadoop 日志。此应用程序使用户能够更好地控制日志保留策略,让错误的故障排除变得更快,因为在大多数情况下,它会直接指向错误的原因。

通过这个 Sample Outdoors Company 示例,本教程概述了 InfoSphere BigInsights 中的日志监控应用程序,并说明如何对其进行配置,以加快故障排除。

回页首

InfoSphere BigInsights 日志监控应用程序概述

InfoSphere BigInsights 2.1 包括一个工具集,将 InfoSphere BigInsights 中的 Hadoop 日志流式传输到 HBase。IBM Accelerator for Machine Data Analytics 分析日志集,并在 BigInsights InfoSphere 仪表板中显示结果。图 1 显示了用于收集和分析 InfoSphere BigInsights Hadoop 日志的工作流概述。

图 1. 收集和分析 InfoSphere BigInsights Hadoop 日志的工作流概述

IBM Accelerator for Machine Data Analytics,第 6 部分: 加快 InfoSphere BigInsights 应用程序...

如图所示,使用内置的监控代理,Hadoop 日志文件被配置为流向 HBase。本教程介绍如何启动监控代理,并支持将日志流式传输到 HBase。它还描述了如何验证 Hadoop 日志已被流式传输到 HBase。

Hadoop 日志被正确地流式传输到 HBase 之后,可以运行提取和索引的应用程序,在 HBase 中分析收集到的日志。用于分析 InfoSphere BigInsights 日志的 IBM Accelerator for Machine Data Analytics 组件如图 1 中的 InfoSphere BigInsights Log Analysis 方框所示。这种分析每次批量发生,并且可以调度这些应用程序对 InfoSphere BigInsights Hadoop 操作进行连续监控。

在分析 InfoSphere BigInsights 日志后,分析的结果将显示在 InfoSphere BigInsights 仪表板上,如图 1 所示。本教程介绍通过如图 1 所示的 InfoSphere BigInsights 日志监控应用程序的组件,如何将 InfoSphere BigInsights Hadoop 日志配置为流式传输到 HBase,以及如何配置 InfoSphere BigInsights Hadoop 日志的分析。

回页首

收集和分析 InfoSphere BigInsights 日志 — 分步指南

收集和分析 InfoSphere BigInsights Hadoop 日志:

  1. 启用并支持 InfoSphere BigInsights 日志监控应用程序
  2. 运行 InfoSphere BigInsights 日志监控应用程序
  3. 调度 InfoSphere BigInsights 日志监控应用程序的分析
  4. 搜索 InfoSphere BigInsights 日志监控应用程序的结果
  5. 验证在 HBase 表中收集到的日志。

回页首

步骤1. 启用并支持 InfoSphere BigInsights 日志监控应用程序

使用下列步骤来启用和验证从 InfoSphere BigInsights 日志到 HBase 的日志流:

  1. 打开位于控制台节点的 $BIGINSIGHTS_HOME/hdm/hadoop-conf-staging/hadoop-env.sh 文件。
  2. 修改包含 export HADOOP_STREAMING_LOGS=false 的行,并将它设置为 export HADOOP_STREAMING_LOGS=true
  3. 运行 $BIGINSIGHTS_HOME/bin/syncconf.sh 脚本,确保在 hadoop-env.sh 中的修改被传播到整个 InfoSphere BigInsights 集群。
  4. 重新启动集群,首先发出一个停止命令: $BIGINSIGHTS_HOME/bin/stop-all.sh
  5. 发出一个启动命令: $BIGINSIGHTS_HOME/bin/start-all.sh

该过程使您能够开始将 InfoSphere BigInsights 日志收集到 HBase。需要以下步骤来启动日志收集,但必须只执行它们一次。在这个过程之后,您无需修改 hadoop-env.sh 文件就可以打开和关闭日志收集。按照下列步骤打开日志收集:

  1. 从 InfoSphere BigInsights 控制台,转到 Application 选项卡并选中 Manage
  2. 在搜索栏中键入 "LogCollection",找到日志收集应用程序。
  3. 选中并部署日志收集应用程序,如图 2 所示。

图 2. 选中并部署日志收集应用程序

IBM Accelerator for Machine Data Analytics,第 6 部分: 加快 InfoSphere BigInsights 应用程序...

在部署了 InfoSphere BigInsights 日志收集应用程序后(按照上述说明),就可以打开和关闭它。要打开日志收集,首先使用以下步骤打开对 InfoSphere BigInsights 集群的监控:

  1. 在 InfoSphere BigInsights 控制台中,单击 Cluster Status 选项卡。
  2. 单击 Monitoring (它旁边应该有一个红色的 X,并且状态为 Unavailable ,如图 3 所示)。
  3. Monitoring Summary 窗口上单击 Start ,如图 3 所示。
  4. 等待,直至看到 Monitoring 节点旁边是绿色的对号,并且状态变为 Running (而不是步骤 2 中红色的 X)。

图 3. 启用 InfoSphere BigInsights 监控

IBM Accelerator for Machine Data Analytics,第 6 部分: 加快 InfoSphere BigInsights 应用程序...

在启用监控后,启动 InfoSphere BigInsights Hadoop 日志的日志收集。按照下列步骤启动日志收集:

  1. 从 InfoSphere BigInsights 控制台,单击 Applications 选项卡。
  2. 单击 Run ,如图 4 所示。
  3. 在搜索框键入 LogCollection ,查找日志收集应用程序。
  4. 在日志收集应用程序中选中 Enable Log Collection 复选框,如图 4 所示。
  5. 运行应用程序(应该在大约 40 秒内完成)。

图 4. 启动日志收集

IBM Accelerator for Machine Data Analytics,第 6 部分: 加快 InfoSphere BigInsights 应用程序...

在任何时候,要停止日志收集,只需取消选中图 4 所示的 Enable Log Collection 复选框,然后运行日志收集应用程序。如果您从 InfoSphere BigInsights 控制台的 Cluster Status 选项卡停止了监控(参见图 3),日志收集应用程序就会停止。

此时,InfoSphere BigInsights 日志集应该被流式传输到 HBase。假设 Sample Outdoors Company 发现 IBM Accelerator for Machine Data Analytics 提取应用程序失败,并且希望看到该应用程序的日志。Sample Outdoors Company 发现提取应用程序的输入字段中有一个错字,如图 5 所示。

图 5. 使用提取应用程序

IBM Accelerator for Machine Data Analytics,第 6 部分: 加快 InfoSphere BigInsights 应用程序...

正如我们在图 5 中所看到的,Sample Outdoors 公司忘记将反斜杠( / )放在提取应用程序中的源目录的开头处。复制此问题,使用与图 5 所示的完全相同的参数来运行提取应用程序。

回页首

步骤 2. 运行 InfoSphere BigInsights 日志监控应用程序

步骤 1 验证了 InfoSphere BigInsights Hadoop 日志收集已实际发生。在步骤 2 中,学习如何分析在 HBase 中所收集到的 InfoSphere BigInsights 日志集。

InfoSphere BigInsights 日志监控应用程序是由 BigInsights 链接的两个独立应用程序:日志监控提取应用程序和索引应用程序。日志监控提取应用程序和索引应用程序都包含在 IBM Accelerator for Machine Data Analytics 中。

创建日志监控提取应用程序是为了分析 InfoSphere BigInsights Hadoop 日志。此应用程序基本上从 Hadoop HBase 表中收集到的日志集中提取关键特性。索引应用程序需要执行两个步骤。此应用程序首先索引被提取的数据,生成一个分类,并将该数据和分类放入用户选择的 Distributed File System (DFS) 文件夹。然后,此应用程序将所提取的索引复制到 InfoSphere BigInsights 集群中的本地控制台节点机器。第二个步骤对于日志的可视化是必需的。为了让索引应用程序将索引从 DFS 文件夹复制到本地控制台节点,我们必须提供用于访问 InfoSphere BigInsights 集群的控制台节点的凭据存储文件。示例凭据存储文件位于 /user/applications/MDA/sample_logmonitoring_connections.properties 中的 DFS,只在安装了 IBM Accelerator for Machine Data Analytics 后才可以使用它。下面是此示例凭据文件的内容。

#BigInsights Credential Store file #Contains the Console Node Host ID, the login Username/Password for the console node password=BIpassword username=BIusername host=ConsoleNodeHostID

按照下列步骤修改此凭证存储文件:

  1. 对于 host ,可输入控制台节点的主机名称。
  2. 对于 username ,可输入 InfoSphere BigInsights 控制台节点机器的本地 InfoSphere BigInsights 系统管理员(默认为 biadmin )。
  3. 对于 password ,可输入 InfoSphere BigInsights 控制台节点机器的本地 InfoSphere BigInsights 系统管理员的密码。

在凭据文件中的密码可能是经过加密的,使用凭据文件生成器可以修改此文件。在准备好凭据文件之后,运行 InfoSphere BigInsights 日志监控应用程序:

  1. 转到 InfoSphere BigInsights Web 控制台的 Applications 选项卡。
  2. 在搜索栏中键入 BigInsights log monitoring
  3. 根据图 6 所示的参数,运行 InfoSphere BigInsights 日志监控应用程序。

图 6. InfoSphere BigInsights 日志监控应用程序的参数

IBM Accelerator for Machine Data Analytics,第 6 部分: 加快 InfoSphere BigInsights 应用程序...

以下是所需的参数:

  1. Extract Output Directory 中,提供日志监控提取应用程序的提取输出的目录。请注意,如果此目录不存在,则会创建该目录。
  2. Days to Ingest 字段中,键入要检查的日志的初始天数。日志监控提取应用程序将会保存一个光标文件,它跟踪了以前的运行发生的时间。在图 6 中,Days to Ingest 参数被设置为一天。如果 InfoSphere BigInsights 日志监控应用程序的最后一次运行发生在过去的一天之内,此参数将被忽略,并从光标文件中给出的日期起从 Hadoop 表中读取日志。
  3. Index Output Directory 中键入将包含索引结果的 DFS 目录。请注意,如果此目录不存在,则会创建该目录。
  4. Credentials File Path 中提供在本节开始时所创建的凭据文件的 DFS 路径。
  5. (可选)取消选中不想分析的日志类型的复选框,如图 6 所示。如果在给定时间内要分析和索引太多的日志(或者如果日志太大),那么可以使用此功能。

包含最多卷的日志一般是名称节点日志和数据节点日志。下一个步骤是调度 InfoSphere BigInsights 日志监控应用程序,对 BigInsights 日志进行连续分析。

回页首

步骤 3. 调度 InfoSphere BigInsights 日志的分析

InfoSphere BigInsights 日志监控应用程序可以按计划任务调度运行,以便批量分析 BigInsights 日志。按照下列步骤调度 InfoSphere BigInsights 日志监控应用程序:

  1. 在应用程序参数中选中 Schedule Job 复选框,如图 7 所示。
  2. 填写 InfoSphere BigInsights 日志监控应用程序运行的 Start Date 字段。
  3. 通过填写 Until 字段选择结束日期,如图 7 所示。(结束日期应晚于开始日期)。
  4. 指定运行 InfoSphere BigInsights 日志监控应用程序的 Frequency ,如图 7 所示。

图 7. 调度 InfoSphere BigInsights 日志监控应用程序的参数

IBM Accelerator for Machine Data Analytics,第 6 部分: 加快 InfoSphere BigInsights 应用程序...

我们建议您以两个小时的时间间隔执行连续的 InfoSphere BigInsights 日志监控应用程序,以避免出现应用程序运行重叠。

如果分布式文件系统(DFS)上的索引开始变得过大,您还可以在 DFS 中定期从索引中删除日志记录:

  1. 转到 InfoSphere BigInsights 控制台的 Applications 选项卡。
  2. 在搜索框中键入 Index Management
  3. Index Directory 字段中,提供大型索引的目录,如图 8 所示。
  4. Retention Time 字段中,提供想要保留日志记录的小时数(应用程序将删除超过指定保留时间的所有日志记录)。
  5. 选中 Schedule Job 复选框。
  6. 提供 Start Date 和运行此应用程序的时间。
  7. 通过填写 Until 字段提供结束日期和时间。
  8. 提供运行此应用程序的 Frequency ,如图 8 所示。
  9. 运行应用程序。

图 8. 索引管理应用程序的参数

IBM Accelerator for Machine Data Analytics,第 6 部分: 加快 InfoSphere BigInsights 应用程序...

回页首

步骤 4. 搜索 InfoSphere BigInsights 日志收集和分析的结果

在运行 InfoSphere BigInsights 日志监控应用程序后,Sample Outdoors Company 想深入了解导致崩溃的错误。按照下列步骤查看 InfoSphere BigInsights 日志监控分析的结果:

  1. 转到 InfoSphere BigInsights 控制台的 Dashboard 选项卡。
  2. Select Dashboard 下拉菜单中选中 System dashboard
  3. 单击 Search 选项卡。

此时,您应该在类似图 9 的用户界面中看到 InfoSphere BigInsights 日志收集和分析的结果。

图 9. IBM Accelerator for Machine Data Analytics 搜索功能包含 InfoSphere BigInsights 日志的分析

IBM Accelerator for Machine Data Analytics,第 6 部分: 加快 InfoSphere BigInsights 应用程序...

由于收集分析的所有 Hadoop 日志都使用 SYSLOG 格式, Severity 方面可以筛选包含错误的所有日志。这些日志可以用于故障排除。正如我们从图 9 中看到的,有一条日志记录的严重性为 “Error”。我们可以单击它,向下钻取 ERROR 方面。包含错误的日志记录会显示堆栈跟踪。从堆栈跟踪,我们看到了以下语句:

java.lang.Exception:Number of exceptions [1] exceeded threshold [0], data context: "hdfs://hdtest261.svl.ibm.com:9000user/biadmin/extract_in"

从堆栈跟踪的语句中可以明显看出,输入路径中缺少反斜线( / )。因此,Sample Outdoors Company 能够解决引发 7 月 14 日崩溃的问题。

回页首

步骤 5. 在 HBase 中验证日志收集。

验证日志已被流式传输到 HBase:

  1. 启动一个 InfoSphere BigInsights 应用程序。运行示例 InfoSphere BigInsights 应用程序的一种方法是运行 $BIGINSIGHTS_HOME/hdm/bin/hdm terasort ,它将运行 InfoSphere BigInsights 测试应用程序。
  2. 重复步骤 1 几次,将一些日志收集到 HBase 中。
  3. 键入 $BIGINSIGHTS_HOME /hbase/bin/hbase shell ,打开 HBase 控制台。
  4. 已填充的 HBase 表被命名 Hadoop。键入 count 'Hadoop' 报告行计数,您应该会看到类似下面的消息:
    hbase(main):001:0> count 'Hadoop' 76 row(s) in 0.4860 seconds

上述消息表明, Hadoop HBase 表包含 76 行数据。查看 Hadoop 表里面的实际数据:

  1. 输入命令 cd $BIGINSIGHTS_HOME/hbase/bin ,将工作目录更改为 HBase bin。
  2. 输入命令 echo "scan 'Hadoop' | ./hbase shell > myTtable.txt
  3. 检查在 $BIGINSIGHTS_HOME/hbase/bin 目录中的 myTtable.txt。

myTtable.txt 文件将包含目前已流式传输到 HBase Hadoop 表的所有日志。

回页首

加快 InfoSphere BigInsights 应用程序的故障排除

我们已经演示了如何通过收集、提取、索引和搜索 InfoSphere BigInsights 应用程序生成的 Hadoop 日志有效地对 InfoSphere BigInsights 应用程序进行故障排除。

现在 Sample Outdoors Company 能够监控并轻松地对 InfoSphere BigInsights 应用程序进行故障排除,因为所有 Hadoop 日志都被索引,并通过 InfoSphere BigInsights 仪表板提供。Sample Outdoors Company 现在也能够通过索引管理应用程序控制已分析的 Hadoop 日志的保留时间。

正文到此结束
Loading...