Ad Widget

Collapse

Мониторинг размера файлов по маске.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • RK3DNP1
    Junior Member
    • Aug 2016
    • 29

    #16
    Сейчас новая проблема ))) Я могу передать только имя файла, а вот путь не могу, ставлю слеш \, а заббикс уже пишет, что неверный формат json (обратный слеш вроде понимает). Можно путь включить в элемент данных, но пути у меня отличаются, так не пойдет. (((

    А на самом деле, когда я только начинал разбираться в передаче размера файла, я думал что через json я буду передавать имя файла и его размер, тогда вроде как и не надо будет правила обнаружения создавать. Но я так понял это не реализовать?

    Comment

    • sadman
      Senior Member
      • Dec 2010
      • 1611

      #17
      Originally posted by RK3DNP1
      Сейчас новая проблема ))) Я могу передать только имя файла, а вот путь не могу, ставлю слеш \, а заббикс уже пишет, что неверный формат json (обратный слеш вроде понимает). Можно путь включить в элемент данных, но пути у меня отличаются, так не пойдет. (((
      Экранировать нужно. Я выше давал ссылку на свои PoSh извращения - там и Json-конвертор есть и и экранирование учтено.

      А на самом деле, когда я только начинал разбираться в передаче размера файла, я думал что через json я буду передавать имя файла и его размер, тогда вроде как и не надо будет правила обнаружения создавать. Но я так понял это не реализовать?
      Это бессмысленное действие в рамках концепции LLD Zabbix. В LLD приходят только уникальные идентификаторы и вспомогательные элементы (названия, к примеру). Дёргать такое "дорогое" по ресурсам обнаружение можно раз в сутки. А созданные при помощи LLD элементы данных уже можно и с переменными (ночью, к примеру, не нужно следить за изменениями) и разными интервалами использовать.

      Триггер на LLD не подвесите, график не построите. А зачем вам элемент данных без этого?

      Comment

      • RK3DNP1
        Junior Member
        • Aug 2016
        • 29

        #18
        Кто может подсказать, почему ему не нравится формат, вроде все верно

        Code:
        {
        "data":[
        }
        {"{#FILENAME}":"C:/_Disks/DB1/dbcorp01/dbcorp01.edb"},{"{#FILENAME}":"C:/_Disks/DB2/dbspec01/dbspec01.edb"},{"{#FILENAME}":"C:/_Disks/DB3/dbcorp02/dbcorp02.edb"}]}

        Comment

        • yukra
          Senior Member
          • Apr 2013
          • 1359

          #19
          Неверно
          Code:
          {
          "data":[
          }      <- Зачем тут эта скобка? 
          {"{#FILENAME}":"C:/_Disks/DB1/dbcorp01/dbcorp01.edb"},{"{#FILENAME}":"C:/_Disks/DB2/dbspec01/dbspec01.edb"},{"{#FILENAME}":"C:/_Disks/DB3/dbcorp02/dbcorp02.edb"}]}

          Comment

          • RK3DNP1
            Junior Member
            • Aug 2016
            • 29

            #20
            Ребят, в очередной раз вам огромное спасибо за помощь, удалось реализовать, как хотел Желающим выкладываю (сбор, контроль, размера баз от Exchange):

            1. На компе где базы и установлен агент, создаем скрипт .ps1

            Code:
            $puth = "C:\_Disks\"
            $exclude = @(‘db*.edb’)
            $serv=$env:COMPUTERNAME
            $items = Get-ChildItem $puth -Recurse -Include $exclude | select name, fullname 
            
            WRITE-HOST "{"
            WRITE-HOST "`"data`":["
            $line =  "{`"{#SERVER}`":`"" + $serv + "`",`"{#NAME}`":`"" + $items[0].name + "`",`"{#FILENAME}`":`"" + $items[0].fullname + "`"}"
            $line2 = $line -replace('\\','/')
            write-host -NoNewline $line2
            
            
            for($c = 1; $c -lt $items.Count; ++$c) {
             $line =  ",{`"{#SERVER}`":`"" + $serv + "`",`"{#NAME}`":`"" + $items[$c].name + "`",`"{#FILENAME}`":`"" + $items[$c].fullname + "`"}"
             $line2 = $line -replace('\\','/')
             write-host -NoNewline $line2
            }
            
            write-host -NoNewline "]"
            write-host -NoNewline "}"
            2. В файле конфигурации агента, добавляем строчку:

            UserParameter=db.discovery,powershell -File "C:\Program Files\Zabbix\script\FileSize.ps1"
            Перезапускаем службу агента заббикса

            3. Создаем шаблон, в нем создаем правило обнаружения:
            с ключом db.discovery
            фильтр {#FILENAME}
            сохраняем

            4. Создаем протатип элемента данных
            Имя {#SERVER} - {#NAME}
            Тип Забикс Агент
            ключ vfs.file.size[{#FILENAME}]
            тип. инф. числовое с плавающей точкой
            единица измерений ставим В

            Сохраняем, теперь в последних данных можно смотреть результат.
            Тригеры уже настраиваются по своему усмотрению

            Comment

            Working...