--资产数据的对接
--如何对接
--JDBC
--主动请求第三方或者客户的数据库 (一般是全量方式)
--HTTP
--Client: 主动请求第三方或者客户提供的http接口 (一般是全量方式)
--Server: 被动接收第三方或者客户的数据 (推荐增量方式)
--WebService
--Client: 主动请求第三方或者客户提供的接口 (一般是全量方式)
--Server: 暂时不支持
--Socket
--Client: 主动请求第三方或者客户提供的接口 (一般是全量方式)
--Server: 被动接收第三方或者客户的数据 (推荐增量方式
-- .......
--怎么对接
--全量方式:
-- 获取到数据
-- 对数据的映射 (对象管理字段 和 获得数据字段映射)
-- 通过比较我方数据库中的CI数据 和 获得的CI数据 来筛选出 删除的CI
-- 通过调用接口 保存或更新CI 以及 删除CI
--增量方式
-- 获取到数据
-- 新增数据:
-- 更新数据:
-- 删除数据:
-- 数据映射
--调用接口来保存 或者 删除 或者 更新
--示例代码
/** * 第一步: 获取数据 * 第二步: 数据映射 * 第三步: 筛选删除的数据 * 第四步: 保存 更新 删除 */ var File = Java.type("java.io.File"); var ArrayListJava = Java.type("java.util.ArrayList"); var CSVUtil = Java.type("com.uinnova.di.dicom.util.ExcelUtil"); function run() { while (true) { try { // 查看目录下文件 var fileName = ""; var fileDir = new File("/xxxxx/xxxx"); //填写存放文件的目录 var fsList = fileDir.listFiles(); for (var f in fsList) { var singleFile = new File(fsList[f]); if (!singleFile.isDirectory() && fsList[f].toString().search("xxxxxxx") != -1) { //模糊匹配的文件名 fileName = fsList[f]; } } // 获取文件数据 var getData = CSVUtil.getCSV2Map(fileName, "\\|"); //第一步 获取数据 // 接入新设备,负载均衡 var arr = new Array(); var identifyList = new ArrayListJava(); // 第二步 数据映射 if (getData != null) { heartBeat.addInCount(getData.size()); getData.forEach(function(item) { var obj = new Object(); if (item.management_ip != null) { identifyList.add(item.management_ip + ""); //保留唯一标识 obj[‘设备名称‘] = item.zh_label + ""; obj[‘所属资源池系统‘] = item.related_pool + ""; obj[‘设备序列号‘] = item.serial_number + ""; obj[‘资源实例编码‘] = item.alias + ""; obj[‘设备厂家‘] = item.equipment_manufacturer + ""; obj[‘设备型号‘] = item.equipment_model + ""; obj[‘设备吞吐量‘] = item.throughput + ""; obj[‘配置10GE端口个数‘] = item.ge_port_number_10 + ""; arr.push(obj); } }); } // 对比筛选下架删除的CI //第三步 找出下架的CI var pageNum = 1; var deleteList = new ArrayListJava(); while (true) { var cis = tarsierTool.getCisByCiType("负载均衡器", pageNum, 100); //对应分类 var tpList = cis.data; for (var i = 0; i < tpList.length; i++) { var temp = tpList[i]; if (identifyList.contains(temp.object[‘管理IP‘]) != true) { //对应该分类业务主键 var itemDel = new ArrayListJava(); itemDel.add(temp.object[‘管理IP‘]); //对应该分类业务主键 deleteList.add(itemDel); } } ++pageNum; if (pageNum > cis.totalPages) { break; } } // 删除下架设备 if (deleteList.size() > 0) { var delNum = tarsierTool.removeCiBatchByHashCodes(deleteList); logger.info("资产: 负载均衡 下架数量>>> " + delNum); } // 保存更新CI if (arr.length > 0) { var ret = tarsierTool.saveOrUpdateCiBatch("负载均衡器", null, convertJs2Java(arr)); logger.info("资产: 负载均衡>>> " + ret); heartBeat.addOutCount(arr.length); // 清空CSV文件 var deleteFile = new File(fileName); if (deleteFile.exists() && deleteFile.isFile()) { deleteFile.delete(); } } } catch (error) { logger.error("资产: 负载均衡 数据同步异常>>> " + error.message); } //每天一次,若调整时间需修改最后一位数字 sleep(3600 * 1000 * 24 * 1); } }
--告警数据的对接
--如何对接
--JDBC
--主动请求第三方或者客户的数据库 (一般是全量方式)
--HTTP
--Client: 主动请求第三方或者客户提供的http接口 (一般是全量方式)
--Server: 被动接收第三方或者客户的数据 (推荐增量方式)
--WebService
--Client: 主动请求第三方或者客户提供的接口 (一般是全量方式)
--Server: 暂时不支持
--Socket
--Client: 主动请求第三方或者客户提供的接口 (一般是全量方式)
--Server: 被动接收第三方或者客户的数据 (推荐增量方式
-- .......
--怎么对接
--全量方式:
sql>select * from event; sql>select * from event where time>******; sql>select * from event where id>12;
--数据的映射
--查看最新的文档说明
--告警数据的发送
--mq
--mysql
--es
-- .....
--增量方式
-- 获取到告警数据
-- 数据映射
--告警数据的发送
--mq
--mysql
--es
-- .....
--示例代码
--见文档 Tarsier服务接口标准规范服务部使用v1.0
--性能数据
-如何对接
--JDBC
--主动请求第三方或者客户的数据库 (一般是全量方式)
--HTTP
--Client: 主动请求第三方或者客户提供的http接口 (一般是全量方式)
--Server: 被动接收第三方或者客户的数据 (推荐增量方式)
--WebService
--Client: 主动请求第三方或者客户提供的接口 (一般是全量方式)
--Server: 暂时不支持
--Socket
--Client: 主动请求第三方或者客户提供的接口 (一般是全量方式)
--Server: 被动接收第三方或者客户的数据 (推荐增量方式
-- .......
--怎么对接
--全量方式:
sql>select * from perf; sql>select * from perf where time>******; sql>select * from perf where id>12;
--数据的映射
--查看最新的文档说明
--性能数据的发送
--mq
--mysql
--es
-- .....
--增量方式
-- 获取到告警数据
-- 数据映射
--性能数据的发送
--mq
--mysql
--es
-- .....
--示例代码
--见文档 Tarsier服务接口标准规范服务部使用v1.0