Когда мы настраиваем конфигурационный файл 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"]
Есть позволяет использовать один и тот же конфигурационный файл на разных хостах, получая нужное имя.