iTop系统集成-数据同步参考
数据同步参考如果您不熟悉此概念,请从总览
数据来源定义
数据源使用菜单“管理工具同步数据源”定义。
https://www.itophub.io/wiki/media?media=2_7_0%3Aadvancedtopics%3Asynchro-data-source-menu.png
每个数据源定义:
[*]要同步的对象的目标类
[*]要同步的对象的属性/字段列表
[*]如何搜索/协调对象与 iTop 中已有的对象
[*]在iTop中同步更新和删除对象的规则
[*]iTop终端用户的同步对象的行为方式(哪些字段是只读的,允许用户删除对象…)
[*]可选的超链接和图标,用于将iTop用户引至外部应用中的相应对象
https://www.itophub.io/wiki/media?w=650&tok=37bdd9&media=2_7_0%3Aadvancedtopics%3Asynchro-data-source.png
描述
属性的这一部分为此同步数据源定义了一些常规参数。
属性强制性的吗?含义样品价值
名称强制性的引用此数据来源的名称来自SCCS的服务器同步
描述可选的附加说明,仅供参考
状况强制性的实施,已生产或已淘汰:用于过滤和分类数据来源生产
目标阶层强制性的动态的对象类服务器
用户强制性的用户允许执行此同步管理员
联系人通知可选的联系人,用于在执行同步时(通过发送邮件)通知结果,并包含至少一个错误
图标的超链接可选的表示此数据源的图像的超链接(URL)。在iTop中同步的图标标题旁边的“锁定”符号上显示的工具提示中,显示此图标而不是默认图标。
应用的超链接可选的同步到数据的远程应用的超链接(URL)。超链接可以包含占位符,例如$ this-> attcode $(将由当前对象的属性的价值替换)或$ replica-> column_name $(将由占位符中的命名列的价值替换)。复制品)https:::myapp.acme.commdisplayyserverr$replica->primary_key$
数据表可选的将在其中存储副本信息的MySQL表的名称。如果省略,系统将为您生成一个唯一的名称。synchro_data_servers_from_sccs
将基于类数据模型创建用于保存副本的表,如果稍后更改数据模型,则该表将通过安装程序进行更新(与往常一样,将添加但不删除列)。
因为需要通过同步导入 为空字段(例如日期),发布2.3.4中的日期列格式已从date更改为varchar(10)搜索和对帐
此部分属性定义
[*]副本表中包含的信息如何与iTop数据库的内容匹配
[*]同步数据源有关创建新iTop对象的行为是什么。
属性含义
对帐策略使用属性:创建新副本时,系统将基于同步属性列表(将Reconciliation标记设置为Yes),在iTop中将搜索匹配对象。
使用primary_key:副本的primary_key列应包含iTop中对象的标识符。
功能归零对帐未在iTop中找到任何对象时该怎么办。
Create指示系统创建目标类的新对象。
在这种情况下,错误将导致系统至报告作为错误(即,该同步数据源应该仅更新现有对象)。
功能上一个对帐在iTop中找到一个完全匹配的对象时该怎么办。
更新指示系统更新此对象。
在这种情况下,错误将导致系统至报告作为错误(即,该同步数据源应该创建对象,而从不更新现有对象)。
功能上的很多对帐在iTop中找到多个匹配的对象时该怎么办。
Create指示系统创建另一个对象。
错误将导致系统到报告成为错误。
拿第一个指示系统选取列表中的第一个对象并进行更新。
删除规则
本节定义如何处理同步对象的删除:
[*]通过iTop中的终端用户,
[*]通过同步系统本身。
属性含义
允许的用户哪些终端用户允许删除iTop中的同步对象。
同步对象时,没有人不允许在iTop中删除它。只有同步系统才能删除它。
管理员仅允许管理员删除同步的对象。
每个人都允许删除此类对象,正常访问规则适用于此类同步对象。
满载间隔同步的两次执行之间的持续时间,被视为已加载(接触)所有副本。如果未触摸副本的时间超过此价值的持续时间,则认为该副本已过时。
删除策略复制副本过时该怎么办。
忽略任何操作,关联的对象仍保持在iTop中。
删除删除iTop中的关联对象(以及数据表中的副本)。
更新根据更新规则(请参阅下文)指定,更新关联的对象。
更新然后删除按照更新规则(请参阅下文)指定的方法更新关联的对象,然后在“保留期限”之后删除对象(和副本)。
更新规则attribute_code:value 值的用分号分隔的值列表,用于指定要设置关联对象的哪个属性以及将哪个价值设置。示例:价status:obsolete;description:no longer synchronized.
保留期限当“删除策略”设置为“更新然后删除”时,关联的对象更新与删除之间的持续时间。
如果在运行同步_exec之前在同一个数据源上运行多个同步_导入,请不要使Full load interval = 0s保留,否则删除同步将不起作用。参数的满载间隔将被忽略[ ttps://www.itophub.io/wiki/page?id=2_7_0%3Aadvancedtopics%3Asynchro_import.php]synchro_import –synchronize=1,因为该唯一导入中未提供的任何对象被视为“过时”如果您将满负载间隔设置为7天,保留期限为14天,则3周后将删除源不再提供的对象属性
https://www.itophub.io/wiki/media?w=600&tok=f4d67a&media=2_7_0%3Aadvancedtopics%3Asynchro-data-source-attributes.png
属性标签
“属性”标签定义:
[*]如何确定是必须在iTop中创建新的对象还是必须将现有的对象与副本相关联(如果调节规则在属性中为“使用属性”)
[*]关联的对象的哪些属性必须更新,以及如何更新
当synchro_data_xxx 表中出现新的记录时,同步机制将尝试将此记录与现有的iTop对象关联。如果一个或多个属性在“对帐?”中标记为“是”。列,这些列属性将用于与所有这些值匹配的iTop对象的记录。如果找到一个对象,它将与该记录关联。如果找不到对象,将创建一个新的iTop对象。
适当对帐规则的定义是数据同步正确行为的关键。为了使同步正常进行,必须使用属性列表作为对帐规则,该属性以可靠的方式唯一地标识动态的对象。
更新列
更新列定义是否必须更新属性。
[*]Checked = Yes:将更新属性
[*]Unchecked = No:此属性的外部源信息将被忽略,iTop对象上的现有价值将保持不变。
更新策略列
更新策略列定义了更新的属性的行为。可能的值为:
[*]锁定:属性将完全由数据同步驱动,并在iTop用户界面中显示为只读(旁边有一个小锁图标),
[*]解锁:属性将通过同步进行更新(无论源数据何时更改),但终端用户仍然可以在iTop中并行修改属性,
[*]如果为空,则初始化:如果iTop中的价值为空,则同步只会设置该属性的价值。属性仍可在iTop内部进行修改。
重新对帐键列
最后,“对帐键”列定义了如何流程属性,这些属性是对另一个iTop对象的引用(即外键)。提供的数据可以包含外键(id)的实际价值,也可以包含另一个属性,例如对象的名称。它必须唯一地标识对象。
对于外键,iTop不支持对多个属性(例如名称AND组织)的组合进行对帐。如果出现这种需求,那么在将ID提供给iTop之前,必须使用ETL或脚本执行所需的对帐。
状况状况选项卡
状况选项卡显示有关同步执行的信息。如果从未运行过同步,则该选项卡显示以下消息:该同步从未运行过。还没有日志。否则,该选项卡将显示类似于以下模式的模式:https://www.itophub.io/wiki/media?w=700&tok=8c58e3&media=2_7_0%3Aadvancedtopics%3Asynchro-data-source-status.png同步历史在屏幕的左侧,同步的每次执行都显示在历史列表中,显示了整个状况,执行的开始日期和时间。单击此列表中的元素,以显示相应的状况详细信息,显示在右侧的两列中。左侧的列显示 synchro_data_xxxx表中的记录的状况:
[*]新记录是自上一次执行同步以来已添加到表中的记录,
[*]现有记录是自从上一次执行同步以来已经存在并重新加载的记录,
[*]消失的记录是由于超过full_load_interval持续时间而没有加载的记录。
[*]忽略的记录对应于iTop中不再存在的对象。
右边的列根据对iTop中相关对象的修改显示了同步的后果。
[*]对于每个新记录,后果可能是:
[*]在iTop中创建了新的对象(Created),
[*]iTop中已经存在的对象的更新(Updated),
[*]与iTop中的对象的简单关联,它已经是最新的(Unchanged),
[*]或尝试在iTop中创建或更新对象时使用错误(最可能是由于数据不一致)。
[*]对于每个现有记录,后果可能是:
[*]关联的对象的更新(Updated),
[*]完全没有变更(Unchanged)
[*]或尝试更新关联的对象时出现错误(Errors)
[*]对于每个消失的记录,后果(“删除规则”上的依赖)可以是:
[*]iTop中关联的对象已被删除(Deleted),
[*]iTop中关联的对象已更新(Updated),
[*]iTop中关联的对象保持不变(No Action),
[*]或尝试更新或删除iTop中关联的对象时发生错误(Errors)。
复制品
在iTop中,副本用于存储状况信息以及synchro_data_xxx表中加载的原始数据与关联的iTop数据之间的关系。通过单击状况选项卡顶部的链接,可以显示给定数据同步源的副本。副本显示如下:
https://www.itophub.io/wiki/media?w=600&tok=a2ca7c&media=2_7_0%3Aadvancedtopics%3Asynchro-data-source-replica.png
副本的内容对于了解数据同步机制的行为(并获取有关错误的更多信息)很有用,但是其数据由同步维护,并且永远不要手动修改。
使用MySQL语句填充synchro_data_xxxx表
如果使用SQL命令(使用ETL或自制脚本)填充表synchro_data_xxx,则必须注意不要创建重复的记录。请记住,synchro_data_xxx表中的每个记录都对应于iTop中的一个同步。
为避免此类重复,必须先将查询用于现有的记录,然后再将新的记录插入表中。为了加快此查询的运行速度,您可以构建一个唯一标识“源”对象的查询并将该查询存储在表的“ primary_key”列(具有唯一的价值)中,或者使用记录列的任何组合并更改记录_价值_xxxx表的定义以添加您自己的索引。
不要使用MySQL申明INSERT…ON DUPLICATE KEY UPDATE在synchro_data_xxx表中插入记录。依靠“插入前”触发器的内部iTop机制不支持此功能。
如果您需要清空synchro_data_xxxx表,请不要使用MySQL申明TRUNCATE TABLE,因为该申明实际上将删除并重建该表……但不会触发它!而是使用synchro_data_xxxx的DELETE。
然后触发器通过执行页面同步在iTop对象和临时表的副本之间执行“synchro/[ ttps://www.itophub.io/wiki/page?id=2_7_0%3Aadvancedtopics%3Asynchro_exec.php]synchro_exec.php”(无论是在命令行模式下还是通过调用网页(例如使用wget))。
使用synchro_import填充synchro_data_xxxx 表
看到:[ ttps://www.itophub.io/wiki/page?id=2_7_0%3Aadvancedtopics%3Asynchro_import.php]synchro_import.php动态参数的[ ttps://www.itophub.io/wiki/page?id=2_7_0%3Aadvancedtopics%3Asynchro_import.php]synchro_import.php 触发器 [ ttps://www.itophub.io/wiki/page?id=2_7_0%3Aadvancedtopics%3Asynchro_exec.php]synchro_exec.php 默认
如何指定相关对象的列表(链接集)
一些类具有称为链接集的属性。示例:UserLocal.profile_list
您可以通过在相应的列中写入所有信息来动态这些列表:
这是一个示例,指定登录名将具有一个简档:'门户用户'
INSERT login, profile_list INTO data_synchro_userlocal_1 VALUES ('johndoe', 'profileid->name:Portal User;reason:Customer')...;
您还可以指定几个链接(几个角色)。
更多信息导入链接集
页:
[1]