zabbix二次開發整合拓撲圖功能

虎子發表於2020-11-03

 

技術標籤: zabbix

 

1、需要將zabbix的auth寫入到cookie中
    1、呼叫zabbix登入介面:user.login, 獲取介面中返回的auth
    2、新增cookie寫入的php檔案, cd /usr/share/zabbix
vi login.php
<?php
header('Content-Type:text/html;Charset=utf-8');
require_once dirname(__FILE__).'/include/config.inc.php';
require_once dirname(__FILE__).'/include/forms.inc.php';
require_once dirname(__FILE__).'/include/func.inc.php';
$result =getRequest('sessionid');
zbx_setcookie('zbx_sessionid', $result, 0);
$arr = array(
"auth" => $result
);
//echo $_GET['jsoncallback'] . json_encode($arr);
echo $_GET['jsoncallback'] . "(".json_encode($arr).")";


3、通過jsonp的模式呼叫該php檔案:作用就是將登入獲取auth植入到zabbix的cookie中
    $.ajax({  
           type:"get",  
           url : zabbixUrl+"/login.php?sessionid=${sessionScope.user.auth}",  
           dataType : "jsonp",  
           jsonp:"jsoncallback",  
           success  : function(data) {  
             ///  alert("auth:"+ data.auth );  
           },  
           error : function() {  
               alert('fail');  
           }  
       }  
    );  
2、修改PHP原始檔,去掉header部分
一:修改 ./include/views/monitoring.sysmap.list.php
註釋掉:
1、//                      ->addItem((new CButton('form', _('Import')))->onClick('redirect("map.import.php?rules_preset=map")'))
2、        //      new CLink($map['name'], 'zabbix.php?action=map.view&sysmapid='.$map['sysmapid']),
修改為:
new CLink($map['name'], 'map.php?sysmapid='.$map['sysmapid']),
3、        //      $action = new CLink(_('Properties'), 'sysmaps.php?form=update&sysmapid='.$map['sysmapid']);
        //      $constructor = new CLink(_('Constructor'), 'sysmap.php?sysmapid='.$map['sysmapid']);
修改為:
                $action = new CLink(_('拓撲屬性'), 'sysmaps.php?form=update&sysmapid='.$map['sysmapid']);
                $constructor = new CLink(_('構造拓撲'), 'sysmap.php?sysmapid='.$map['sysmapid']);


二:修改這幾個檔案:['image.php', 'sysmaps.php', 'sysmap.php', 'map.php', 'map.import.php']
將require_once dirname(__FILE__).'/include/page_header.php';
替換成:
require_once dirname(__FILE__).'/include/page_header1.php';


三:複製php檔案:
cp  ./app/views/layout.htmlpage.menu.php  ./app/views/layout.htmlpage.menu1.php
cp ./include/page_header.php ./include/page_header1.php


四:修改header檔案
vi ./include/page_header1.php
將: $pageMenu = new CView('layout.htmlpage.menu', [
修改為:
 $pageMenu = new CView('layout.htmlpage.menu1', [
五:cd /usr/share/zabbix
vi login.php
<?php
header('Content-Type:text/html;Charset=utf-8');  
require_once dirname(__FILE__).'/include/config.inc.php';
require_once dirname(__FILE__).'/include/forms.inc.php';
require_once dirname(__FILE__).'/include/func.inc.php';
$result =getRequest('sessionid');
zbx_setcookie('zbx_sessionid', $result,   0);
$arr = array(  
    "auth" => $result  
); 
//echo $_GET['jsoncallback'] . json_encode($arr); 
echo $_GET['jsoncallback'] . "(".json_encode($arr).")";


六:vi ./app/views/layout.htmlpage.menu1.php
註釋一下程式碼:
/*
(new CTag('header', true))
        ->setAttribute('role', 'banner')
        ->addItem(
                (new CDiv())
                        ->addItem($top_menu)
                        ->addItem($sub_menu_div)
                        ->addClass(ZBX_STYLE_NAV)
                        ->setAttribute('role', 'navigation')
        )
        ->show();
*/



相關文章