Ad Widget

Collapse

Ключ вычисляемого прототипа элемента да&

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • timmer
    Junior Member
    • Aug 2017
    • 3

    #1

    Ключ вычисляемого прототипа элемента да&

    Доброго дня!
    После нескольких дней попыток разобраться что к чему, переступаю через себя и объявляю капитуляцию то есть, пришел за советом и помощью к вам, уважаемые форумчане.

    Итак, вводные данные:
    - Поднял Zabbix 3.2.7
    - Установил агенты Zabbix на Win-машины
    - Настроил обнаружение работающих агентов и добавление хостов в нужные группы/шаблоны
    - Настроил несколько Discovery rule для нужного шаблона, на который линкуются обнаруженные хосты со следующими параметрами - тип "Заббикс-агент", ключ "perf_counter[бла-бла]"

    Затык случился, когда мне понадобилось мониторить несколько процессов на нескольких серверах (а именно - процессы сервера 1С: rphost, ragent, rmngr). Поскольку perf_counter["\Process({#ERPPROCESS})\% Processor Time",10] суммирует все логические процессоры сервера, он ожидаемо возвращает значение больше 100%. Я решил, что, раз у заббикса есть замечательный тип элемента данных "вычисляемый", то можно полученное значение счетчика разделить на количество логических процессоров и будет мне счастье. Но не тут-то было:

    - В шаблоне, к которому прилинкован целевой хост, создал элемент данных:
    Тип: Zabbix агент
    Ключ: wmi.get[root\cimv2,select NumberOfLogicalProcessors from Win32_Processor]
    Проверил, данные получаются.
    - В том же шаблоне создал правило обнаружения с ключом erpserver.process.discovery
    - В конфиге агента целевого сервера добавил UserParameter=erpserver.process.discovery,powershe ll -NoProfile -File c:\scripts\GetErpProcesses.ps1, который возвращает список работающих процессов:
    Code:
    {
     "data":[
    
    { "{#ERPPROCESS}" : "rphost" },
    { "{#ERPPROCESS}" : "rphost#1" },
    { "{#ERPPROCESS}" : "rphost#2" },
    { "{#ERPPROCESS}" : "ragent" },
    { "{#ERPPROCESS}" : "ragent#1" },
    { "{#ERPPROCESS}" : "ragent#2" },
    { "{#ERPPROCESS}" : "rmngr" },
    { "{#ERPPROCESS}" : "rmngr#1" },
    { "{#ERPPROCESS}" : "rmngr#2" }
    
     ]
    }
    - В этом обнаружении прототип элементов данных:
    Тип: Zabbix агент
    Ключ: perf_counter["\Process({#ERPPROCESS})\% Processor Time",15]
    Проверил, данные получаются.

    Теперь по идее надо добавить в это обнаружение прототип элемента данных с типом "вычисляемый", который будет делить последнее значение счетчика производительности на количество логических ЦП. Добавляю:
    Тип: Вычисляемое
    Формула: last("perf_counter[\"\Process({$ERPPROCESS})\% Processor Time\",15]")/last("wmi.get[root\cimv2,select NumberOfLogicalProcessors from Win32_Processor]")
    Ключ: ???
    в ключе написал erp.processortime.process.calculated[{$ERPPROCESS}], но не работает: Cannot create item: item with the same key "erp.processortime.process.calculated[{$ERPPROCESS}]" already exists.

    ЧЯДНТ? Документация ответа не дала. С надеждой жду ваших ответов
  • Semiadmin
    Senior Member
    • Oct 2014
    • 1625

    #2
    В ключе, в формуле и в имени прототипа вычисляемого элемента д.б. {#erpprocess}, а не {$erpprocess}.
    P.S. как обычно, заглавные буквы стали строчными, но суть, надеюсь, понятна.

    Comment

    • timmer
      Junior Member
      • Aug 2017
      • 3

      #3
      Originally posted by Semiadmin
      В ключе, в формуле и в имени прототипа вычисляемого элемента д.б. {#erpprocess}, а не {$erpprocess}.
      P.S. как обычно, заглавные буквы стали строчными, но суть, надеюсь, понятна.
      спасибо за ответ! $ вместо # я пробовал раньше с тем же результатом (cannot create item), и поменял уже от безысходности, потому что то ли в документации, то ли на просторах инета видел инфу, что "так тоже можно, но на что-то это влияет" ))

      В итоге, проблему решил указав вот такой ключ:
      Code:
      erpserver.process.discovery[{#ERPPROCESS},"perf_counter[\"\Process({#ERPPROCESS})\% Privileged Time\",15]"]
      где erpserver.process.discovery - ключ правила обнаружения с первым параметром {#ERPPROCESS} - названием процесса, которое получается скриптом в UserParameter, а вторым - вычисляемая метрика

      Comment

      Working...