Hello,
Would be thankful if some zabbix expert look at this.
Brocade in their new Gen6 and Gen7 switches implements new REST API. API is documented in this doc - https://docs.broadcom.com/docs/FOS-82X-REST-API-RM . We are trying to monitor our SAN infrastructure using this API. And we face some issues.
The whole idea is this:
a) use master item to fetch all information about interfaces (module brocade-interface with 2 submodules - fibrechannel and fibrechannel-statistics)
b) use discovery as dependent item to get array of ports
c) use item prototype as dependent item to get values for those ports
For Port index we do:
a) master item we get easily applying $.Response.fibrechannel in preprocesing.
b) discovery we do easily with dependent item. Macros are as follows - {#PORTISENABLEDSTATE} as $..["is-enabled-state"] and {#PORTOPERATIONALSTATUS} as $..["operational-status"]. Filter (A and B) - A) {#PORTISENABLEDSTATE} matches "true", B) {#PORTOPERATIONALSTATUS} matches "2".
c) item prototype we do easily as dependent item from master item and here we stop.
The problem is, that with a given API we can not do proper filtering in item prototypes using those json structures. API is something we can not change. It is as it is. How can I get values without knowing port index? Attaching files for clearance.
Need a professional answer.
Would be thankful if some zabbix expert look at this.
Brocade in their new Gen6 and Gen7 switches implements new REST API. API is documented in this doc - https://docs.broadcom.com/docs/FOS-82X-REST-API-RM . We are trying to monitor our SAN infrastructure using this API. And we face some issues.
The whole idea is this:
a) use master item to fetch all information about interfaces (module brocade-interface with 2 submodules - fibrechannel and fibrechannel-statistics)
b) use discovery as dependent item to get array of ports
c) use item prototype as dependent item to get values for those ports
For Port index we do:
a) master item we get easily applying $.Response.fibrechannel in preprocesing.
b) discovery we do easily with dependent item. Macros are as follows - {#PORTISENABLEDSTATE} as $..["is-enabled-state"] and {#PORTOPERATIONALSTATUS} as $..["operational-status"]. Filter (A and B) - A) {#PORTISENABLEDSTATE} matches "true", B) {#PORTOPERATIONALSTATUS} matches "2".
c) item prototype we do easily as dependent item from master item and here we stop.
The problem is, that with a given API we can not do proper filtering in item prototypes using those json structures. API is something we can not change. It is as it is. How can I get values without knowing port index? Attaching files for clearance.
Need a professional answer.