×

扫描二维码登录本站

QQ登录

只需一步,快速开始

标签: 暂无标签
本帖最后由 adminlily 于 2020-12-14 15:23 编辑

将iTop与Nagios集成
本页说明如何集成iTop和Nagios。

SOAP被认为已过时,现在创建工单的首选方式是使用REST/JSON接口.

通过此集成:

  • Nagios警报在iTop中变成事件工单
  • 设备的Nagios状况的详细信息直接在iTop中可见(作为对象上的一个附加选项卡)

尽管Nagios的配置非常具体(命令,处理程序的定义),但相同的原理也可以应用于任何基于Web的,能够在接收到警报后运行命令行脚本的监控工具。

在iTop中将Nagios警报转换为工单的好处很多,例如:

  • 从创建到其解决都可以跟踪工单
  • 可以将SLA分配给工单以确保其解决按时完成
  • 由于其组件之一的失效,iTop可以计算“受影响的”基础结构。 “受影响的”项目会自动添加到事件工单
  • iTop可以通知受到事件影响的各个人


在iTop中自动创建事件工单

本节介绍如何配置Nagios在iTop中自动创建事件工单。由于Nagios的“命令”基于命令行脚本,因此编写了一个特殊的PHP脚本,该脚本包装了iTop的SOAP Web服务,用于从命令行创建事件事件。请注意,由于Nagios调用的命令行脚本使用SOAP web-服务在iTop中创建事件,因此,只要从Nagios工单到iTop的HTTP(S)连接成为可能,就可以将Nagios和iTop安装在不同的工单上。

该脚本称为“ createTicket-nagios.php”。
可以从这里下载:[ ttp://www.combodo.com/documentation/createTicket-nagios.zip]http://www.combodo.com/documentation/createTicket-nagios.zip[/url]

将此脚本复制到nagios服务器上的目录中(例如etc/nagios3),并在同一目录中复制从iTop实例的目录“ webservices”中获取的文件“ itop soap types.inc.php”。

  • 该脚本使用在Nagios中触发警报的主机的主机名,以识别iTop中受影响的对象。因此,主机名必须是唯一的。
  • 该脚本仅触发处于HARD状态的与Nagios对接警报。此外,它要求在iTop中已经配置了默认的工作组到分派,工单,默认的提交人和默认的客户。 (请参阅此处的iTop文档以获取有关工作组,呼叫者和客户的更多详细信息)
  • 工单的严重性始终相同,默认情况下设置为“严重”。
  • 该脚本只是描述如何使用iTop soap web服务的示例。随时根据您的要求改进依赖。

脚本的开头列出了用于工单创建的所有参数,如下所示,并且必须适应您的配置。

<?php
// Adjust these settings to fit your iTop installation
// iTop Server location
define('ITOP_SERVER_URL', 'https://localhost/webservices/itop.wsdl.php');
// Valid credentials for connecting to iTop
define('ITOP_USERNAME', 'admin');
define('ITOP_PASSWORD', 'admin2');
// Default settings for creating the incident ticket
define('DEFAULT_IMPACT', 2); // 1 = department, 2 = service, 3 = person
define('DEFAULT_URGENCY', 2); // 1 = high, 2 = medium, 3 = low
define('DEFAULT_CALLER_NAME', 'Dali');
define('DEFAULT_ORGANIZATION_NAME', 'Demo');
define('DEFAULT_SERVICE_NAME', 'HW Monitoring');
define('DEFAULT_SERVICE_SUBCATEGORY', 'HW Troubleshooting');
define('DEFAULT_WORKGROUP_NAME', 'Hardware support');
// End of instance-specific parameters



在Nagios服务器上安装文件
  • 步骤1:将此脚本以及itopsoaptypes.class.inc.php复制到<yourDirectory>中
  • 第2步:通过将以下内容添加到您的Nagios命令文件中来定义新的Nagios Command(大多数情况下,将其称为commands.cfg)
# Create incident tickets in iTop command definition define command{ command_name create-iTop-ticket command_line <php path> <yourDirectory>/createTicket-nagios.php \"$HOSTNAME$\" \"$SERVICEDESC$\" \"$SERVICESTATE$\" \"$SERVICESTATETYPE$\" \"$LONGSERVICEOUTPUT$\" }

其中<php path>是PHP的完整路径,而<your_directory>是您安装iTop脚本的安装路径。

您可以通过手动运行PHP脚本测试工单创建。

步骤3:在事态处理程序选项中,对于应该触发器和工单创建的每个主机或服务模板,使用以下命令:

您可以使用大多数时候在nagios.cfg中定义的以下选项为所有主机和服务全局定义它:

global_host_event_handler=create-iTop-ticketglobal_service_event_handler= create-iTop-ticket

或使用以下选项针对每个主机和服务:

event_handler   create-iTop-ticketevent_handler_enabled  1

如果选择后一个选项,则必须为创建的每个主机和服务模板配置处理程序。

一旦完成,下一次您将在Nagios中收到HARD警报时,它将在iTop中自动创建工单!

好酷!

在iTop中查看Nagios状况
当给定的对象的详细信息显示在iTop中时,浏览器框架中会有多个选项卡。您可以创建一个新选项卡,显示选定的对象的Nagios框架。

  • 在类InfrastructureCI中更改XT​​职能DisplayBareRelations
  • 当您不处于编辑模式时,这将为生产中的所有InfrastuctureCI添加一个Tab Nagios。
f
unction DisplayBareRelations(WebPage $oPage, $bEditMode = false) { parent::DisplayBareRelations($oPage, $bEditMode); if (!$bEditMode) { $sStatus = $this->Get('status'); $sName = $this->Get('name'); if ($sStatus == 'production') { $oPage->SetCurrentTab(Dict::S('Nagios')); $oPage->add('<div id="checkmk" style="width:100%;height:500px;">'); $oPage->add('<iframe style="border:0;padding:0;margin:0;width:100%;height:500px;overflow:auto" '); $oPage->add('src="https://<nagios_path>/cgi-bin/status.cgi?host=$sName">'); $oPage->add('</iframe></div>'); } } }
  • 不要忘记将“ <nagios_path>”设置为适合您的安装的URL。

请注意,只有在iTop中使用的对象的名称等于Nagios中对象的主机名时,该显示才起作用。

完成后,保存文件并在浏览器中重新加载“详细信息”页面。

结果应类似于下图:

[ ttps://www.itophub.io/wiki/media-detail?id=2_7_0%3Aadvancedtopics%3Anagios&media=mediawiki%3Anagiosinitop.png][/url]






上一篇:iTop系统集成-数据对接-从LDAP同步数据
下一篇:二次开发-开发方法-自定义扩展
ITIL先锋

写了 321 篇文章,拥有财富 1692,被 3 人关注

您需要登录后才可以回帖 登录 | 立即注册
B Color Link Quote Code Smilies

成为第一个吐槽的人

手机版|小黑屋|最新100贴|论坛版块|ITIL先锋论坛 |粤ICP备11099876号|网站地图
Powered by Discuz! X3.4 Licensed  © 2001-2017 Comsenz Inc.
返回顶部