Есть Windows 2008r2 сервера(50шт), которые прилетают в 6.4 zabix через Autoregistration actions. Далее, на хост накручивается почти стоковый шаблон Windows by Zabbix agent active, далее через Windows services discovery создаются элементы, все хорошо.
Задача: нужно через proc_info[<процесс>,<атрибут>,<тип>] мониторить объем физической памяти сервисов, которые нашлись через discovery.
<процесс> - имя процесса - в данном случае это имя файла, который не просто так получить, как оказалось (по крайней мере для меня)
service.discovery передает JSON, в котором есть {#SERVICE.NAME}, но у меня служба называется по одному, а имя исполняющего файла другое. Для proc_info[<процесс>,<атрибут>,<тип>] нужно именно имя файла, а не {#SERVICE.NAME}.
Имя можно вытащить из {#SERVICE.PATH}.
Сделал в Item prototypes новый элемент с ключом proc_info["{#SERVICE.PATH}",wkset,sum]. Создался элемент proc_info["C:\Honeywell\DigitalVideoManager\Bin\HWDVSCam eraM anager.exe",wkset,sum]
Как сделать так чтобы тут было без полного пути proc_info["HWDVSCameraManager.exe",wkset,sum] ? Пробовал через Функции макросов regsub (<шаблон>,<вывод>), а именно proc_info["{{#SERVICE.PATH}.regsub("(.*\\)(.*$)", \2)}",wkset,sum] (регулярное выражение проверил отдельно на https://regex101.com - работает), хотя не знаю, может тут его и нельзя применять.
Помогите пожалуйста, люди добрые!
p.s.
Советовали через Preprocessing использовать JavaScript - не силен...
root@zabbix:~# zabbix_get -s 10.10.1.22 -p 10050 -k service.discovery |jq
"{#SERVICE.NAME}": "DVM Camera Service",
"{#SERVICE.DISPLAYNAME}": "DVM Camera Service",
"{#SERVICE.DESCRIPTION}": "Enables video streaming and coordinates video-related activities in the Honeywell DVM system.",
"{#SERVICE.STATE}": 0,
"{#SERVICE.STATENAME}": "running",
"{#SERVICE.PATH}": "C:\\Honeywell\\DigitalVideoManager\\Bin\\HWDV SCam eraManager.exe",
"{#SERVICE.USER}": ".\\DVM_Manager",
"{#SERVICE.STARTUPTRIGGER}": 0,
"{#SERVICE.STARTUP}": 0,
"{#SERVICE.STARTUPNAME}": "automatic"
Задача: нужно через proc_info[<процесс>,<атрибут>,<тип>] мониторить объем физической памяти сервисов, которые нашлись через discovery.
<процесс> - имя процесса - в данном случае это имя файла, который не просто так получить, как оказалось (по крайней мере для меня)
service.discovery передает JSON, в котором есть {#SERVICE.NAME}, но у меня служба называется по одному, а имя исполняющего файла другое. Для proc_info[<процесс>,<атрибут>,<тип>] нужно именно имя файла, а не {#SERVICE.NAME}.
Имя можно вытащить из {#SERVICE.PATH}.
Сделал в Item prototypes новый элемент с ключом proc_info["{#SERVICE.PATH}",wkset,sum]. Создался элемент proc_info["C:\Honeywell\DigitalVideoManager\Bin\HWDVSCam eraM anager.exe",wkset,sum]
Как сделать так чтобы тут было без полного пути proc_info["HWDVSCameraManager.exe",wkset,sum] ? Пробовал через Функции макросов regsub (<шаблон>,<вывод>), а именно proc_info["{{#SERVICE.PATH}.regsub("(.*\\)(.*$)", \2)}",wkset,sum] (регулярное выражение проверил отдельно на https://regex101.com - работает), хотя не знаю, может тут его и нельзя применять.
Помогите пожалуйста, люди добрые!
p.s.
Советовали через Preprocessing использовать JavaScript - не силен...
root@zabbix:~# zabbix_get -s 10.10.1.22 -p 10050 -k service.discovery |jq
"{#SERVICE.NAME}": "DVM Camera Service",
"{#SERVICE.DISPLAYNAME}": "DVM Camera Service",
"{#SERVICE.DESCRIPTION}": "Enables video streaming and coordinates video-related activities in the Honeywell DVM system.",
"{#SERVICE.STATE}": 0,
"{#SERVICE.STATENAME}": "running",
"{#SERVICE.PATH}": "C:\\Honeywell\\DigitalVideoManager\\Bin\\HWDV SCam eraManager.exe",
"{#SERVICE.USER}": ".\\DVM_Manager",
"{#SERVICE.STARTUPTRIGGER}": 0,
"{#SERVICE.STARTUP}": 0,
"{#SERVICE.STARTUPNAME}": "automatic"
Comment