IBM Cognos BI 作为一款企业级商业智能产品,正在被更多的客户所接受。同时,IBM Cognos BI 在日志方面也提供了强大的支持,本文将涵盖 IBM Cognos 日志(基础)主题,较为详细的介绍产品所提供的常见类型日志,其中也涵盖了如何利用日志进行诊断、排错等相关内容。
IBM Cognos BI 日志简介
本文将以 IBM Cognos BI 10.2.0 作为事例对产品的日志系统做出一个讲解,但同时由于在以前版本也使用了同样的架构,所以本文也可以用于 8.4.1 版本以及 10.1.x 版本。
IBM Cognos BI 按照日志种类来分,通常可以有安装日志、审计日志、IPF 日志、专有组件日志等类型,本文作为基础篇,仅仅涵盖前三种最常见、最容易获取的日志类型。
安装时日志
安装时日志主要负责提供系统安装瞬间的日志信息,包括安装时的各项用户配置,还有安装的物理文件记录,同时也包含对内容管理器(Content Manager)的日志。系统安装的信息往往非常容易被忽视,使得未来系统诊断时漏掉一些有用错误信息,从而带来一些不必要的麻烦。
安装日志可以在 installation_location/instlog 文件夹中找到。其中安装时默认会生成这三类文件:安装日志、错误汇总、组件安装信息。
如图:
图 1. instlog 类型
安装详细日志
通常安装日志会以这个格式生成文件名:tl<组件名称><版本><时间>.txt,如截图中,安装过 BISRVR、BISAMPLES,以及在不同时间的安装细节。
图 2. 安装详细日志
从该.txt 日志中可以看到(为了更好展现,删去部分日志信息):
安装基础信息,包括操作系统、系统 locale 设置等。 从介质到安装的设定。 按照在 wizard 中的定制化选择进行安装。 创建安装日志文件夹以及日志。 系统安装使用语言设置。 各个组件详细安装过程。 安装完毕。
安装日志中的错误汇总日志
通常以这个格式生成文件名:tl<组件名称><版本><时间>_summary_error.txt,如截图中,安装过 BISRVR、BISAMPLES,以及在不同时间的安装细节。
图 3. 错误汇总日志
可以从例子中看出:
包含选择安装组件。 安装环境。 如果在安装环节出现错误,将会出现在这个部分。
组件安装信息
通常以这个格式生成文件名:tl<组件名称><版本><时间>.ats,这个文件记录了系统安装时所有用户选择自定义信息。在分布式安装系统中,当需要查看某机器安装组件时,可以一目了然的在这个文件中找到答案。
审计日志类型(Audit logging)
审计日志类型是一种 IBM Cognos BI 中提供的很强大的功能,不同于安装日志,审计日志能对系统、用户的使用作出较为详细记录。通常,审计日志会回答我们 “谁在什么时候对某个组件做了什么样的操作”的需要。系统管理员经常会依据审计日志对系统进行诊断,能够定位以及排查问题。
审计日志通常使用在:用户登录/登出、报表的执行、服务启动状态、计划任务等等。
该日志通过 Cognos BI 服务器的 log 服务(log service)来实现,由于该服务与其他组件/服务使用了不同的端口,所以相对其他组件保持独立,即便系统存在各组件的错误,也不会影响日志系统的工作。
图 4. log 服务
如上图所示:日志可以写入不同的介质,如文件系统或是数据库,也支持同时写入到不同的介质。用户可以根据配置不同,决定写入到各个介质中的内容。本文将介绍最常见的写入介质:文件系统以及日志数据库。
写入文件系统
系统会默认把日志写入 installation_location/logs/cogserver.log 中。由于是默认启动,同时以文本方式存储,往往 cogserver.log 成为了我们诊断、排错的最佳入口。
图 5. 在 IBM Cognos Configuration 中配置写入日志
其中 1 处是日志文件名以及存放地址,2 处可以设置最大日志文件大小,不建议设置超过 50MB 的日志。
在 cogserver.log 中,用户应该主要关注以下信息:
Host ID:主机信息。 Time:时间戳。 Component ID:被记录的组件。 Level:日志详细程度。 Logger:详细组件信息。 Operation:在本组件上做的操作。 Status:状态,通常会有 Success、Failure、Warning、Info 等状态类型。 Message:返回信息。 Log Data:详细返回信息。
最佳实践:如果发现 Failure(Status),可以直观的查看 Failure 记录前后所做的操作(Operation)。
写入日志数据库
在稳健运行的同时,也可以配置独立的日志数据库,使用数据库存储日志将会得到以下好处:
报表使用统计。 对报表、后台运行计划进行监控。 用户的活跃程度。
需要注意到的一点是:这种方式只是会记录日志级别在 “基础(basic)” 或以上的信息,且不会存储系统错误信息。
图 6. 在 IBM Cognos Configuration 中配置日志服务器
其中在 Logging 中可以创建新的写入介质(Database),如 1 处。成功后可以连接数据库,如 2 处,需要选择所支持的数据库类型。配置完毕后需要重新启动 IBM Cognos 服务器,一旦重启完毕,数据库表结构(table)以及列信息(column)将会自动创建。
日志级别
审计日志类型根据需要可以在 IBM Cognos Administration 中设置日志记录的详细级别,分别是 Minimal、Basic、Request、Trace、full 共五级。随着记录程度提高,日志就越详细,当然日志文件会越大,也会占用更多系统资源。
根据需要的不同,可以对每个服务单独设置日志级别,如专门针对 ReportService 进行独立的设置。
图 7. 设置日志级别
步骤 1:进入 IBM Cognos Administration -> Status -> System -> 需要使用到的分发器。
步骤 2:选择需要设置的服务 -> 点击向下三角符号 -> 设置属性。
步骤 3:在设置中 -> 选择日志分类 -> 可以看到所有可以设置的日志服务 -> 在"值"中选择合适的级别。
表 1. 日志级别解释
级别 包含选择 最小(Minimal) 包括启动、停止服务 运行时错误 基本(Basic) 所有以上中包括的 登陆、登出、登陆过期日志 报表、查询运行日志 计划运行日志 邮件发送日志 请求(Request) 所有以上中包括的 SOAP 请求与答复日志 跟踪(Trace) 所有以上中包括的 带参数与方法的组件与组件之间的请求 全部(Full) 所有以上中包括的 会对系统性能有一定影响
建议在需要的时候再开启 Request 以上级别的日志,因为会对系统性能造成影响。如果在诊断、排错中需要参考的话,请在动作发生完毕重新设置回默认日志级别。
IPF 日志(IPF logging)
IPF 是 Indication Processing Facility 的缩写,也就是 “指示处理功能”。IPF 是一种基于 log4j 的,并且基于服务、客户端架构。其中服务端存在于 IBM Cognos Configuration 与 IBM Cognos Connection 中,而客户端使用 ifp 的配置文件(.xml)进行配置。通常 IPF 会用在以下几种情况:
审计(audit):会记录组件到组件的相互调用信息。 跟踪(trace):记录正在进行的任务、调用。 性能(performance):任务所用到的系统资源。
IPF 客户端
由于 IPF 主要是配置客户端文件,而 IPF 的客户端同时也是一个针对组件的日志类型,所以我们会更多地关注 IPF 客户端。通常我们只能通过 ipfClientConfig.xml 来设置客户端,而且同时系统只能拥有一个 IPF 日志(因为 ipfClientConfig.xml 在系统中的唯一性),所以导致默认情况下系统同一时刻只能生成一个组件的 IPF 日志,不过可以通过配置该 xml 配置文件达到生成多个组件日志的目的,但是一定要小心修改 xml 配置文件。
IPF 主要用在组件中的错误诊断、排查以及性能方面的需求。所有各个组件配置文件都能在 installation_location/configuration 文件夹中找到,其中命名规则是 ipf<组件名>clientcongif.xml.sample。
图 8. 可以使用的 ipfClientConfig.xml 客户端(列表)
如上图列表中,每一个配置文件都针对一定的组件。
IPF 如何工作
选择需要的组件针对的配置文件,以 UDA 组件为例,通过以下步骤生成 IPF 日志:
步骤 1:找到 ipfUDAclientconfig.xml.sample,并将其重命名为 ipfclientconfig.xml。
步骤 2:等待。IPF 服务会在 60 秒内巡查到文件的变化。
步骤 3:当 IPF 服务巡查到了 ipfclientconfig.xml 文件,会立即依据这个文件的配置生成新的日志。
步骤 4:当需要的记录结束后,请重新命名 ipfclientconfig.xml,如 ipfUDAclientconfig.xml.sample,因为打开 IPF 会对性能造成一定的影响。
注意:IPF 事实上详细程度超过了刚刚介绍的审查日志(audit log),审查日志中做的有关日志详细程度等级设置将不会影响到 IPF 日志。
表 2. 最常用到的组件
组件名(同时也可以从错误信息中判断出 对应文件 说明 CM ipfCMclientconfig.xml.sample 内容库存储相关问题 AAA ipfaaaclientconfig.xml.sample 安全相关问题 UDA ipfUDAclientconfig.xml.sample 运行时查询相关问题 M
DDS ipfMDDSclientconfig.xml.sample 与第三方 OLAP 服务提供者的交互相关问题 CQE ipfCQEclientconfig.xml.sample 传统查询模式相关问题 DISP ipfDISPclientconfig.xml.sample 启动问题,分配器问题,负载均衡相关问题 RSVP ipfRSVPclientconfig.xml.sample 报表服务,报表以及查询,性能相关问题 XQE ipfXQEclientconfig.xml.sample 动态查询模式(DQM)相关问题 SDS (Scheduling & Delivery Service) ipfSDSclientconfig.xml.sample 计划任务以及邮件报表相关问题
常用日志查看工具简介
在利用上述日志进行错误排查、诊断的时候,使用一款好的日志产看工具是非常重要的。在这里介绍一款 IBM Cognos BI 内置的日志查看工具:logviewV2.exe。根据安装版本的不同,可以在 installation_location/bin64/处找到。
LogviewV2 工具使用
logviewV2 是一款很简单但是功能强大的工具,可以直接打开日志文件,如 cogserver.log,也可以直接选择带过滤器的日志,例如可以打开一段时间内的日志,也可以打开自定义过滤器的日志。
图 9. 打开时间区间的日志
步骤 1:打开 logviewV2.exe。
步骤 2:选择 File -> Load File(s) with Filters... -> Add Time Filter -> 根据需要设置查看的区间。
步骤 3:点击 OK 后日志将只显示设定时间内的日志。
图 10. LogviewV2 UI
如上图,其中左上部分已经按照日志内容,自动分成树状目录,可以通过选择,而只关注部分组件的日志,例如当实际系统中发现了负载均衡的潜在问题,就可以只关注 dispatcher 部分的日志。
左下部分是一个过滤器区域,可以根据需求设置多个过滤器,方便查看。
右上区域是日志的内容,方便的是 logview 工具可以根据需要左右拖动列,例如可以直接把时间列(Time)拖动到状态列(status)旁边,以便更加灵活的查看日志。工具还提供了警示色的功能,如果在状态列日志为失败(failure),该行便以红色高亮显示。
右下区域是详细内容,将上方信息以更直观的方式显示出来。方便对一条日志做一个整体的查看。
同时该工具还在工具栏中提供了统计错误信息的按钮,如图中工具栏中红色圆按钮,将会对打开日志部分中错误做出汇总,其中会将每条错误的最后发生时间以及错误信息罗列出来。同时选择一条错误,点击 “Generate Filter” 按钮,将会只针对该类型错误自动生成一个新的过滤器,从而只显示需要的错误日志。
图 11. 工具中错误总结功能
当然,也可以手动创建使用过滤器:
步骤 1:点击左下角漏斗(new)按钮创建。
步骤 2:在弹出窗口中输入过滤器名称以及必要信息。
步骤 3:点击 “Edit” 按钮,进行规则的创建。
步骤 4:在弹出窗口中选择针对的列名,比如说想要找到所有 Message 中含有 “CM-” 错误的记录就需要将 “Message” 添加进来。
步骤 5:点击 OK 按钮,在弹出窗口中选择 CONTANS 和 CM-,点击 OK。
新的过滤器创建完毕,同时可以编辑以及删除各个过滤器,也可以选择多个过滤器,和他们满足的条件,如 “与(AND)” 、“或(OR)”条件。
总结
至此,本文对常见 IBM Cognos BI 日志系统做了简单的总结以及进行了应用实践环节的说明。作为基础篇,本文涵盖了最常见的日志以及配置方法,同时介绍了日志查看工具,但本文并未涵盖针对组件专有的日志类型。
IBM Cognos BI 日志系统非常强大,一旦了解,便可以在错误发生第一时间进行错误诊断以及排查,节省宝贵的时间。