Перейти к основному содержанию

Zabbix Agent — динамический Hostname

Zabbix

Когда мы настраиваем конфигурационный файл Zabbix Agent, то можем указать название в параметре Hostname. Можно несколько значений, через запятую. Разрешённые символы: алфавитно-цифровые, '.', ' ', '_', '-'. Максимум 128 символов на Hostname, 2048 символов на все значения.

### Option: Hostname
#    Unique, case sensitive hostname.
#    Required for active checks and must match hostname as configured on the server.
#    Value is acquired from HostnameItem if undefined.
#
# Mandatory: no
# Default:
# Hostname=

Hostname=Zabbix server

Если этот параметр не указывать, то вместо него используется другой параметр HostnameItem.

### Option: HostnameItem
#    Item used for generating Hostname if it is undefined. Ignored if Hostname is defined.
#    Does not support UserParameters or aliases.
#
# Mandatory: no
# Default:
# HostnameItem=system.hostname

Этот параметр уже интереснее. В него можно передавать другие ключи. Пользовательские переменные и алиасы не разрешены.

  • По умолчанию это system.hostname, что возвращает имя сервера.
  • system.hostname[host] — полное имя сервера.
  • system.hostname[shorthost,lower] — обрезает имя до первой точки, приводит к нижнему регистру
  • Поддерживает system.run[] независимо от значения параметра EnableRemoteCommands.

Поддержка system.run позволяет нам динамически формировать имя. К примеру, имя хоста у нас "mysrv.domain.local". Нужно добавить префикс к нему и получить "PREFIX mysrv.domain.local". И распространить на 100500 хостов.

Получить это можно такими настройками конфигурации:

# Hostname=
HostnameItem=system.run["echo PREFIX $HOSTNAME"]

Есть позволяет использовать один и тот же конфигурационный файл на разных хостах, получая нужное имя.

Теги

 

Похожие материалы