Добрый день. Необходимо мониторить RAID-контроллер Adaptec.
План: Получить информацию об логических дисках и на каждый найденный лог. диск автоматически создавать элемент данных, в котором будет его состояние (Optimal, Degraded и т.д.).
Информацию об логических дисках на контроллере можно получить через CMD отправив команду: arcconf getconfig 1 LD.
1) Создаю элемент данных:
Имя: Discovered LD
Тип: Zabbix агент
Ключ: system.run["arcconf getconfig 1 LD"]
Тип информации: Текст
Предобработка: JavaScript
На выходе получаю JSON:
2) Создаю Правило обнаружения:
Имя: LD list
Тип: Зависимый элемент данных
Ключ: ld.list
Основной ЭД: Discovered LD
LLD макросы: {#LD} и JSONPath $..LD
3) Создаю Прототип элементов данных:
Имя: LD {#LD} Status
Тип: Зависимый элемент данных
Ключ: ld.status.[{#LD}]
Тип информации: Текст
Основной ЭД: Discovered LD
Предобработка: JSONPath $..Status
Прототипы элементов данных на узле создаются (LD number 0 Status, LD number 1 Status, LD number 2 Status), но значения у них пустые.
Как мне передать каждому элементу данных (LD number 0 Status, и т.д.) его значение из JSON, который получает элемент данных "Discovered LD"? Я же указал, что "LD {#LD} Status" - это зависимый элемент данных от "Discovered LD"
План: Получить информацию об логических дисках и на каждый найденный лог. диск автоматически создавать элемент данных, в котором будет его состояние (Optimal, Degraded и т.д.).
Информацию об логических дисках на контроллере можно получить через CMD отправив команду: arcconf getconfig 1 LD.
1) Создаю элемент данных:
Имя: Discovered LD
Тип: Zabbix агент
Ключ: system.run["arcconf getconfig 1 LD"]
Тип информации: Текст
Предобработка: JavaScript
Code:
const ld = value.match(/number.(.*)/g);
const status = value.match(/logical.device.*:.(.*)/g);
var data = [];
for (i = 0; i <= ld.length; i++) {
data.push({"LD": ld[i], "Status": status[i]});
}
data.pop();
return JSON.stringify(data);
Code:
[{"LD":"number 0","Status":"logical device : Optimal"},{"LD":"number 1","Status":"logical device : Optimal"},{"LD":"number 2","Status":"logical device : Optimal"}]
Имя: LD list
Тип: Зависимый элемент данных
Ключ: ld.list
Основной ЭД: Discovered LD
LLD макросы: {#LD} и JSONPath $..LD
3) Создаю Прототип элементов данных:
Имя: LD {#LD} Status
Тип: Зависимый элемент данных
Ключ: ld.status.[{#LD}]
Тип информации: Текст
Основной ЭД: Discovered LD
Предобработка: JSONPath $..Status
Прототипы элементов данных на узле создаются (LD number 0 Status, LD number 1 Status, LD number 2 Status), но значения у них пустые.
Как мне передать каждому элементу данных (LD number 0 Status, и т.д.) его значение из JSON, который получает элемент данных "Discovered LD"? Я же указал, что "LD {#LD} Status" - это зависимый элемент данных от "Discovered LD"
Comment