Променљиве окружења омогућавају конфигурисање Zabbix компоненти без хардкодирања вредности у конфигурационим датотекама. Ово олакшава управљање конфигурацијама у динамичким окружењима, као што је Docker, где се променљиве могу прослеђивати током извршавања програма како би се прилагодиле различитим подешавањима.
У најједноставнијем случају, постављањем вредности параметра конфигурације Zabbix сервера DebugLevel на променљиву окружења, можете је затим користити за конфигурисање сервера при покретању:
# Конфигурациона датотека Zabbix сервера:
DebugLevel=${NEW_DEBUG_LEVEL}
# Покретање Zabbix сервера:
NEW_DEBUG_LEVEL=5 /usr/sbin/zabbix_server
Променљиве окружења подржавају следеће Zabbix компоненте:
userparameter_reload
runtime команда не подржава поновно учитавање променљивих окружења. Током поновног учитавања, променљиве се игноришу и поново се учитавају само параметри са регуларним вредностима./proc/<PID>/environ
).Променљиве окружења морају користити следећу синтаксу: ${alphanumerics/underscores}.
Назив променљиве може да садржи само слова (a-z, A-Z), подвлаке (_) и цифре (0-9) и не сме да почиње цифром.
Променљиве које не одговарају потребној синтакси или су комбиноване са регуларном вредношћу биће третиране као регуларне вредности, што може довести до грешака.
Исправна синтакса променљиве:
Нетачна синтакса променљиве:
У оперативном систему Windows, имена променљивих окружења нису осетљива на велика и мала слова.
Следећи примери показују како конфигурисати и користити променљиве окружења са Zabbix компонентама.
1. Подесите променљиве окружења у конфигурационој датотеци агента:
2. Тестирајте конфигурациону датотеку:
ZBX_HOSTNAME="Нови Zabbix агент" ServerActive=127.0.0.1 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf --test-config
3. Покрените агента са променљивим окружења:
ZBX_HOSTNAME="New Zabbix agent" ServerActive=127.0.0.1 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
Када користите runtime commands (нпр., за повећање нивоа логовања агента), морају бити наведене све претходно коришћене променљиве окружења:
ZBX_HOSTNAME="New Zabbix agent" ServerActive=127.0.0.1 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf -R log_level_increase
То је зато што агент користи своју конфигурациону датотеку за извршавање runtime команди; ако се променљиве окружења изоставе, користиће се подразумеване вредности конфигурационих параметара.
Алтернативно, након подешавања променљивих окружења у конфигурационој датотеци агента, можете их учинити доступним процесима (нпр. коришћењем команде export
). Ово смањује ризик од неочекиваног понашања због недостајућих или неправилно подешених променљивих.
export ZBX_HOSTNAME="Нови Zabbix агент"
export ServerActive=127.0.0.1
/usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf --test-config
/usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
/usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf -R log_level_increase
Ако креирате и конфигуришете сопствену прилагођену слику за Zabbix компоненте (нпр. Zabbix агент), можете дефинисати параметре конфигурације користећи променљиве окружења, а затим покренути контејнер са тим променљивим.
1. Приликом припреме слике, подесите променљиве окружења у конфигурационој датотеци агента:
Hostname=${ZBX_HOSTNAME}
BufferSize=${BUFSZ}
ListenPort=${LISTENPORT}
UserParameter=${_UsrPar01}
UserParameter=${_UsrPar02}
2. Након изградње слике контејнера, покрените контејнер агента (нпр. Docker) са променљивим окружења:
docker run --name my-zabbix-agent -e ZBX_HOSTNAME="new-hostname" -e BUFSZ=1000 -e LISTENPORT=20050 -e _UsrPar01="key1,ls" -e _UsrPar02="key2,pwd" --init -d my-zabbix-agent:latest
3. Када користите runtime команде (нпр., да бисте повећали ниво логовања агента), приступите контејнерској љусци и извршите runtime команду:
Runtime команда userparameter_reload
не подржава поновно учитавање променљивих окружења. Током поновног учитавања, променљиве се игноришу и поново се учитавају само параметри са регуларним вредностима.