Ad Widget

Collapse

json мониторинг открытых шар на хостах

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Holira
    Junior Member
    • Dec 2018
    • 10

    #1

    json мониторинг открытых шар на хостах

    Здравствуйте. Я написала скрипт, который должен отправлять информацию о сетевых шарах в заббикс в формате json. Не могу понять где затык, вывод правильный (как доказательство, на скриншоте и в кусочке лога видно аналогичный скрипт, который работает), а заббикс ругается на неправильный формат.

    Помогите хоть направлением куда думать, спасибо.


    Click image for larger version  Name:	2019-07-16_14-27-29.png Views:	1 Size:	45.6 KB ID:	382410


    Сам скрипт:

    Code:
    $ErrorActionPreference = "SilentlyContinue"
    
        #поиск сетевой шары на локальном пк и добавления в zabbix  
    
    $json = ""
    $idx = 0
    
        #Получение списка имени шары    
    $PCShare = Get-WmiObject Win32_Share –filter "Type=0"
    
    ForEach($Share in $PCShare)
    {
    
        $idx++;
        if ($idx -eq 1)
            {
    
            } else
            {
                $json +=  ",`n"
            }
    
        $Sha = $Share.name
        $Patch = "\\" + $env:COMPUTERNAME + "\" + $Sha + "\"
    #    $line = get-item $Patch |get-acl
    
        #Добавления данных в конечный json
                $json += "`t {`n " +
                "`t`t`"{#GLOBALPATHSHAREDRESOURCE}`":`""+$Patch+"`""+ ",`n" +      
    #            "`t`t`"{#OWNERSharedResource}`":`""+$line.owner+"`""+ ",`n" +        
    #            "`t`t`"{#GROUPSharedResource}`":`""+$line.group+"`""+ ",`n" +
    #            "`t`t`"{#ACCESSSharedResource}`":`""+$line.access+"`"" +",`n" +
                 "`t`t`"{#LOCALPATHSHAREDRESOURCE}`":`""+$Share.path+"`""+ "`n" +
               "`t }"
    
    }    
    write-host "{"
    write-host " `"data`":["
    write-host $json
    write-host " ]"
    write-host "}"

    Log с агента:

    HTML Code:
        8708:20190716:141545.707 In collect_perfstat()
      8708:20190716:141545.707 End of collect_perfstat()
      5296:20190716:141545.827 In send_buffer() host:'192.168.13.221' port:10051 entries:0/100
      5296:20190716:141545.827 End of send_buffer():SUCCEED
      8824:20190716:141546.032 Requested [SharedResource.discovery]
      8824:20190716:141546.356 EXECUTE_STR() command:'powershell -NoProfile -ExecutionPolicy Bypass -File "C:\zabbix\ps1\SharedResource.ps1"' len:142 cmd_result:'{
     "data":[
         {
             "'
      8824:20190716:141546.356 Sending back [{
     "data":[
         {
             "{#GLOBALPATHSHAREDRESOURCE}":"\\D\Plany",
            "{#LOCALPATHSHAREDRESOURCE}":"C:\Program Files (x86)\MMIS Lab\Plany"
         }
     ]
    }]
      9432:20190716:141551.763 Requested [uHDD.discovery]
      5296:20190716:141551.863 In send_buffer() host:'192.168.13.221' port:10051 entries:0/100
      5296:20190716:141551.863 End of send_buffer():SUCCEED
      9432:20190716:141552.312 EXECUTE_STR() command:'powershell -NoProfile -ExecutionPolicy Bypass -File "C:\zabbix\ps1\smartctl-disks-discovery.ps1"' len:205 cmd_result:'{
     "data":[
         {
             "'
      9432:20190716:141552.312 Sending back [{
     "data":[
         {
             "{#DISKSN}":"WD-WMAVU0346019",
            "{#DISKMODEL}":"WDC WD10EADS-00P8B0",
            "{#DISKNAME}":"/dev/sda",
            "{#DISKCMD}":"/dev/sda -data",
            "{#SMART_ENABLED}":"1",
            "{#DISKTYPE}":"0"
         }
     ]
    }]
      8708:20190716:141552.743 In collect_perfstat()
      8708:20190716:141552.743 End of collect_perfstat()
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Code:
       8824:20190716:141546.356 Sending back [{
      "data":[
          {
              "{#GLOBALPATHSHAREDRESOURCE}":"\\D\Plany",
              "{#LOCALPATHSHAREDRESOURCE}":"C:\Program Files (x86)\MMIS Lab\Plany"
          }
        ]
      }]
    Подозреваю, что дело в том, что в синтаксисе JSON обратная косая черта в строках используется для экранирования. Соответственно, для пересылки самого символа "\" он должен быть удвоен. При пересылке другого JSON-а (с информацией о дисках) этот символ в передаваемых данных не присутствует, поэтому там проблема не возникает.

    Comment


    • Holira
      Holira commented
      Editing a comment
      Гениально. Спасибо вам большое.
Working...