Добрый день, коллеги.
Существует задача контролировтаь статус RAID-массивов на серверах. В общем случае этих массивов может быть не одна штука на сервере.
Версия Zabbix Server и агентов - 1.8.10
Мониторить нужно, например, Adaptec 3405. Другого варианта, как мониторить его по SNMP (ну и события ч/з SNMP-trap) я не придумал. Соотвественно, есть набор SNMP OID из значений (самый простой вариант, 2 массива):
Итак, в идеале мне бы одним шаблоном прогулятся по OID'ам и получить данные, сведенные в табл. Я такого решения, опять же, не нашел, и пошел другим (дурным?) путем:
* создал родительский шаблон AdaptecRAID со item'ами, типа такого:
item desc: Array{$ARRAYNUM}Level
SNMP OID: .1.3.6.1.4.1.795.14.1.1000.1.1.4.{$ARRAYNUM}
item key: ArrayLevel[*] сейчас, но пробовал и ArrayLevel{$ARRAYNUM}, и ArrayLevel[{$ARRAYNUM}], и ArrayLevel[{\$ARRAYNUM}]
и определил macro {$ARRAYNUM} на уровне шаблона равным 1.
* дочерние шаблоны AdaptecArray1 и AdaptecArray2, к к-рым прилинкован шаблон AdaptecRAID, и переопределенными значениеями macro {$ARRAYNUM} равными 1 и 2 соответственно.
После этого я пытаюсь прилинковать эти дочерние шаблоны к одному хосту, после чего получаю в любом случае ошибку уникальности item key. При том, что и item descr, и сами OID'ы успешно и корректно подставляют макрос.
Может быть я иду совершенно не по тому пути, может быть ошибюсь здесь; прошу подсказать и помочь в решении проблемы. Гранд мерси.
Существует задача контролировтаь статус RAID-массивов на серверах. В общем случае этих массивов может быть не одна штука на сервере.
Версия Zabbix Server и агентов - 1.8.10
Мониторить нужно, например, Adaptec 3405. Другого варианта, как мониторить его по SNMP (ну и события ч/з SNMP-trap) я не придумал. Соотвественно, есть набор SNMP OID из значений (самый простой вариант, 2 массива):
Code:
Name/OID: ausArrayIndex.1; Value (Integer): 1 Name/OID: ausArrayIndex.2; Value (Integer): 2 Name/OID: ausArrayName.1; Value (OctetString): RAID1 Name/OID: ausArrayName.2; Value (OctetString): Device 1 Name/OID: ausArrayCapacity.1; Value (Integer): 476150 Name/OID: ausArrayCapacity.2; Value (Integer): 571381 Name/OID: ausArrayType.1; Value (Integer): raid1 (4) Name/OID: ausArrayType.2; Value (Integer): volume (12) Name/OID: ausArrayStripeSize.1; Value (Integer): -1 Name/OID: ausArrayStripeSize.2; Value (Integer): -1 Name/OID: ausArrayTaskStatus.1; Value (Integer): noTaskActive (3) Name/OID: ausArrayTaskStatus.2; Value (Integer): noTaskActive (3) Name/OID: ausArrayTaskCompletion.1; Value (Integer): 100 Name/OID: ausArrayTaskCompletion.2; Value (Integer): 100 Name/OID: ausArrayTaskPriority.1; Value (Integer): low (6) Name/OID: ausArrayTaskPriority.2; Value (Integer): low (6) Name/OID: ausArrayHostingControllerType.1; Value (Integer): physicalController (1) Name/OID: ausArrayHostingControllerType.2; Value (Integer): physicalController (1)
* создал родительский шаблон AdaptecRAID со item'ами, типа такого:
item desc: Array{$ARRAYNUM}Level
SNMP OID: .1.3.6.1.4.1.795.14.1.1000.1.1.4.{$ARRAYNUM}
item key: ArrayLevel[*] сейчас, но пробовал и ArrayLevel{$ARRAYNUM}, и ArrayLevel[{$ARRAYNUM}], и ArrayLevel[{\$ARRAYNUM}]
и определил macro {$ARRAYNUM} на уровне шаблона равным 1.
* дочерние шаблоны AdaptecArray1 и AdaptecArray2, к к-рым прилинкован шаблон AdaptecRAID, и переопределенными значениеями macro {$ARRAYNUM} равными 1 и 2 соответственно.
После этого я пытаюсь прилинковать эти дочерние шаблоны к одному хосту, после чего получаю в любом случае ошибку уникальности item key. При том, что и item descr, и сами OID'ы успешно и корректно подставляют макрос.
Может быть я иду совершенно не по тому пути, может быть ошибюсь здесь; прошу подсказать и помочь в решении проблемы. Гранд мерси.
Comment