Я только что перешел с nagios2 на nagios3, в основном для функции настраиваемых макросов.
В моей сети есть два типа серверов:
Я пытаюсь установить значение по умолчанию для макроса $ _HOSTIPSNMP $ в шаблоне хоста ..
define host {
name linux-server
...
_IPSNMP $HOSTADDRESS$
...
}
Я предположил, что все хосты автоматически установят $ _HOSTIPSNMP $ с содержимым $ HOSTADDRESS $
Если я смогу заставить это работать, вторая часть будет заключаться в установке пользовательских значений для каждого хоста для $ _HOSTIPSNMP $ в стиле:
define host {
use linux-server
address 123.123.123.123
_IPSNMP 192.168.1.10
}
Итак, $ _HOSTIPSNMP $ всегда имеет разумное значение, и я могу установить его на все, что захочу, когда мне нужно.
Ошибка, с которой я столкнулся, заключается в следующем: кажется, что _HOSTIPSNMP не заменяется должным образом для значения переменной, а вместо этого заменяется на имя переменной.
cmd=[/usr/lib/nagios/plugins/check_snmp_storage.pl '-H' 'HOSTADDRESS'
'-C' 'comunity' '-m' '/' '-w' '80%' '-c' '85%']
output=[ERROR: Unable to resolve UDP/IPv4 address 'HOSTADDRESS'.
Я попытался изменить цитирование $ HOSTADDRESS $ в шаблоне, но ничего из того, что я пробовал, не сработало.
Спасибо за вашу помощь.
Что ж, в конце единственным решением для этого было сообщить всем хостам значение _IPSNMP.
Кажется, что макросы не разрешаются рекурсивно, и это предполагаемое поведение (по крайней мере, в nagios 3)
По крайней мере, я умел делать то, что хотел, аккуратно. Всем рекомендую использовать макросы.
Согласно Nagios документация в макросах правильным способом ссылки на _IPSNMP, определенного выше, будет $ _HOSTIPSNMP $