Sun Java 徽标     上一页      目录      索引      下一页     

Sun 徽标
Sun[TM] Identity Manager 8.0 管理 

第 16 章
数据导出器

通过使用数据导出器功能,您可以将有关用户、角色和其他对象类型的信息写入外部数据仓库中。

本章提供的信息和过程可以帮助您设置和维护数据导出器。有关计划和实现数据导出器的完整详细信息,请参阅 Identity Manager 技术部署概述

本章采用以下组织形式:


什么是数据导出器?

Identity Manager 包含与在分布式系统和应用程序中管理标识有关的数据并对该数据进行处理。为提高整体性能,Identity Manager 并不完全保留在正常置备和其他日常活动期间生成的所有数据。例如,默认情况下,Identity Manager 不会保留中间状态工作流活动和任务实例。如果需要捕获 Identity Manager 通常丢弃的全部或部分数据,您可以启用数据导出器功能。

如果启用了数据导出器,则 Identity Manager 会将检测到的每个对指定对象(数据类型)的更改作为记录存储到系统信息库表中。这些事件将排入队列,直到任务将其写入外部数据仓库中为止。(您可以配置每种数据类型的导出频率。) 可以对导出的数据进行进一步处理,或者将其用作通过商业转换、报告和分析工具进行查询和转换的基础。

将数据导出到数据仓库会对 Identity Manager 服务器性能产生不利影响,除非业务上需要导出数据,否则不应启用该功能。

Identity Manager 还允许创建和执行取证查询。取证查询将搜索数据仓库,以找出符合指定条件的用户或角色对象。有关详细信息,请参见配置取证查询


计划实现数据导出器

由于默认情况下禁用了数据导出器,因此,必须对其进行配置才能恢复运行。要配置数据导出器,您需要在开始配置之前做出以下决定:

在启用数据导出器后,默认配置将导出所有数据类型的所有属性。这可能会消耗从不使用的仓库存储,从而给 Identity Manager 和仓库造成不必要的处理负担。数据仓储具有审慎保守的特点,仅在以后可能会用到数据时才捕获该数据。您不必导出所有可导出的数据。您可以配置要导出的数据类型,并限制导出某些事件。

在做出这些决定后,请使用以下步骤实现数据导出器:

  1. (可选)为选定类型自定义导出模式并重新生成仓库 DDL。有关详细信息,请参阅 Identity Manager 技术部署概述
  2. 在仓库 RDBMS 上创建一个用户帐户,并在该系统上加载仓库 DDL。有关详细信息,请参阅 Identity Manager 技术部署概述
  3. 按照配置数据导出器中所述,配置数据导出器。
  4. 测试数据导出器,确保已正确对其进行了配置。有关详细信息,请参见测试数据导出器
  5. (可选)创建可以搜索已写入数据仓库中的数据的取证查询。有关详细信息,请参见配置取证查询
  6. 使用 JMX 并监视日志文件以维护数据导出器。有关详细信息,请参见维护数据导出器


配置数据导出器

在“数据导出器配置”页中,可以定义要保留的数据类型、指定要导出的属性以及计划数据的导出时间。可以单独配置每种数据类型。

要配置数据导出器,请执行以下步骤:

  1. 在管理员界面中,单击主菜单中的配置。然后单击仓库次级选项卡。将打开“数据导出器配置”页。
  2. 图 16-1
    主“数据导出器配置”页
    数据导出器配置

  3. 要定义读取连接和写入连接,请单击添加连接按钮。将打开“编辑数据库连接”页。
  4. 填写该页上的字段,然后单击保存以返回到“数据导出器配置”页。有关详细信息,请参见定义读取连接和写入连接

  5. 要指定 WIC 类和数据库连接,请单击“仓库配置信息”部分中的编辑链接。将打开“数据导出器仓库配置”页。
  6. 填写该页上的字段,然后单击保存以返回到“数据导出器配置”页。有关详细信息,请参见定义仓库配置信息

  7. 在“仓库模型配置”表中,单击一个数据类型链接。将打开“数据导出器类型配置”页。
  8. 填写该页上的导出属性进度表选项卡,然后单击保存以返回到“数据导出器配置”页。有关详细信息,请参见配置仓库模型

    对于每种数据类型,请重复此步骤。

  9. 要配置导出任务守护进程,请单击“仓库任务配置”部分中的编辑链接。将打开“数据导出器仓库配置”页。
  10. 填写该页上的字段,然后单击保存以返回到“数据导出器配置”页。有关详细信息,请参见配置仓库任务


    在完成这些步骤后,即可完全正常运行导出。在启用导出后,数据记录将开始排队以进行导出。如果未启用导出任务,队列表将填满,然后排队将暂停。通常,小批导出(更频繁)比大批导出效率更高,但导出受制于仓库本身的写入可用性,这种可用性可能会由于其他原因而受到限制。


  11. (可选)设置队列的最大大小。有关详细信息,请参见修改配置对象

定义读取连接和写入连接

Identity Manager 在导出周期内使用写入连接。Identity Manager 使用读取连接指示仓库中当前(在仓库配置期间)有多少条记录以及为取证查询界面提供服务。

可以将仓库连接定义为应用服务器数据源、JDBC 连接或对数据库资源的引用。如果定义了 JDBC 连接或数据库资源,数据导出将在写入操作期间大量使用少数几个连接,然后关闭所有连接。在仓库配置和取证查询执行期间,数据导出器仅使用读取连接,并在操作完成后立即关闭这些连接。

导出器对写入连接和读取连接使用相同的模式,并且您可以对两者使用相同的连接信息。不过,如果使用单独的连接,部署可以向一组仓库临时表中写入内容,将这些表转换为实际仓库,然后将仓库表转换为 Identity Manager 从中读取数据的数据市场。

可以编辑“数据导出配置”表单以禁止 Identity Manager 从仓库中读取数据。此表单包含 includeWarehouseCount 属性,它可导致 Identity Manager 查询仓库并显示每种数据类型的记录数。要禁用此功能,请复制“数据导出配置”表单,将 includeWarehouseCount 属性值更改为 true,然后导入自定义表单。

要定义读取连接和写入连接,请执行以下步骤:

  1. 在“数据导出器配置”页中,单击添加连接按钮。
  2. 图 16-2
    数据导出器“编辑数据库连接”页
    数据导出器配置

  3. 可通过从连接类型下拉菜单中选择一个选项,指定 Identity Manager 如何建立到数据仓库的读取连接或写入连接。
    • JDBC - 使用 Java 数据库连接 (Java Database Connectivity, JDBC) 应用程序编程接口连接到数据库。连接池是由仓库接口代码提供的。
    • 资源 - 使用在资源中定义的连接信息。连接池是由仓库接口代码提供的。
    • 数据源 - 将基础应用服务器用于连接管理和连接池。这种类型的连接从应用服务器中请求连接。
    • 根据从连接类型下拉菜单中选择的选项,页面上显示的字段可能会有所不同。有关配置数据库连接的详细信息,请参阅联机帮助。

  4. 单击保存以保存配置更改,并返回到“数据导出器配置”页。

如果使用单独的读取连接和写入连接,请重复此过程。

定义仓库配置信息

要配置仓库,您必须选择读取连接和写入连接,并指定仓库接口代码工厂类。WIC 工厂类提供了 Identity Manager 与仓库之间的接口。Identity Manager 提供了一个默认代码实现,但您也可以生成自己的代码。有关创建自定义工厂类的信息,请参见 Identity Manager 技术部署概述

在执行导出任务的 Identity Manager 服务器以及任何配置了数据导出器的服务器上,$WSHOME/exporter 目录中必须存在包含工厂类的 JAR 文件以及任何提供支持的 JAR 文件。在任何给定时间,只能有一个 Identity Manager 服务器可以导出数据。

要定义仓库配置信息,请执行以下步骤:

  1. 在“数据导出器配置”页中,单击“仓库配置信息”部分中的编辑链接。
  2. 图 16-3
    “数据导出器仓库配置”页
    数据导出器配置

  3. 仓库接口代码工厂类名称字段中指定一个值。如果集成人员未创建自定义类,请输入值 com.sun.idm.warehouse.base.Factory
  4. 读取连接写入连接下拉菜单中选择选项以指定连接。
  5. 单击保存以保存配置更改,并返回到“数据导出器配置”页。

配置仓库模型

每个可导出的数据类型都具有一组选项,用于控制是否导出该类型、如何导出该类型以及何时导出该类型。导出数据会增加 Identity Manager 服务器上的负载,因此应该仅为业务需要的数据类型启用导出操作。

下表描述了可以导出的每种数据类型。

表 16-1 支持的数据类型

数据类型

描述

Account

包含用户和资源帐户之间的关联的记录

Entitlement

包含特定用户的证明列表的记录

LogRecord

包含单个审计记录的记录

ObjectGroup

作为组织模拟的安全容器

Resource

置备帐户的系统/应用程序

ResourceAccount

组成特定资源上的帐户的一组属性

Role

用于访问的逻辑容器

Rule

可以由 Identity Manager 执行的逻辑块

TaskInstance

指示正在执行或已完成的进程的记录

User

包含零个或多个帐户的逻辑用户。

WorkflowActivity

Identity Manager 工作流的单个活动

WorkItem

Identity Manager 工作流中的手动操作

要配置仓库模型,请执行以下步骤:

  1. 在“数据导出器配置”页中,单击一个数据类型链接。
  2. 在“导出”选项卡中,指定是否导出该数据类型。如果不希望导出该数据类型,请取消选中导出复选框,然后单击保存。否则,根据需要选择此“导出”选项卡上的其余选项。
    • 允许查询 - 控制是否可以查询模型。
    • 全部排入队列 - 捕获对这种类型的对象进行的所有更改。选中此选项可能会显著增加导出器的处理开销。应谨慎使用此选项。
    • 捕获删除 - 记录已删除的所有该类型的对象。选中此选项可能会显著增加导出器的处理开销。应谨慎使用此选项。
  3. 在“属性”选项卡中,可以选择将哪些属性指定为取证查询的一部分,以及在查询结果中显示哪些属性。无法从管理员界面中删除默认属性。有关更改默认属性的信息,请参见 Identity Manager 技术部署概述
  4. 新属性名称具有以下特征:

    • attrName - 该属性是一个顶层标量属性。
    • attrName[] - 该属性是一个具有列表值的顶层属性,列表中的元素为标量。
    • attrName['key'] - 该属性包含映射值,需要提供具有指定关键字的映射值。
    • attrName[].name2 - 该属性是一个具有列表值的顶层属性,列表中的元素为结构。name2 是结构中要访问的属性。
  5. 指定与“进度表”选项卡上的数据类型关联的信息的导出频率。周期相对于服务器上的午夜零点。周期为 20 分钟的导出操作将发生在午夜零点,以及零点过后的第 20 分钟和第 40 分钟。如果尝试导出所需的时间比计划的周期长,则会跳过下一个周期。例如,如果将周期定义为 20 分钟、从午夜零点开始,并且需要 25 分钟才能完成导出,则下次导出将在 00:40 开始。不会执行最初预定在 00:20 进行的导出。

配置仓库任务

并不要求在专用服务器上运行导出任务;但如果希望导出大量的数据,则应该考虑使用专用服务器。在将数据从 Identity Manager 传输到仓库时,导出任务的效率较高,并且在导出操作期间会占用尽可能多的 CPU。如果没有使用专用服务器,应限制服务器处理交互通信,因为在导出大量数据期间会显著增加响应时间。

要配置仓库配置信息,请执行以下步骤:

  1. 在“数据导出器配置”页中,单击“仓库任务配置”部分中的编辑链接。
  2. 图 16-4
    “数据导出器仓库进度表”页
    数据仓库进度表配置

  3. 启动模式下拉菜单中选择一个选项,以确定在启动 Identity Manager 时是否自动启动仓库任务。选择“已禁用”表示必须手动启动任务。
  4. 选中以本人身份运行复选框,以便使用管理帐户运行导出器任务。
  5. 选择可运行该任务的服务器。您可以指定多个服务器,但在任何给定时间只能运行一个仓库任务。如果执行任务的服务器停止,调度程序将自动在列表中的另一个服务器(如果可用)上重新启动任务。
  6. 队列读取块大小字段中,指定在写入之前从队列读取到内存缓冲区的记录数。此字段的默认值适用于大多数导出。如果 Identity Manager 系统信息库服务器比仓库服务器慢,则增加该值。
  7. 队列写入块大小字段中,指定在单个事务中写入仓库的记录数。
  8. 队列清空线程计数字段中,指定用于读取队列记录的 Identity Manager 线程数。如果队列表中包含大量不同类型的记录,则增大该数字。如果队列表中包含的数据类型较少,则减小该数字。
  9. 单击保存以保存配置更改,并返回到“数据导出器配置”页。

修改配置对象

在数据导出器已配置并且正常运行后,将在内部队列表中捕获配置为排入队列的任何数据类型。默认情况下,该表没有上限,但可通过编辑数据仓库配置配置对象来配置上限。此对象具有一个名为 warehouseConfig 的嵌套对象。请将以下行添加到 warehouseConfig 对象中:

<Attribute name='maxQueueSize' value='YourValue'/>

maxQueueSize 的值可以为小于 231 的任意正整数。在达到该限制时,数据导出器将禁止进行排队。直到清空队列后,才能导出生成的数据。

Identity Manager 的常规操作每小时可能会生成数千条更改的记录,因此,队列表可能会迅速变大。由于队列表位于 Identity Manager 系统信息库中,这种增长会消耗 RDBMS 中的表空间,并且可能会耗尽表空间。如果表空间数量有限,则可能需要在队列上设置上限。

可以使用数据队列 JMX Mbean 来监视队列表的大小。有关详细信息,请参见监视数据导出器


测试数据导出器

在正确配置数据导出器后,它将作为后台进程运行,以便按配置的间隔将数据发送到仓库。要按需运行导出器,请使用“数据仓库导出器启动程序”任务。

要启动数据仓库导出器启动程序,请执行以下步骤:

  1. 禁用仓库任务。有关详细信息,请参见配置仓库任务
  2. 在主菜单中单击服务器任务。然后单击运行任务次级选项卡。将打开“可用任务”页。
  3. 单击数据仓库导出器启动程序链接。将打开“启动任务”页。
  4. 选中调试选项复选框以显示其他选项。
  5. 选中忽略初始 LastMod 复选框,以使导出器忽略它用于确定 Identity Manager 系统信息库中已导出记录的“上次轮询”时间戳。如果选择该选项,则会导出 Identity Manager 系统信息库中所有具有选定类型的记录。
  6. 导出一次列表中选择要导出的数据类型。如果未在“导出一次”列表中选择任何类型,导出任务将作为守护进程运行,并按照以前定义的进度表导出数据。如果选择一种或多种数据类型,Identity Manager 将立即导出这些类型,然后退出导出任务。
  7. 根据需要,为该页上的其他字段设置值。
  8. 单击启动以开始执行任务。


配置取证查询

通过使用取证查询,Identity Manager 可以读取已存储在数据仓库中的数据。这些查询可以根据用户、角色或相关数据类型的当前或历史值来找出用户或角色。取证查询类似于“查找用户”或“查找角色”报告,但也有所不同,原因是它可以根据历史数据评估匹配条件,并且允许搜索与正在查询的用户或角色具有不同数据类型的属性。

取证查询的用途是使用 Identity Manager 对结果执行操作。取证查询并不是一种通用报告工具。

取证查询可能会提出类似于以下内容的问题:

无法保存取证查询的结果。应该使用商业报告工具完成仓库数据的常规报告。

创建查询

取证查询可以搜索用户对象或角色对象。取证查询可能非常复杂,允许创建者针对相关数据类型选择一个或多个属性条件。用户取证查询可以搜索数据类型为 User、Account、ResourceAccount、Role、Entitlement 和 WorkItem 的属性。角色取证查询可以搜索数据类型为 Role、User 和 Work Item 的属性。

在单个数据类型中,所有属性条件之间具有逻辑“与”关系,因此,必须符合所有条件才能匹配。默认情况下,各个数据类型之间的匹配项具有逻辑“与”关系;但如果选中了使用 OR 复选框,则各个数据类型之间的匹配项具有逻辑“或”关系。

仓库可能包含单个用户对象或角色对象的多条记录,而单个查询可能会返回同一个用户或角色的多个匹配项。为便于区分这些匹配项,可以使用日期范围限制每种数据类型,以便仅将指定日期范围内的记录视为匹配项。可以使用日期范围限制每种相关数据类型,因此,可以发出以下形式的查询:

查找 2005 年 5 月至 7 月间在 ERP1 上具有资源帐户的所有用户,并且这些用户在 2005 年 6 月至 8 月间由 Fred Jones 证明

日期范围是从午夜开始到午夜结束。例如,范围从 2007 年 5 月 3 日到 2007 年 5 月 5 日,时间长度为 48 小时。它不包含从 2007 年 5 月 5 日开始的任何记录。

必须将每个属性条件的操作数(要比较的值)指定为查询定义的一部分。该模式将某些属性限制为具有一组有限的可能值;而对其他属性则没有任何限制。例如,必须以 YYYY-MM-DD HH:mm:ss 格式输入大多数日期字段。


由于仓库中可能有大量数据,并且查询具有一定的复杂性,因此查询可能需要很长时间才能生成结果。如果在运行取证查询时离开查询页,则将无法看到查询结果。


要创建取证查询,请执行以下步骤:

  1. 在管理员界面中,单击主菜单中的遵循性
  2. 将打开“审计策略”页(“管理策略”选项卡)。

  3. 单击取证查询 (Forensic Query) 次级选项卡。
  4. 将打开“搜索数据仓库”页。

    图 16-5
    “搜索数据仓库”页(取证查询)
    搜索数据仓库

  5. 类型下拉菜单中,选择是搜索用户记录还是搜索角色记录。
  6. 选中使用 OR 复选框,以使 Identity Manager 对查询的每种数据类型的结果执行逻辑“或”运算。默认情况下,系统对结果执行逻辑“与”运算。
  7. 选择一个表示将出现在取证查询中的数据类型的选项卡。
    1. 单击添加条件。将显示一组下拉菜单。
    2. 从左侧的下拉菜单中选择一个操作数(要检查的条件),从右侧的下拉菜单中选择比较类型, 然后输入要搜索的字符串或整数。可能的操作数列表是按外部模式定义的。有关每个操作数的说明,请参阅联机帮助。
    3. (可选)选择一个日期范围以缩小查询范围。
    4. 根据需要,在当前选定的数据类型中添加更多条件。对于将包含在取证查询定义中的所有数据类型,请重复此步骤。

  8. 在可用属性中,选择要在取证查询结果中显示的属性。
  9. 只返回前字段中,指定一个值。在使用多种数据类型中的条件时,限制将应用于每种类型的子查询,并且最终结果是所有子查询的交集。因此,最终结果可能会由于子查询限制而排除某些记录。
  10. 单击搜索以立即运行取证查询,或者单击保存查询以重复使用该查询。有关重复使用取证查询的信息,请参见保存取证查询

保存取证查询

在配置了一个查询并(可选)执行该查询以确保它生成所需的结果后,可以保存该查询以供以后执行。

要保存取证查询,请执行以下步骤:

  1. 从“搜索数据仓库”页中,单击保存查询。将打开“保存取证查询 (Forensic Query)”页。
  2. 指定查询的名称和描述。
  3. 选中保存条件值复选框,以保存在“搜索数据仓库”页中输入的条件值(字符串和整数)。如果未选中此复选框,则保存的取证查询将用作模板,您必须在每次运行查询时输入值。
  4. 任何人都可以执行任何已保存的查询,但默认情况下,只有查询创建者可以修改查询。要允许其他用户修改您的查询,请选中允许他人更改此查询复选框。
  5. 由于查询将返回用户对象或角色对象,因此,您可以选择要在结果中显示的对象属性。如果要显示要显示的属性列表中未包含的属性,您可以转到“数据导出器配置”页,然后在用户或角色类型中添加新的可显示属性。

加载查询

您可以加载任何用户保存的任何查询,但是只能修改自己创建的查询,或由其他人标记为可被任何人修改的查询。

要加载取证查询,请执行以下步骤:

  1. 从“搜索数据仓库”页中,单击加载查询。将打开“加载取证查询 (Forensic Query)”页。如果已将查询保存为模板,“查询摘要”列将显示不完整的查询
  2. 选中查询左侧的复选框,然后单击加载查询


维护数据导出器

本节介绍了可以跟踪数据导出器状态的方法:

监视数据导出器

在导出器已配置并且正常运行后,您可以选择对其进行监视以确保其继续正常运行。导出器包含几个 JMX Bean,可用于确定导出器的运行状况。JMX Bean 包含以下统计信息:导出器的平均读取/写入速率、内部内存队列的当前/最大大小以及永久性队列的大小。导出器还会在导出期间生成审计记录,每种数据类型的每个周期各生成一条记录。审计记录包含导出的该类型记录数以及导出操作占用的时间。

数据导出器提供了以下用于监视导出器的 JMX 管理 Bean。

表 16-2 JMX 管理 Bean

Bean 名称

描述

DataExporter

包含当前排队的导出数以及队列上限。

DataQueue

包含当前缓存的排队导出数以及到达高速缓存的速率。

ExporterTask

包含导出读取(从 Identity Manager 中)数、写入(到仓库)数、读取和写入速率(记录数/秒)以及错误数。

可以对数据导出器进行配置,以使其在Identity Manager 正常运行期间将导出记录排入排队表中。由于该队列可能需要扩大以存放大量记录,并且在服务器重新启动后仍需保留该队列,因此,该队列将由 Identity Manager 系统信息库中的表进行备份。由于写入系统信息库通常会减慢 Identity Manager 的正常运行速度,因此,该队列使用较小的内存高速缓存将记录缓存到内存中,直到可以在系统信息库中永久保留这些记录为止。

可以绘制 DataQueue MBean 属性图表,以显示在内存中排队的最大记录数(在单个 Identity Manager 服务器上)。在平衡型系统上,内存高速缓存中的记录数应该很小并很快变为零。如果发现此数字很大(数千条)或者在几秒内未恢复为零,则应该检查系统信息库的写入性能。

ExportTask MBean 包含两个错误计数:一个是读取错误计数,一个是写入错误计数。这些计数应该为零,但可能会由于多种原因而出现错误,尤其是在写入期间。最常见的写入错误是由于仓库表列容纳不下导出的数据造成的 - 该错误通常为字符串溢出。某些导出的字符串数据非常大,导出表列必须对此设置一个上限。

监视日志记录

Identity Manager 包含两组无限制增长的对象: 审计日志和系统日志。数据导出器解决了一些与日志表有关的维护问题。

审计日志

Identity Manager 将固定的审计记录写入审计日志中,以作为它所执行的操作的历史审计跟踪。Identity Manager 在某些报告中使用这些记录,记录中的数据可以显示在管理员界面中。不过,由于审计日志会无限制增长,并按一定的速率增长,部署者必须确定何时截断审计日志。在启用数据导出器之前,如果要在截断以前保留记录,您必须转储系统信息库中的表。如果启用了数据导出器并将其配置为导出日志记录,则旧记录会保留在仓库中,并且Identity Manager 可以根据需要截断审计表。

系统日志

系统日志具有与审计日志相同的固定属性,但系统日志的生成频率通常较低。数据导出器不导出系统日志。要截断系统日志并保留旧记录,您必须转储系统信息库中的表。



上一页      目录      索引      下一页     


文件号码:820-5435。 版权所有 2008 Sun Microsystems, Inc. 保留所有权利。