Использование МАКРОСОВ в определении ключа элемента данных

У меня проблема с использованием предопределенного макроса в Zabbix. Я определил два макроса следующим образом:

{$HOSTNAME}=2008-Windows-сервер {$IPADDRESS}=192.168.1.1

Я хочу использовать их в имени элемента и ключе элемента. макрос {$HOSTNAME} правильно сопоставляется со своим значением, когда он используется в разделе имени элемента. Но когда я использовал {$IPADDRESS} в ключе этого элемента, он не преобразуется в IP-адрес, поэтому я получаю сообщение об ошибке Not Supported!! Я использую его следующим образом: getNetFlowProto[{$IPADDRESS},udp]

getNetFlowProto — это пользовательский параметр, который я определил в файле zabbix_agend.conf.

Любая помощь приветствуется.


person Sinai    schedule 09.06.2016    source источник
comment
Если вы замените usermacro буквальным IP-адресом, это сработает? Если нет, это проблема с параметром пользователя, а не с использованием макроса.   -  person Richlv    schedule 09.06.2016
comment
Спасибо Ричлв. да, если я поставлю IP-адрес, он работает. Но поскольку я хочу создать шаблон, мне нужно использовать макросы вместо буквального IP-адреса. Кстати, я использую Zabbix 3.0.   -  person Sinai    schedule 09.06.2016
comment
Покажите определение параметров пользователя из файла конфигурации агента. Может быть, вы пропустили [*] после ключа элемента?   -  person Richlv    schedule 10.06.2016
comment
Вот пользовательский параметр, который я определил: UserParameter=getNetFlowProto[*], /bin/bash /zascripts/getNetFlowInfo.sh $1 $2‹br/› test   -  person Sinai    schedule 10.06.2016
comment
Уважаемый @Richlv, кажется, это работает!!! Один вопрос: когда я поместил $HOSTNAME в имя элемента, он сразу же изменился на его буквальное значение, но этого не происходит в ключе элемента!!! но это работает, и я могу получить результат как из последних данных zabbix, так и из zabbix_get!!! Возможно, макросы не изменены на их буквальные значения??   -  person Sinai    schedule 10.06.2016
comment
я не понял этот вопрос. что не происходит?   -  person Richlv    schedule 10.06.2016
comment
Уважаемый @Richlv, я сказал, что когда я использую $HOSTNAME в имени элемента, $HOSTNAME изменяется на его буквальный 2008-windows-server после того, как я сохраняю элемент, и я вижу его в разделе «Элементы» моего хоста. Но когда я использую макрос $IPADDRESS, как я уже упоминал в своем вопросе в ключе элемента, он не изменяется на его литерал, который равен 192.168.1.1, после того, как я сохраняю элемент, и я вижу этот элемент, как этот getNetFlowProto[{$IPADDRESS}, udp] в списке элементов моего хоста!!   -  person Sinai    schedule 10.06.2016
comment
продолжение предыдущего комментария: Но это работает, и я могу получить желаемые результаты с помощью последних данных из внешнего интерфейса zabbix и zabbix_get через оболочку. Я думаю, что макросы, которые используются в ключе элемента, заменяются соответствующими литералами в фоновом режиме и не отображаются в списках элементов, я прав? Я имею в виду, когда вы создаете элемент, такой как getNetFlowProto[{$IPADDRESS},udp], когда этот элемент проверяется zabbix, он изменяется на 192.168.1.1 в фоновом режиме, но если вы видите его в списке элементов, вы увидите его как getNetFlowProto [{$IP-АДРЕС},udp].   -  person Sinai    schedule 10.06.2016
comment
какую версию zabbix используете? на какую именно страницу вы смотрите и видите эти результаты?   -  person Richlv    schedule 11.06.2016
comment
Я использую Zabbix 3.0. Я вижу результат в zabbix из мониторинга --> последние данные --> имя ключа и внутри оболочки с помощью команды zabbix_get.   -  person Sinai    schedule 12.06.2016
comment
хорошо, я думаю, что наконец-то догадываюсь, что там произошло - добавлю это как ответ :)   -  person Richlv    schedule 12.06.2016


Ответы (1)


Судя по довольно длительному общению, произошло следующее:

  • вы использовали макросы Zabbix (переменные) как в имени элемента, так и в ключе
  • вы проверили, что макрос в названии элемента разрешен в разделе мониторинга и настройки, но макрос в ключе элемента не разрешен (в разделе конфигурации)

Это может быть вызвано тем, что Zabbix не разрешает все макросы на всех страницах конфигурации. Это не очень последовательно и четко не задокументировано.

  • вы видели, что пункт не работает

Это может быть вызвано опечаткой и, возможно, задержкой кеша конфигурации - когда вы вносите изменения в элементы, сервер Zabbix может работать с предыдущей конфигурацией до минуты. Возможно, вы видели предыдущую ошибку, но думали, что она была вызвана последней конфигурацией. Эта догадка подтверждается тем фактом, что она в конечном итоге сработала с тем, что было якобы одним и тем же макросом.

person Richlv    schedule 12.06.2016
comment
Кажется, это так, как вы описали @Richlav. Элемент работает, когда я использую нужный макрос, например: getNetFlowProto[[{$IPADDRESS}],udp], и он не преобразуется в буквальное значение, но работает. Я знаю, что должен использовать HOST.IP и HOST.NAME, но эти макросы используют имя хоста и IP-адрес, которые определены для хоста. Но я хочу использовать IP-адрес, который отличается от основного IP-адреса хоста, поэтому мне нужно создать свои собственные макросы. - person Sinai; 15.06.2016
comment
ах, спасибо за уточнение - я немного неправильно прочитал имена макросов. я удалил предложение о HOST.IP/NAME, поскольку оно могло ввести в заблуждение и не имело отношения к делу. - person Richlv; 15.06.2016