Oracle Tablespace LLD не работает для нескольких DSN в Zabbix - PullRequest
0 голосов
/ 12 апреля 2020

Я использую приведенный ниже скрипт для обнаружения табличного пространства и сведений о заданиях для конкретного DSN, но если я передаю несколько DSN из массива, он не работает, так как он не попадает под один элемент JSON root, а несколько root элементов. Кто-нибудь может мне помочь исправить это

#!/usr/bin/php
<?php

  if(!isset($argv[1]) && !isset($argv[2])) exit("ZBX_NOTSUPPORTED");
$argv[1] = (explode("|", $argv[1] ));    
foreach ($argv[1] as $value) {
$arry['data'][]=array('{#DSN}'=>"$value",);

$connected_dsn = odbc_connect($value,"","");

  if(!$connected_dsn) exit('SQL connection erorr | ZBX_NOTSUPPORTED');

  switch ($argv[2]) {
      case "tablespaces":
          $result=odbc_exec($connected_dsn,"SELECT tablespace_name FROM dba_tablespaces;");
          $tablespaces = array("data"=>array());

          while(odbc_fetch_row($result)){
               $tablespaces['data'][]=array('{#TBSNAME}'=>odbc_result($result,1),'{#DSN}'=>$value);
          }    
        echo json_encode($tablespaces);
        break;

      case "jobs":
          $result=odbc_exec($connected_dsn,"SELECT job_name, owner FROM dba_scheduler_jobs WHERE state != 'DISABLED';");

          $jobs = array("data"=>array());

          while(odbc_fetch_row($result)){
               $jobs['data'][]=array(
                                        '{#JOBNAME}'=>odbc_result($result,1),
                                        '{#JOBOWNER}'=>odbc_result($result,2));
          }                             

          echo json_encode($jobs);
         # break;
  }      

#exit();
}

?>
[root@tets_server externalscripts]# ./test_oracle.odbc.discovery     "KCEPCPRDDB1V-EPCPRDDB|KCEPCPRDDB1V-EPCPVMDB" tablespaces
{"data":[{"{#TBSNAME}":"SYSTEM"},{"{#TBSNAME}":"SYSAUX"},{"{#TBSNAME}":"UNDOTBS1"},{"{#TBSNAME}":"TEMP"},{"{#TBSNAME}":"XDB"},{"{#TBSNAME}":"USERS"},{"{#TBSNAME}":"STATSPACK_DATA"},{"{#TBSNAME}":"SCPODATA"},{"{#TBSNAME}":"WWFDATA"},{"{#TBSNAME}":"IGPDATA"},{"{#TBSNAME}":"EMADATA"},{"{#TBSNAME}":"CRNDATA"},{"{#TBSNAME}":"BATCHDATA"},{"{#TBSNAME}":"NTWKSDATA"},{"{#TBSNAME}":"NWMDATA"},{"{#TBSNAME}":"COMMUSR"},{"{#TBSNAME}":"BATCHJOB"},{"{#TBSNAME}":"REPORTSDATA"}]}{"data":[{"{#TBSNAME}":"SYSTEM"},{"{#TBSNAME}":"SYSAUX"},{"{#TBSNAME}":"UNDOTBS1"},{"{#TBSNAME}":"TEMP"},{"{#TBSNAME}":"XDB"},{"{#TBSNAME}":"USERS"},{"{#TBSNAME}":"STATSPACK_DATA"},{"{#TBSNAME}":"SCPODATA"},{"{#TBSNAME}":"WWFDATA"},{"{#TBSNAME}":"IGPDATA"},{"{#TBSNAME}":"EMADATA"},{"{#TBSNAME}":"CRNDATA"},{"{#TBSNAME}":"BATCHDATA"},{"{#TBSNAME}":"COMMUSR"},{"{#TBSNAME}":"NTWKSDATA"},{"{#TBSNAME}":"BATCHJOB"}]}
> [root@ets_server externalscripts]#
...