使用 Log Analyzer 进行第 1 阶段问题确定


使用 Log Analyzer 进行第 1 阶段问题确定

 

Andy McCright , 服务能力开发人员,IBM WebSphere Application Server, IBM
Andy McCright 是在明尼苏达州罗彻斯特实验室工作的 WebSphere Application Server 服务能力开发人员。在 IBM 工作的五年中,他曾参与了 IBM Support Assistant、Log Analyzer 工具的开发工作,并帮助客户解决各种与 WebSphere 相关的问题。
Russell Wright , WebSphere Serviceability Development, EMC
Russell Wright 拥有多年开发和支持数据通信和中间件软件的经验,其中包括 WebSphere Application Server。他目前管理 IBM Support Assistant 的故障排除工具的部署,并且是开发 IBM Guided Activity Assistant 的团队的一名开发人员。
(An IBM developerWorks Contributing Author)

简介:  遇到问题时,您通常希望首先确定是否有快速解决方案可用,还是需要进行更进一步的协助。免费提供的 Log Analyzer 工具可以帮助您在需要进行此类初始评估时节约大量的故障诊断时间。 本文来自于 IBM WebSphere Developer Technical Journal

查 看本系列更多内容

<!-- <p class="ibm-no-print"> <div id="dw-tag-this" class="ibm-no-print"></div> <div id="interestShow" class="ibm-no-print"></div> </p> -->

发布日期:  2009 年 4 月 15 日
级别:  初级
其他语言版本:  英 文
访问情况  1176 次浏览
建议:   <!-- Rating_Area_Begin --> <!-- Ensure that div id is based on input id and ends with -widget -->

<script type="text/javascript"> // &lt;![CDATA[ // widget div id and article id as args window.artRating.init('art-rating-widget'); // ]]&gt; </script><!-- Rating_Area_End -->
<!-- dW_Summary_Area_END --> <!-- CONTENT_BODY -->
<!-- MAIN_COLUMN_BEGIN -->
<!-- Related_Searches_Area_And_Overlays_Begin --> <!-- MAIN_COLUMN_CONTAINER_BEGIN -->
<!-- MAIN_COLUMN_CONTENT_BEGIN -->

在每个专栏中,支持权威将讨论 IBM® Technical Support 的可用于 WebSphere® 产品的资源、工具和其他元素,以及一些可以进一步增强您的 IBM 支持体验的技术和新思想。

最新快报

按照惯例,我们将首先提供关于整个 WebSphere 社区的一些重要新闻:

  • 现在已经推出了 IBM Guided Activity Assistant 的新更新,可通过 IBM Support Assistant 中的 Guided Troubleshooter 获得,还可以从 alphaWorks 获得此更新:
    • Java™ 故障诊断指导活动现在包含帮助解决性能问题的辅助功能。
    • 可以通过新的链接功能为指导活动中的特定步骤添加书签。(此功能只在 alphaWorks 版本中提供。)
  • 获得这些 WebSphere 产品的最新 IBM Support Assistant 插件
    • IBM WebSphere Application Server V7
    • IBM WebSphere Application Server Feature Pack for Web 2.0
    • IBM WebSphere Business Monitor 6.1
  • 是否有兴趣从 IBM WebSphere Business Integration Server Foundation 迁移到 IBM WebSphere Process Server V6.1?请参见新推出的 红皮书 ,以了解更多信息。
  • 您是否注意到了 My Support 订阅中有变化?My Support 最近替换为了新的 My Notifications 服务。

继续关注与 支持相关的各个网站 以及本专栏,以获得有关我们所碰到的其他工具的新闻。

接下来让我们继续今天主要的主题……


回页首

什么是第 1 阶段问题确定?

第 1 阶段问题确定(Phase 1 Problem Determination,Phase 1 PD)指的是初步标识、了解并尽力解决软件问题。这是一个类比,人生病了去看普通内科医生,进行第一阶段的诊断;医生将检查病人的体温、血压和外部症状, 但是如果需要更为深入的分析,医生将列出进行进一步检查的实验室服务,或将病人转诊给专家进行诊治。与此类似,Phase 1 PD 将帮助您解决问题,如果不能解决问题,则推荐您使用更为高级的故障诊断工具,甚至推荐通过 IBM 技术支持部门解决问题。

由于其目的是初级诊断,因此 Phase 1 PD 将主要检查日志文件。跟踪和其他诊断(如堆或线程转储)可以提供宝贵的数据,但在运行期间通过这些方法收集开销将很大,或者可能仅在重现软件故障时才能使 用。(如何收集和分析这些诊断数据不在 Phase 1 PD 讨论范围之列。)

IBM 当前提供了 Log Analyzer 工具来帮助进行第 1 阶段问题确定。此工具以 IBM Support Assistant 插件的形式提供。


回页首

什么是 Log Analyzer?

Log Analyzer 是 IBM Tivoli® Autonomic Computing 组织开发的免费工具。它能处理 200 多种不同 IBM 产品的日志文件,允许对这些产品的日志条目进行排序、筛选、相关和分析操作。例如,通过使用此工具,可以方便地同时查看不同的 IBM WebSphere Application Server 实例、IBM HTTP Server 实例、DB2® 应用程序和其他产品的日志文件中的情况。

通过与 IBM Support Assistant 结合使用,Log Analyzer 甚至更为强大。Log Analyzer 能识别案例,即能够查看在 Support Assistant 案例管理器中收集的日志文件。而且,它还能利用 leverage IBM Support Assistant 代理技术来从远程系统收集日志文件,可以很方便地收集和分析来自生产系统的日志。有关收集日志的更多信息,请参见 Support Authority 专栏使 用 IBM Support Assistant 收集诊断信息

本文剩下的部分将描述一个可以通过使用 Phase 1 PD 予以解决的场景。


回页首

示例场景

通过使用 WebSphere Application Server Version 6.X,您可以将应用服务器的日志文件配置为按特定的间隔进行“结转 (roll over)”。也就是说,服务器将对日志文件进行存档,以防止文件过大而无法管理。在此场景中,在您的基于 Microsoft® Windows® 的 WebSphere Application Server 安装上,日志文件结转未能按照预期进行存档。

A. 收集相应的日志文件

Phase 1 PD 中的第一步是收集所有相关的诊断信息。可以通过两种方式使用 Log Analyzer 和 IBM Support Assistant 收集此数据:

  • 使用数据收集器。
  • 使用系统资源管理器手动选择文件。

这两种方法都假定工具与故障产品安装在相同的系统上,或在故障系统上安装了 IBM Support Assistant Agent。

数据收集器根据您的输入收集大量文件,并将其存储在 .zip 文件中,以供 Log Analyzer 使用。在 IBM Support Assistant 中,可以通过 Analyze Problem 活动访问此功能。为了让数据收集器能够处理特定的产品,必须从 IBM Support Assistant 的更新程序安装该产品的插件。有关代理技术和数据收集的更多信息,可以参见这 篇较早的“权威支持”专栏文章

通过系统资源管理器,可以浏览本地和连接到相同的 IBM Support Assistant 代理管理器的远程主机的文件系统。与其他文件浏览器类似,系统资源管理器允许查看这些远程主机上的文件的内容。与常规文件浏览器不同,系统资源管理器还允 许将文件从远程(或本地)文件系统传递到 IBM Support Assistant 的案例管理器中的新案例或现有案例中。Log Analyzer 可以从导入向导访问系统资源管理器和案例管理器。

为了简化此场景,请假定存在日志文件结转故障的 WebSphere Application Server 安装与 IBM Support Assistant 工作台位于相同的系统上:

  1. 导航到 C:\IBM\WebSphere\ApplicationServer\profiles\AppSrv01\logs\server1 下的 WebSphere Application Server,并将 SystemOut.log 文件添加到新案例。
  2. IBM Support Assistant 会提示输入案例名称和可选描述。还可以创建事件或文件夹来帮助组织案例。现在仅仅创建名为“Log file rollover issue”的案例即可。
  3. 单击 OK 关闭此对话框时,SystemOut.log 文件将被赋值到 IBM Support Assistant 的案例管理器中,Log Analyzer 之类的工具可从中进行访问。从此视图中可以进行多项选择,一次性添加多个日志文件。(图 1)。

图 1. IBM Support Assistant
图 1. IBM Support Assistant

B. 将日志导入到 Log Analyzer 中

既然已经将“异常巨大”的日志文件收集到了 IBM Support Assistant 的案例管理器中,就已经准备好启动 Log Analyzer 了。可以通过切换到 Analyze Problem 活动并选择 Tools 选项卡来通过 IBM Support Assistant 启动。如果 Log Analyzer 未显示在工具目录中,将需要使用 Updater 进行安装:

  1. 从 Update 菜单中选择 Find new... => Tools Add-ons
  2. JVM-based Tools 标题下的对话框中选择 Log Analyzer
  3. 接受许可协议之后,即可完成安装。

Log Analyzer 一旦启动后,就可以导入添加到 IBM Support Assistan 的案例管理器的案例中的日志文件。

从 Log Analyzer 选择 File => Import Log File 。将显示与 图 2 类似的对话框。


图 2. 导入日志文件
图 2. 导入日志文件
Log Discovery Service 最适合用于从使用 IBM Support Assistant 代理的远程系统导入日志文件。Register file 选项(仅仅适用于远程文件系统)可将所选日志文件添加到该系统上的 IBM Support Assistant 代理对应的日志文件存储库中。当再次需要此日志文件时,可以在导入向导中更为方便地找到此文件。

从这里,可以选择您前面导入到 IBM Support Assistant 中的 Log file rollover issue 案例下的 SystemOut.log 文件。可以同时导入多个文件,但是对于此场景,只需要 SystemOut.log。Log Analyzer 应该正确地将此日志文件标识为 WebSphere Application Server 日志文件。您并不需要修改筛选器设置,也不应向 Log Analyzer 的 Log Discovery Service 注册此文件,因为此文件已经位于本地文件系统上了。

单击 Finish 后,您将在表视图中看到此日志文件,与图 3 所示类似。


图 3. 日志文件的表视图
图 3. 日志文件的表视图

现在已经完成了准备工作,可以对日志进行分析了。

C. 分析日志并寻找已知的解决方案

第一步是快速标识此日志中的所有错误消息。Log Analyzer 提供了内置筛选器“Show error log records only”,可将不会被视为错误消息的所有日志记录筛选出去。Log Analyzer 还提供了创建自定义筛选器的功能,如将特定日期之前(或之后)的日志记录、包含特定文本的消息或安全性高于或低于特定级别的日志记录等等筛选出去。(图 4)


图 4. 日志记录筛选器
图 4. 日志记录筛选器

在这个特定的日志文件中,只有一条错误消息,单击此消息时,会看到在尝试将一个日志文件存档到另一个文件时发生意外的异常。异常文本包含(图 5):

Unable to rename file C:\was6109\profiles\AppSrv01\logs\server1\SystemOut.log to
C:\was6109\profiles\AppSrv01\logs\server1\SystemOut_08.08.11_12.18.11.log


图 5. 存档异常
图 5. 存档异常

要对此错误消息进行分析,需要导入 IBM 提供的最新症状目录。IBM 维护着超过 20 个涉及多个产品的多个版本的症状目录。还可以使用 Symptom Editor 工具(也通过 IBM Support Assistant 提供下载)创建自定义症状目录。症状目录对匹配日志记录和其他信息进行映射,并提供解决问题的建议和操作。

对于此问题,您将导入 WebSphere Application Server Version 6.1 的症状目录:

  1. 首先选择 File => Import Symptom Catalog...
  2. 从 Import System Catalog 向导中选择 From Remote host 选项,并选择 Symptom catalog for IBM WebSphere Application Server, Version 6.1 ,然后单击 Finish (图 6)。这将下载和安装此症状目录。安装之后,就准备执行分析了。

    图 6. 导入症状目录
    图 6. 导入症状目录

  3. 在日志视图中右键单击错误消息,并选择 Analyze Selection 。首次单击此消息时,反 应将需要一定时间,因为 Log Analyzer 要编译症状目录。
  4. 完成之后,将看到 Symptom Analysis Results 视图中显示了单个命中结果(在图7 的右侧窗格中)。Recommendation and actions 选项卡显示达到了日志文件结转阈值,但是某个问题影响了成功的转接。下一步是确定问题是 WebSphere Application Server 错误,还是其他问题。

    尽管症状目录提供了一些信息,我们了解到应用服务器无法将 SystemOut.log 文件重命名为 SystemOut_<timestamp>.log 文件,但这些信息不足以解决问题。但是先不要气馁。再试试另一种方法:搜索。



    图 7. 症状分析结果
    图 7. 症状分析结果

  5. 返回日志视图,右键单击错误消息,并选择 Search Message ID in IBM Support Assistant 。这将使 IBM Support Assistant 的搜索机制启动搜索请求,这将同时搜索 IBM Support 文档、developerWorks 文章、新闻组、论坛和 Google 搜索引擎。搜索结果将显示在右下窗格中。(图 8)

    图 8. 搜索结果
    图 8. 搜索结果

如果单击 IBM Software Support Documents 结果,将会看到在上图中显示的结果。第一个文档似乎不相关,因为其所指的是 IBM Rational® Application Developer。虽然您可能从此文档学到了一些东西,但接下来的两个结果似乎更重要一些。

通过单击第二个文档链接,Log Analyzer 将打开指向该文档的浏览器窗口。如果喜欢在自己的浏览器中打开此文档,请直接右键单击链接,并选择 Copy link to clipboard 。这样就可以将 URL 粘贴到您自己喜欢的浏览器中。

此文档似乎会告诉您需要知道的东西。阅读文档,发现其中提到 (1) 有些非 WebSphere Application Server 进程可能会在日志文件上有锁定,这样会阻止应用服务器进行重命名,(2) 有修补程序可以解决这个日志结转问题,但是 (3) 虽然修补程序有效,不过最好的执行选项是停止锁定日志文件的进程(通常为文本编辑器或追加日志内容的程序等等)。

得益于 Phase 1 PD 流程和 IBM 提供的这些免费工具,您能够快速解决这个特定问题,而无需 IBM Support 的帮助。


回页首

总结

Phase 1 PD 在解决软件问题方面是一个非常有效的流程。本文中的场景说明了如何使用 Log Analyzer 通过检查 WebSphere Application Server 的标准输出直接解决问题。在很多情况下,Log Analyzer 可以让您快速而方便地确定问题的原因并实现解决方案。

IBM 提供了多个免费工具,可对问题的确定起到促进作用。通过与第 1 阶段问题结合,可以很容易地找到软件相关问题的解决方案。