Задача: мониторить на сервере все процессы с определенным именем и отражать в заббиксе инфу о том, у какого пользователя этот процесс сколько памяти съел.
Сделал скрипт, который периодически будет запускаться и выгружать нужную информацию в json формате и отправляеть на сервер с помощью zabbix_sender.
'C:\Program Files\Zabbix Agent\zabbix_sender.exe' -z $zabbixServer -s $zabbixHost -k "user.memory.usage" -o $jsonResult
В $jsonResult содержится следующее:
{
"data": [
{
"{#USERNAME}": "user1",
"{#MEMORY}": 837.65
},
{
"{#USERNAME}": "user2",
"{#MEMORY}": 275.34
},
{
"{#USERNAME}": "user3",
"{#MEMORY}": 419
},
{
"{#USERNAME}": "user4",
"{#MEMORY}": 888.21
},
{
"{#USERNAME}": "user5",
"{#MEMORY}": 321.71
},
{
"{#USERNAME}": "user6",
"{#MEMORY}": 769.57
},
{
"{#USERNAME}": "user7",
"{#MEMORY}": 472.07
},
{
"{#USERNAME}": "user8",
"{#MEMORY}": 418.78
},
{
"{#USERNAME}": "user9",
"{#MEMORY}": 410.75
},
{
"{#USERNAME}": "user10",
"{#MEMORY}": 629.2
},
{
"{#USERNAME}": "user11",
"{#MEMORY}": 594.19
},
{
"{#USERNAME}": "user12",
"{#MEMORY}": 647.61
},
{
"{#USERNAME}": "user13",
"{#MEMORY}": 392.89
},
{
"{#USERNAME}": "user14",
"{#MEMORY}": 499.8
}
]
}
В ответ на запрос в консоли получаю следующее:
Response from "z******:10051": "processed: 1; failed: 0; total: 1; seconds spent: 0.000530"
sent: 1; skipped: 0; total: 1
Как я понимаю - запрос отправлен успешно
На сервере сделано следующее:
Создал новый шаблон, в нём правило обнаружения со следующими параметрами:
Имя: User memory usage discovery
Тип: Zabbix траппер
Ключ: user.memory.usage
Создал прототип элемента данных:
Имя: Memory usage for {#USERNAME}
Тип: Zabbix траппер
Ключ: memory.usage[{#USERNAME}]
Тип информации: с плавающей точкой
Ед измерения: MB
В итоге вижу на нужном узле в обнаружении ошибку:
Invalid discovery rule value: cannot parse as a valid JSON object: invalid object name at: 'data: [
{
{#USERNAME}: user1,
{#MEMORY}: 837.65
},
{
{#USERNAME}:
Вот что делаю не так? Весь мозг уже слегка кипит.
Версия заббикс сервера 7.0.4