Доброго дня!
После нескольких дней попыток разобраться что к чему, переступаю через себя и объявляю капитуляцию
то есть, пришел за советом и помощью к вам, уважаемые форумчане.
Итак, вводные данные:
- Поднял 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, который возвращает список работающих процессов:
- В этом обнаружении прототип элементов данных:
Тип: 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.
ЧЯДНТ? Документация ответа не дала. С надеждой жду ваших ответов
После нескольких дней попыток разобраться что к чему, переступаю через себя и объявляю капитуляцию
то есть, пришел за советом и помощью к вам, уважаемые форумчане.Итак, вводные данные:
- Поднял 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.
ЧЯДНТ? Документация ответа не дала. С надеждой жду ваших ответов
Comment