本帖最后由 adminlily 于 2020-12-9 16:24 编辑
OCS库存数据收集器名称:OCS库存数据采集器 描述:OCS库存数据采集器NG 版本:1.0.5 发布:2019-10-29 下载:[ ttps://store.itophub.io/en_US/products/ocsng-data-collector]https://store.itophub.io/en_US/products/ocsng-data-collector[/url] 代码:ocsng-data-collector 状态:稳定 备用名称:OCS库存数据采集器NG 扩散:iTop Hub,Combodo网站
这个独立的应用可以从一个OCS库存NG 服务器以便使用收集的服务器,PC和虚拟机填充iTop CMDB。采集器使用iTop数据同步引擎来动态在OCS库存和iTop之间的信息。
附加(和可选)扩展OCS库存详情 可用于在每个同步的对象(服务器,PC或虚拟机)的iTop内部直接显示OCS库存页面的内容:
特征
- 来自OCS库存服务器的品牌,模型,OS家族,OS版本,物理服务器,PC和虚拟机的自动化库存
- 自动化的网络接口库存
- 采集器可以驻留在任何系统上,并可以通过Web访问iTop和mysql访问OCS库存服务器
- 在iTop中自动创建和更新同步数据源。
- 可选的小型扩展程序可用于在同步的PC,服务器和VirtualMachines上显示额外的选项卡“ OCS库存”。此选项卡显示设备的OCS页面(使用IFRAME)。
修订记录
日期 | 版本 | 描述 | 2019-10-29 | 1.0.5 | 处理TeemIp:
-自动检测是否存在TeemIp(作为iTop模块或独立的应用)。
-IPv4地址的可选同步
-IP接口的可选同步 | 2018-09-04 | 1.0.4 | 第一个公众版本。不再需要更改数据模型。 | 2018-06-26 | 1.0.3 | 新的调试跟踪 | 2015-05-20 | 1.0.1 | 修复了一些错误:支持Windows文件名(即c:\ Program Files \…)。 SPEED从“ 100 Mbbs”转换为“ 100”。强制对“笔记本电脑”等进行不区分大小写的比较。 | 2015-02-16 | 1.0.0 | 第一个版本 |
局限性
- 采集器不检索已安装的软件信息
- 采集器未规范模型,OS家族和OS版本
- 采集器仅同步OCS中具有有效序列号的PC和服务器
- 如果启用了IP收集,则仅收集IPv4地址,而不收集IPv6
- 如果使用HTTPS访问iTop,则OCS库存也必须如此,否则由于浏览器的安全限制,iTop中的OCS库存的内联框架将不会显示。
- iTop和OCS之间没有单一登录,因此在显示“ OCS”选项卡时,您必须登录名到OCS。
要求
- PHP版本5.3.0
- 对OCS库存NG mysql数据库的访问
- 可以访问iTop Web服务(REST +同步_导入。php和同步_exec.php)。注意:从iTop 2.5.0开始,用户必须在iTop中具有同步REST服务简档。
- + [ :8082/bin/view/2/2.6/2.6%C2%B717/#requirements]基础数据采集器[/url] 要求。
安装安装OCS库存集成扩展通过iTop Hub自动安装
- 转到[ ttps://store.itophub.io/en_US/products/itop-ocsng]扩展商店[/url] 在iTop Hub上
- 单击 图标以获取扩展,并按照屏幕上的说明将其部署在iTop实例上
手册安装
- 将文件“ itop-ocsng.zip”解压缩到iTop扩展文件夹中
- 确保Web服务器流程具有足够的权利来读取复制的文件
- 启动iTop设置
- 出现提示时,选择OCS库存集成扩展
- 编辑iTop配置文件以指定访问OCS Web服务器的URL:
'itop-ocsng' => array ( 'ocsng_url' => 'http://localhost/ocsreports/', ),安装OCS库存数据采集器- 在将运行采集器应用的计算机上的文件夹中,展开zip归档“ ocsng-数据-采集器”的内容。该计算机必须具有对OCS NG数据库的SQL访问权限,以及对iTop采集器的Web访问权限。
- 创建文件conf/params.local.xml以适合您的安装,并提供适当的凭据以连接到OCS NG和iTop。
默认情况下,此文件应包含用于连接到iTop服务器和OCS NG服务器的值:
<parameters>
<itop_url>http://localhost/</itop_url>
<itop_login>admin</itop_login>
<itop_password>admin</itop_password>
<contact_to_notify>john.doe@demo.com</contact_to_notify>
<synchro_user>admin</synchro_user>
<sql_host>localhost</sql_host>
<sql_database>ocsweb;charset=UTF8</sql_database>
<sql_login>root</sql_login>
<sql_password>root</sql_password>
</parameters>
参数 | 含义 | 样品价值 | itop_url | iTop应用的URL | https://localhost/ | itop_login | 连接到iTop的登录名(用户账号)。必须具有管理员权利才能执行数据同步。 | 管理员 | itop_password | iTop账号的密码。 | | contact_to_notify | iTop中现有联系人的发送邮件地址,将被通知同步结果 | john.doe@demo.com | synchro_user | iTop用户用于同步Web服务 | 管理员 | sql_host | 连接到OCS的地址服务器数据库 | 默认值:localhost | sql_database | 数据库连接。您可以使用; charset强制字符集 | 默认ocsweb | sql_ogin | 登录名连接到OCS数据库 | | sql_password | 连接到OCS数据库的密码 | |
配置
默认情况下,数据集合配置在文件collectors/params.distrib.xml中定义。不要修改该文件!如果需要修改配置,请在conf目录中创建一个名为params.local.xml的文件,然后将所需的定义复制粘贴到其中(两个XMl文件的结构相同)。此配置定义必须在OCS NG配置上执行哪些SQL查询才能使用iTop检索数据和数据。
<default_org_id>Demo</default_org_id>
<default_status>production</default_status>
<PCCollection>yes</PCCollection>
<ServerCollection>yes</ServerCollection>
<VMCollection>yes</VMCollection>
<OCSBrandCollector_query>SELECT DISTINCT SMANUFACTURER as primary_key,
SMANUFACTURER as name FROM bios</OCSBrandCollector_query>
<OCSOSFamilyCollector_query>SELECT DISTINCT OSNAME as primary_key,OSNAME as name
FROM hardware</OCSOSFamilyCollector_query>
<OCSOSVersionCollector_query>SELECT DISTINCT CONCAT(OSNAME,OSVERSION) as
primary_key,OSNAME as osfamily_id,OSVERSION as name FROM
hardware</OCSOSVersionCollector_query>
<OCSServerModelCollector_query>SELECT DISTINCT CONCAT(SMANUFACTURER,SMODEL) AS
primary_key,SMANUFACTURER as brand_id,SMODEL as name, 'Server' As type FROM bios
WHERE TYPE COLLATE utf8_general_ci NOT IN ('Notebook','Laptop') AND SMANUFACTURER
COLLATE utf8_general_ci NOT LIKE 'VMware%'</OCSServerModelCollector_query>
<OCSServerCollector_query>SELECT b.SSN as primary_key,h.ID as ocsid, h.NAME as
name, h.OSNAME as osfamily_id,h.OSVERSION as osversion_id, h.PROCESSORT as cpu,
h.MEMORY as ram, h.IPADDR as managementip, b.SMANUFACTURER as brand_id,b.SMODEL as
model_id,b.SSN as serialnumber, '$default_status$' as status, '$default_org_id$' as
org_id FROM hardware AS h JOIN bios AS b ON h.id=b.hardware_id WHERE b.TYPE COLLATE
utf8_general_ci NOT IN ('Notebook','Laptop') AND SMANUFACTURER COLLATE
utf8_general_ci NOT LIKE 'VMware%'</OCSServerCollector_query>
<OCSServerPhysicalInterfaceCollector_query>SELECT n.ID as
primary_key,n.DESCRIPTION as name, IF(SPEED REGEXP '^[0-9]+ ', LEFT(SPEED, LOCATE('
', SPEED)), SPEED) as speed, MACADDR as macaddress, IPADDRESS as ipaddress, IPMASK
as ipmask,IPGATEWAY as ipgateway,h.NAME as connectableci_id FROM networks AS n JOIN
hardware AS h ON n.hardware_id=h.id JOIN bios AS b ON h.id=b.hardware_id WHERE
SMANUFACTURER COLLATE utf8_general_ci NOT LIKE 'VMware%' AND b.TYPE COLLATE
utf8_general_ci NOT IN ('Notebook','Laptop')
</OCSServerPhysicalInterfaceCollector_query>
<OCSPCModelCollector_query>SELECT DISTINCT CONCAT(SMANUFACTURER,SMODEL) AS
primary_key,SMANUFACTURER as brand_id,SMODEL as name, 'PC' As type FROM bios WHERE
TYPE COLLATE utf8_general_ci IN ('Notebook','Laptop') AND SMANUFACTURER NOT LIKE
'VMware%'</OCSPCModelCollector_query>
<OCSPCCollector_query>SELECT b.SSN as primary_key,h.ID as ocsid, h.NAME as name,
h.OSNAME as osfamily_id,h.OSVERSION as osversion_id, h.PROCESSORT as cpu, h.MEMORY
as ram, b.SMANUFACTURER as brand_id,b.SMODEL as model_id,b.SSN as serialnumber,
'$default_status$' as status, '$default_org_id$' as org_id FROM hardware AS h JOIN
bios AS b ON h.id=b.hardware_id WHERE b.TYPE COLLATE utf8_general_ci IN
('Notebook','Laptop') AND SMANUFACTURER COLLATE utf8_general_ci NOT LIKE
'VMware%'</OCSPCCollector_query>
<OCSPCPhysicalInterfaceCollector_query>SELECT n.ID as primary_key,n.DESCRIPTION
as name, IF(SPEED REGEXP '^[0-9]+ ', LEFT(SPEED, LOCATE(' ', SPEED)), SPEED) as
speed, MACADDR as macaddress, IPADDRESS as ipaddress, IPMASK as ipmask,IPGATEWAY as
ipgateway,h.NAME as connectableci_id FROM networks AS n JOIN hardware AS h ON
n.hardware_id=h.id JOIN bios AS b ON h.id=b.hardware_id WHERE SMANUFACTURER COLLATE
utf8_general_ci NOT LIKE 'VMware%' AND b.TYPE COLLATE utf8_general_ci IN
('Notebook','Laptop')</OCSPCPhysicalInterfaceCollector_query>
<OCSVirtualMachineCollector_query>SELECT h.ID as primary_key,h.ID as ocsid,
h.NAME as name, h.OSNAME as osfamily_id,h.OSVERSION as osversion_id, h.PROCESSORT
as cpu, h.MEMORY as ram,h.IPADDR as managementip, '$default_status$' as status,
'$default_org_id$' as org_id FROM hardware AS h JOIN bios AS b ON
h.id=b.hardware_id WHERE SMANUFACTURER COLLATE utf8_general_ci LIKE
'VMware%'</OCSVirtualMachineCollector_query>
<OCSLogicalInterfaceCollector_query>SELECT n.ID as primary_key,n.DESCRIPTION as
name, IF(SPEED REGEXP '^[0-9]+ ', LEFT(SPEED, LOCATE(' ', SPEED)), SPEED) as speed,
MACADDR as macaddress, IPADDRESS as ipaddress, IPMASK as ipmask,IPGATEWAY as
ipgateway,h.NAME as virtualmachine_id FROM networks AS n JOIN hardware AS h ON
n.hardware_id=h.id JOIN bios AS b ON h.id=b.hardware_id WHERE SMANUFACTURER COLLATE
utf8_general_ci LIKE 'VMware%'</OCSLogicalInterfaceCollector_query>
原则
- 对于iTop的对象至导入的每个类别(PC,服务器,VM,品牌,模型,OSVersion OSFamily),采集器应用都会创建同步数据源。
- 每个采集器与一个SQL查询关联(通过参数<name_of_the_采集器> _查询)。
- 此查询必须返回列,其中别名(即列的“名称”)对应于相应同步数据源的预期字段。
- 这些查询可以进行调整以适合您的需求(例如,以更好地区分PC和服务器或更改某些列的一些默认值)
- 由于PC,服务器和虚拟机的同步都依赖于它们自己的SQL查询,因此确保这3个查询的结果不重叠是很重要的。否则,相同的“系统”将在itop中多次导入(例如,作为PC和服务器)。
参数 | 含义 | default_org_id | 为同步的配置项定义默认的组织 | default_status | 为同步的配置项定义默认的状况 | PCCollection | 定义PC收集是否处于活动状态(是)(否) | ServerCollection | 定义服务器集合是否处于活动状态(是)(否) | VMCollection | 定义虚拟机集合是否处于活动状态(是)(否) | OCSBrandCollector_query | SQL查询从OCS NG服务器中检索已知品牌的列表 | OCSOSFamilyCollector_query | SQL查询从OCS NG服务器中检索已知操作系统家族的列表 | OCSOSVersionCollector_query | SQL查询从OCS NG服务器中检索已知OS版本的列表 | OCSServerModelCollector_query | SQL查询从OCS NG服务器中检索已知物理服务器模型的列表 | OCSServerCollector_query | SQL查询从OCS NG服务器检索物理服务器列表 | OCSServerPhysicalInterfaceCollector_query | SQL查询从OCS NG服务器中检索服务器的物理网络接口列表 | OCSPCModelCollector_query | SQL查询从OCS NG服务器中检索已知PC型号的列表 | OCSPCCollector_query | SQL查询从OCS NG服务器检索PC列表 | OCSPCPhysicalInterfaceCollector_query | SQL查询从OCS NG服务器检索PC的物理接口列表 | OCSVirtualMachineCollector_query | | OCSLogicalInterfaceCollector_query | SQL查询从OCS NG服务器检索虚拟机的逻辑网络接口列表 |
可以在文件conffparams.local.xml中重新定义这些查询,以将特定的需求纳入账号(例如,创建的服务器,PC,虚拟机以及默认组织的变更的状况)。默认情况下,仅创建VMWare虚拟机。如果要处理其他类型的VM,则必须调整Virtualmachine查询 文件params.distrib.xml包含参数的默认值。这两个文件(params.distrib.xml和params.local.xml)使用完全相同的格式。但是params.distrib.xml被视为引用,并且应保持不变。如果需要变更的变更和价值,请在params.local.xml中复制并修改其定义。 params.local.xml中的值优先于params.distrib.xml中的值
IP和IP接口集合
采集器自动检测远程iTop应用上是否存在TeemIp(作为模块,甚至作为独立应用),以及是否安装了TeemIp Zone管理扩展。如果是这种情况,则以下参数可能会应用IP地址和IP接口集合。
<?xml version="1.0" encoding="UTF-8"?> <parameters> ... <!-- TeemIp options --> <collect_ips>yes</collect_ips> <default_ip_status>allocated</default_ip_status> <manage_ipv6>no</manage_ipv6> <default_view_name></default_view_name> ... </parameters>
参数 | 含义 | 样品价值 | collect_ips | 触发IP地址收集 | 是 | default_ip_status | 新创建的IP地址的状态 | 已分配 | manage_ipv6 | 触发IPv6收集-尚无法使用 | 没有 | default_view_name | 新创建的IP地址的视图 | <空字符串> |
在此阶段,尚未收集IPv6。这是由于采集器基座的局限性所致,目前尚无法处理此类对象。
用法
要启动数据集合并与iTop同步,请运行以下命令(从安装了数据采集器应用的根目录中): php exec.php 以下(可选)命令行选项可用:
选项 | 含义 | 默认价值 | --console_log_level = <level> | 控制台的输出级别。从-1(无)到9(调试)。 | 6(信息) | --collect_only | 仅运行数据集合,但不运行带有iTop的动态数据 | 假 | --synchro_only | 将先前收集的数据(存储在数据目录中)与iTop同步。不要运行该集合。 | 假 | --configure_only | 在iTop中检查(并根据需要更新)同步数据源并退出。不要运行收集或同步 | | --max_chunk_size = <size> | 一次保存流程的最大项目数,以保留系统的内存。如果流程还有更多项目,则流程将进行迭代。 | 1000 |
命令行的执行将:
- 连接到iTop以创建同步数据源(或检查它们的定义是否已存在,并在需要时进行更新)
- 连接到OCS NG以收集有关服务器,PC,虚拟机的信息
- 将收集的数据上传到iTop(这是配置参数<name_of_the_采集器> _查询
- 动态将收集的数据与现有的iTop配置项一起使用。
排程
交互式运行数据采集器之后,下一步是安排其执行时间,以便定期定期进行收集和导入。
数据采集器不提供任何特定的调度机制,但是可以使用以下任意一种来调度简单的命令行php exec.php:[ /wiki/Cron]cron[/url] (在Linux系统上)或使用[ /wiki/Windows_Task_Scheduler]任务计划程序[/url] 在Windows上。
为了获得最佳结果,请不要忘记调整配置参数full_load_interval以使其与调度频率保持一致。
|