IBM Accelerator for Machine Data Analytics,第 3 部分: 加快机器数据搜索

企业中产生的不同来源的机器日志的数量非常庞大。IBM® Accelerator for Machine Data Analytics 简化了需要实现的任务,加速了对半结构化、非结构化或结构化的文本数据的分析速。

Sonali Surange, 软件架构师, IBM

作者照片Sonali Surange 是一位 IBM 软件架构师,致力于 IBM 的大数据产品和技术。她已经申请了多项专利,在 IBM developerWorks 上发表了超过 15 篇技术论文,并出席了多个技术会议。Sonali 曾获得 IBM Outstanding 技术成就奖、Women of Color STEM Technical 全明星奖,并在 2012 年被认定为 IBM developerWorks 专职作家。



Sonali Surange, 软件架构师, IBM

作者照片Sonali Surange 是一位 IBM 软件架构师,致力于 IBM 的大数据产品和技术。她已经申请了多项专利,在 IBM developerWorks 上发表了超过 15 篇技术论文,并出席了多个技术会议。Sonali 曾获得 IBM Outstanding 技术成就奖、Women of Color STEM Technical 全明星奖,并在 2012 年被认定为 IBM developerWorks 专职作家。



2013 年 1 月 31 日

开始之前

关于本系列

IBM Accelerator for Machine Data Analytics 的主要优点和长处之一是能够很容易地对该工具进行配置和定制。此 系列 文章和教程面向那些希望初步了解加速器,进一步加快机器数据分析,同时还想获取自定义洞察的读者。

关于本教程

在本系列的 第 1 部分 中,探讨了一些已知的日志和一些鲜为人知的日志。在本系列的 第 2 部分 中,创建了一种新的日志类型,用于分析新的数据类型。在本教程中,您将看到如何即插即用 地使用新的电子邮件日志类型,就像使用开箱即用的日志类型和泛型一样。您也将获得所有这些日志的整合视图和搜索它们的能力。

如果对新的日志类型不感兴趣,那么您可以学习如何使用开箱即用的日志类型和泛型进行搜索。

目标

在本教程中,您将学习如何完成以下任务。

  1. 在索引和搜索中使用开箱即用的日志类型。
  2. 在索引和搜索中使用即插即用的定制日志类型。
  3. 观察如何自动发现开箱即用和自定义的日志类型的某些 facet。
  4. 配置索引和搜索,使之与用例匹配。

您还将学习如何使用加速器附带的 Application chains。

先决条件

阅读本系列的 第 1 部分:加快机器数据分析,获得 IBM Accelerator for Machine Data Analytics 的概述。如果有兴趣了解如何针对新的日志类型定制加速器,可以选择完成本系列的 第 2 部分:加快新的日志类型的分析

系统要求

为了运行本教程中的示例,您需要满足以下条件。

  1. 已经安装 BigInsights v2.0。
  2. 已经安装 IBM Accelerator for Machine Data Analytics。
  3. 提供用于机器数据分析的数据集。下载数据的链接请参阅 下载 部分。

跨所有日志整合的查看和搜索

机器数据有多种形状和大小。某些类型的数据格式遵循已知的结构或格式,而另一些类型的数据则提供了完全自定义的格式。某些类型是半结构化或非结构化的,而另一些则是结构化的。

将所有的数据类型一起放在一个整合的搜索视图中,可为所有类型的分析提供明显的好处。虽然有些机器日志可以提供有关应用程序行为的信息,但将它与非结构化信息(如电子邮件)结合可以帮助提供可操作的分析。进一步将它与来配置文件或自外部系统的报告的结构化信息结合,就产生了可搜索的信息金矿。

在本系列的 第 1 部分:加快机器数据分析 中,您看到了跨应用程序层的机器数据的多样性。在本系列的 第 2 部分:加快新的日志类型的分析 中,您看到了如何轻松地添加电子邮件等外部信息进行分析。

在本教程中,将所有这些数据都放入可搜索的存储库中。


一家虚构的 Sample Outdoors 公司的情况

Sample Outdoors 希望获得其所有日志数据的一个整合视图。此外,他们想通过添加电​​子邮件数据,开始创建可搜索的信息金矿。Sample Outdoors 公司的下一个任务是将所有这些信息放在一起,并对它进行搜索。


用于搜索任何机器数据的十个特性

请阅读下面 IBM Accelerator for Machine Data Analytics 特性的概述和要点,它们可用于搜索任何机器数据。

  1. 使用 Import-Extract 链,引入数据和提取数据
  2. 创建一个 所有日志的整合的可搜索存储库
  3. 将自定义的日志类型添加到存储库,在搜索中即插即用地使用新的日志类型
  4. 准备搜索,观察 facet 的自动发现
  5. 观察 包括电子邮件在内的事件的时间顺序视图
  6. 执行 搜索
  7. 仅显示对用例有意义的 facet。在 为用例配置用户界面 部分,了解如何完成此操作。
  8. 通过配置索引来添加自定义日志类型的字段 部分,添加自定义日志类型的任何缺失字段。
  9. 最后,学习如何优化索引的大小,在 优化!将配置融入到索引 部分中只创建必要的 facet。
  10. 查看生成的 Search 界面

在 Sample Outdoors 公司

在 Sample Outdoors 的数据科学家拥有以下来自客户的机器数据。

  • CustomerFrontEnd application – 基于 Apache Web Access 的应用程序
  • CustomerBackend 应用程序 – 基于 IBM WebSphere 服务器的应用程序
  • CustomerDbApp 应用程序 – Oracle 数据库应用程序

他们还将电子邮件发送到 customersupport@sampleoutdoors.com 和 websupport@sampleoutdoors.com。

他们希望将所有这些信息放在一起,并开始构建一个整合的可搜索存储库。


引入数据和提取数据

在本节中,要将来自应用程序栈的机器数据引入存储库。请参阅 第 1 部分:加快机器数据分析,了解有关应用程序及其日志的更多信息。

下载 部分提供了预先准备好的来自应用程序堆栈的日志批处理。

执行以下步骤。

  1. 下载 部分下载 data_and_config.zip,将它解压缩。
  2. data/input_batches 复制到 BigInsights 集群中的一台机器上。对于本教程,使用的位置是 /opt/ibm/input_batches。您可以将它修改为另一个首选位置。请注意那些包含批处理的目录结构。Input_batches 包含以下三个批处理,代表应用程序栈的三个层次。
    • Batch_webaccess – 包含来自 Web Access 层的日志。
    • Batch_was – 包含来自 WebSphere 应用程序的日志。
    • Batch_oradb – 包含来自 Oracle 数据库层的日志。
  3. 您将使用 Import-Extract 应用程序链,以便执行 Import 和 Extraction 步骤。由于 Import 应用程序使用了 Distributed Copy 应用程序,所以首先要确保已经部署了 Distributed Copy 应用程序。
    • 在 BigInsights 控制台中,单击 Applications 选项卡并选中 Manage 链接。
    • 在编辑框中输入 Distributed。您会看到,Distributed File Copy 被列出在 Applications 下面。
    • 如果应用程序状态是 NOT_DEPLOYED,那么单击 Deploy 按钮,如图 1 所示。
      图 1. 部署 Distributed Copy 应用程序
      该图显示了如何部署 Distributed Copy 应用程序
  4. 您现在已准备好使用 Import-Extract 应用程序链,以便运行 Import 和 Extraction 应用程序。在 BigInsights 控制台中,单击 Applications 选项卡并选中 Tree view 图标。
  5. 选中 Import-Extract 应用程序。提供输入和输出。您可以选择 ftp 或 sftp 协议进行文件传输。以下步骤使用了 sftp。
    • 导入输入路径:sftp://<server>/opt/ibm/input_batches。
    • 导入输出路径:/GOMDADemo/search/input_batches。
    • 凭据文件:在使用 ftp 时,保持默认值 NOT_SET。

      在使用 sftp 时,创建一下文件,它包含的内容如清单 1 所示,并将它保存在 HDFS 中,路径为 /user/biadmin/credstore/public/<filename>。

      清单 1. 凭据存储文件
      password=your_sftp_userpassword
      username=your_sftp_userid

      提供此文件的位置作为凭据文件 /user/biadmin/credstore/public/<filename>。

    • 提取输出路径:/GOMDADemo/output/extract_out。
    • 提取配置文件路径:保持默认值 /accelerators/MDA/extract_config/extract.config。
  6. 如果您已经完成了本系列的 第 2 部分:加快新的日志类型的分析,在输出路径(/GOMDADemo/output/extract_out)指向的位置,您会获得一个目录 batch_inbox。运行前面的步骤,以递增方式将新的批处理 batch_webaccessbatch_wasbatch_oradb 添加到相同位置。图 2 显示了成功完成 Import Extract 链的结果。
    图 2. 运行 Import Extract 链
    该图显示了如何运行 Import Extract 链
    如果您没有完成本系列的 第 2 部分:加快新的日志类型的分析,您不会在结果中看到 batch_inbox。您将在本教程的 在搜索中即插即用地使用新的日志类型 部分中添加该信息。

所有日志的整合的可搜索存储库

接下来,将数据编入整合的可搜索存储库中。

执行以下步骤。

  1. 在 BigInsights 控制台中,单击 Applications 选项卡并选中 Tree view 图标。
  2. 展开 Machine Data Analytics:Search 文件夹并选中 Index 应用程序。提供以下输入和输出。
    • Source directory:/GOMDADemo/output/extract_out。
    • Output path:/GOMDADemo/output/index_out。
  3. 浏览到输出路径指向的位置。单击 batch_list.json。您将在列表中看到 batch_webaccessbatch_wasbatch_oradb。这证实了,现在索引数据有一个可搜索的存储库,其中包含来自 Web Access、WebSphere 和 Oracle 数据库应用程序层的日志信息。
  4. 如果您已经完成了本系列的 第 2 部分:加快新的日志类型的分析,在列表中将会有 batch_inbox。现在,这个可搜索的存储库中有了电子邮件数据!
  5. 如果您没有完成本系列的 第 2 部分:加快新的日志类型的分析,结果中将不会列出 batch_inbox。您将在本教程的 在搜索中即插即用地使用新的日志类型 部分中添加该信息。

    图 3 显示了成功执行 Index 应用程序的结果。

    图 3. 运行 Index 应用程序
    该图显示了如何运行 Index 应用程序

    如果您已经在上一步中已经成功添加了电子邮件数据,或者您的用例对使用新的自定义类型不感兴趣的,那么您可以跳过本教程的 在搜索中即插即用地使用新的日志类型 部分,跳到 搜索!部分。


在搜索中即插即用地使用新的日志类型

您可以随时将新的数据添加到存储库!在本教程中,您将使用预先提取的电子邮件数据,在下载部分已提供了这些数据。

执行以下步骤。

  1. 在 HDFS 中,单击 Files 选项卡下的 Create Directory 图标,在 /GOMDADemo/output/extract_out 下面创建一个目录 batch_inbox
  2. 在 HDFS 中将所下载的 data_and_config/data/extract_outdata/extract_out/batch_inbox 分别复制到 /GOMDADemo/output/extract_out/GOMDADemo/output/extract_out/batch_inbox。现在,已准备好为电子邮件数据建立索引。
  3. 在 BigInsights 控制台中,单击 Applications 选项卡,然后单击 Tree view 图标。展开 Machine Data Analytics:Search 文件夹并选中 Index 应用程序。提供以下输入和输出。
    • 源目录:/GOMDADemo/output/extract_out。
    • 提取输出路径:/GOMDADemo/output/index_out。

    这将新的电子邮件批处理以递增方式添加到索引存储库,其中已包含来自 Web Access、WebSphere 和 Oracle 数据库层次的数据。

  4. 浏览到输出路径指向的位置,并单击 batch_list.json。batch_list.json 包含已成功索引并且在可搜索存储库中可用的所有批处理的列表。
  5. 在列表中可以看到 batch_inboxbatch_webaccessbatch_wasbatch_oradb。这证实了,现在索引数据有一个可搜索的存储库,其中包含来自 Web Access、WebSphere 、Oracle 数据库应用程序层和电子邮件数据的日志信息。

准备搜索,观察 facet 的自动发现

将索引从 HDFS 复制到运行控制台的机器上,让它可用于搜索。

执行以下步骤。

  1. 启动连接到运行控制台的机器的命令行会话。
  2. 以 BigInsights 管理员用户身份登录,默认用户为 biadmin
  3. 转到加速器安装位置下的 bin 目录。
  4. 运行如图 2 所示的命令。
    清单 2. 运行 copyIndex 实用程序
    [user@server bin]$ ./copyIndex.sh 
    -hdfsIndexDir=hdfs://bdvm235.svl.ibm.com:9000/GOMDADemo/output/index_out
                            
    INDEX_DIR = /opt/ibm/accelerators/MDA/mda_indexes
                            
    copying indexes from hdfs.
                            
    Indexes successfully copied to local file system.
                            
    MDA UI can be accessed at for secure install
    'http://<hostname>:8080/datasearch/login.jsp'.
                                
    MDA UI can be accessed at for non-secure install
    'http://<hostname>:8080/datasearch/html/Search.html'.
  5. 现在已经准备好进行搜索。打开一个浏览器实例,并使用如 copyIndex.sh 实用程序的输出中所描述的适当 URL。
  6. 搜索界面显示一个时间图,其中包含所有事件发生时的一个高级时间表视图。将鼠标悬停在图中的每个柱形上,就会显示在每个时间段内的事件数量。单击代表某个感兴趣的时间段的条形,可以将数据收缩至该时间段。您会在下一步完成该操作。

    图 4 示出了时间图。

    图 4. 高级时间图
    该图显示了高级时间图
  7. 基于所有数据中已提取的字段,可发现位于左边的 facet。 注意来自电子邮件日志类型的 FromTo facet。

    图 5 示出了跨所有数据的 facet。

    图 5. 跨所有数据的 facet
    该图显示了跨所有数据的 facet

    Sample Outdoors 公司的数据科学家注意到了其用例中不会使用的几个 facet。

    您将在本教程的 为用例配置用户界面 部分学习如何为用例配置用户界面。

  8. 搜索结果列出了跨所有数据的事件。图 6 示出了结果。
    图 6. 列出了所有事件的结果
    该图显示了列出了所有事件的结果

    接下来,您将体验收缩数据和向下钻取数据。


包括电子邮件在内的事件的时间顺序视图

现在,您将放大并查看发生于 7 月 14 日星期六的事件和电子邮件。

执行以下步骤。

  1. 从浏览器实例指向搜索界面,单击图形上最高的条形,它代表 15:00 至 15:59 的时间段,然后进入代表 3:58.00 至 3:58.59 P.M. 的时间段,如图 7 所示。
    图 7. 缩小到 7 月 14 日 3 至 4 pm
    缩小到 7 月 14 日 3 至 4 pm
  2. 观察结果中的事件,如图 8 所示。
    图 8. 包含电子邮件的事件
    包含电子邮件的事件

回答有关数据的一些简单问题,体验如何在您的数据结合使用文本检索、facet 搜索和基于时间的搜索。

执行以下步骤。

  1. 找出 customersupport@sampleoutdoors.com 收到了多少封电子邮件,何时收到这些电子邮件,以及它们来自哪些发件人。
    • 撤消时间范围过滤器,单击 Filtered by 旁边的 X 图标,如图 9 所示。
      图 9. 撤消时间范围过滤器
      该图显示了允许您撤销时间范围过滤器的 X 图标
    • 展开 To facet 并单击 customersupport@sampleoutdoors.com,如图 10 所示,查看收到了多少封电子邮件,何时收到这些电子邮件,以及由谁收到它们。
      图 10. 电子邮件信息
      该图显示了 customersupport@sampleoutdoors.com 收到了多少封电子邮件,何时收到,以及这些电子邮件来自谁
  2. 找出哪些事件表示错误。
    • 撤消 CodesAndValues 过滤器,单击 Filter by 旁边的 X 图标,如图 11 所示。
      图 11. 撤销 CodesAndValues 过滤器
      该图显示了 Undo CodesAndValues 过滤器
    • Search 文本框中,输入 *error*,如图 12 所示。
      图 12. 哪些事件指示了 “错误”?
      该图显示了指示 “错误” 的事件
  3. 找出哪些事件只属于 Web Access 或电子邮件批处理。
    • 修改文本搜索,包含 batchId:batch_webaccess or batchId:batch_inbox,如图 13 所示。
      图 13. 哪些事件只属于 Web Access 或电子邮件批处理?
      该图显示了哪些事件只属于 Web Access 或电子邮件批处理

      刚才我们已经查看了几种简单的可能性。可以使用时间范围、文本和 facet 搜索的任意组合来构建复杂的搜索。

  4. 要找出哪些电子邮件被发送到 customersupport@sampleoutdoors 或 websupport@sampleoutdoors,可以使用文本搜索,就像上一步所做的那样。

    在针对自定义日志类型(如电子邮件)的 facet 执行该特性之前,必须对配置做一些小改动。您将在本教程的 配置索引添加自定义日志类型的字段 部分完成此操作。


为用例配置用户界面

Sample Outdoors 公司的数据科学家想为其用例配置用户界面。他们想保留有意义的 facet,并删除其余 facet。他们还希望配置结果视图,删除在上下文中显示的一些默认 facet,并添加一些其他 facet。

执行以下步骤。

  1. 可以在所下载的 data_and_config//config/index.config 中找到下载的 index.config。
  2. 用下载的文件替代 <accelerator_install_location>/mda_indexes/index 目录中的 index.config。
  3. 所下载的 index.config 包含以下修改。
    • 若干个 facet 的 showFacet 字段被设置为 false。这会在用户界面中隐藏这些 facet。
    • 若干个 facet 的 showInResult 被设置为 false。这会在结果的上下文中删除这些 facet 显示。
    • 某些 facet 的 showInResult 被设置为 true。这会在结果的上下文中增加这些 facet 显示。
    • 对于 showFacet 被设置为 false 的 facet,所有字段的 createFacet 字段都被设置为 false。稍后在本教程的 优化!将配置融入到索引 部分中会使用这一字段。
  4. 重新启动控制台的方式如下。
    • 启动连接到运行控制台的机器的命令行会话。
    • 以 BigInsights 管理员用户的身份登录,默认用户为 biadmin。
    • 首先运行 $BIGINSIGHTS_HOME/bin/stop.sh 控制台,然后运行 $BIGINSIGHTS_HOME/bin/start.sh 控制台。
  5. 刷新指向用户界面的浏览器实例。
  6. 观察变化。不适用于该用例的多个 facet 已不再显示。只有适用的 facet 才被显示在结果窗格的上下文中。

Sample Outdoors 公司的数据科学家让已配置的搜索界面可供其团队使用。一旦团队能够成功完成其任务,数据科学家就会将配置融入到索引中。


通过配置索引来添加自定义日志类型的字段

将电子邮件日志类型的字段添加到索引,这样就可以在文本搜索中使用这些 facet。

执行以下步骤。

  1. 找到已下载的 jsonFacetLogAnalysisIndexSchema.xml 文件,可以在 data_and_config//config/ jsonFacetLogAnalysisIndexSchema.xml 中找到它。
  2. 在 HDFS 中用下载的文件替换 /accelerators/MDA/index_config/jsonFacetLogAnalysisIndexSchema.xml。可以使用 Files 选项卡上的 DeleteUpload 按钮执行此替换。
  3. 打开其下载版本。注意在文件末尾添加的特定于电子邮件的字段​​。

下一步的 Index 作业将使用该配置。


优化!将配置融入到索引

Sample Outdoors 的数据科学家已配置了用户界面,以便从用户界面删除某些 facet。他们的团队在此配置的用户界面上工作了几天,并能够完成他们的搜索需求。数据科学家们现在要将这个配置融入索引。从索引中删除其用例不需要的 facet,可以优化所生成的索引的大小和搜索时间。

执行以下步骤。

  1. 在 HDFS 中,单击控制台中 Files 选项卡下的 Create Directory 图标,在 /GOMDADemo 下面创建一个 config 目录。
  2. 单击控制台中 Files 选项卡下的 Upload 图标,将之前下载的 index.config (来自 为用例配置用户界面 部分)上传到 /GOMDADemo/config。
    • 请注意,在该配置中,showFacet 字段被设置为 false 的所有字段的 createFacet 也被设置为 false。Index 应用程序不会为这些字段创建 facet。
  3. 为了重新运行 Index 应用程序,请进行以下修改。
    • 单击以前的 Index application 执行。
    • Source directory 和 Output path 的输入和前面一样。
    • Configuration 文件指向 /GOMDADemo/config/index.config
    • 选中 Re-create Indexes 复选框,删除现有的索引,并创建一个新索引。
  4. 重新运行 copyIndex.sh 实用程序,这一次使用 Y 表示覆盖现有的索引。
  5. 刷新浏览器实例,使之指向优化的索引。

查看生成的 Search 界面。

数据科学家能够在结果窗格的上下文中查看电子邮件的 ToFrom 的值,如图 14 所示。

图 14. 在结果上下文中查看自定义日志类型的字段
该图显示了如何在结果上下文中查看自定义日志类型的字段

最后,他们还能够使用自定义日志类型的 facet 进行搜索。他们在 Search 文本框中提供 To:websupportTo:customersupport 字符串,并查看结果,如图 15 所示。

图 15. 在结果上下文中查看自定义日志类型的字段
该图显示了如何在结果上下文中查看自定义日志类型的字段

Sample Outdoors 公司的数据科学家让配置可用于生产的部署。

Sample Outdoors 公司内的更多工作组将他们的机器数据添加到常用的可搜索存储库。每一天,都需要添加新的机器数据,并且发现新的洞察。


结束语

借助虚构的 Sample Outdoors 公司的情况,我们探讨了如何使用 IBM Accelerator for Machine Data Analytics 创建各种日志的整合存储库,并搜索它们。我们还了解了定制的日志类型如何将即插即用的日志类型与开箱即用的日志类型一起使用,以及如何发现日志的 facet 。最后,我们了解了可以如何调优配置,为用例创建一个可选的解决方案。

致谢

感谢 Tom Chen (thchen@ca.ibm.com) 和 Amit Rai (amitrai4@in.ibm.com) 对这篇文章的技术审查,并感谢 Machine Data Accelerator 团队的所有成员对此特性的贡献。


下载

描述名字大小
data_and_config.zip---

参考资料

学习

获得产品和技术

  • 利用 IBM 试用版软件 构建您的下一个开发项目,可直接从 developerWorks 下载该软件。
  • 以最适合您的方式 评估 IBM 产品:下载产品试用版、在线试用产品、在云环境中使用产品,或在 SOA 沙盒 中学习如何高效地实现面向服务的架构。

讨论

  • 加入 My developerWorks 社区。探索由开发人员推动的博客、论坛、组和维基,并与其他 developerWorks 用户进行交流。

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management
ArticleID=948492
ArticleTitle=IBM Accelerator for Machine Data Analytics,第 3 部分: 加快机器数据搜索
publish-date=01312013