10 Vides mainīgie

Pārskats

Vides mainīgie ļauj konfigurēt Zabbix komponentus, neiekodējot vērtības konfigurācijas failos. Tas atvieglo konfigurāciju pārvaldību dinamiskās vidēs, piemēram, Docker, kur mainīgos var nodot izpildes laikā, lai pielāgotos dažādām konfigurācijām.

Vienkāršākajā gadījumā, iestatot Zabbix servera DebugLevel konfigurācijas parametra vērtību uz vides mainīgo, to pēc tam var izmantot servera konfigurēšanai palaišanas laikā:

# Zabbix servera konfigurācijas fails:
DebugLevel=${NEW_DEBUG_LEVEL}

# Zabbix servera palaišana:
NEW_DEBUG_LEVEL=5 /usr/sbin/zabbix_server

Vides mainīgos atbalsta šādi Zabbix komponenti:

Svarīgas piezīmes

  • Ja konfigurācijas parametrs ir iestatīts uz vides mainīgo, kas nav norādīts, palaižot komponentu, tiek izmantota parametra noklusējuma vērtība.
  • Izmantojot izpildlaika komandas (piemēram, lai palielinātu aģents žurnāla līmeni), ir jānorāda visi iepriekš izmantotie vides mainīgie. Tas ir tāpēc, ka Zabbix komponenti izmanto savu konfigurācijas failu, lai izpildītu izpildlaika komandas; ja vides mainīgie nav norādīti, tiks izmantotas konfigurācijas parametru noklusējuma vērtības. Skatiet Piemērus.
  • userparameter_reload izpildlaika komanda neatbalsta vides mainīgo pārlādēšanu. Pārlādes laikā mainīgie tiek ignorēti, un tiek pārlādēti tikai parametri ar parastām vērtībām.
  • Procesa pašreizējie vides mainīgie, kas tika izmantoti konfigurācijas failos, pēc Zabbix komponenta palaišanas tiek notīrīti. Tas nodrošina, ka bērnprocesi (piemēram, Zabbix izpildītie attālinātie skripti) nevar piekļūt šiem mainīgajiem. Tomēr ņemiet vērā, ka procesa sākotnējos mainīgos joprojām var iegūt (piemēram, izmantojot failu /proc/<PID>/environ).

Sintakse

Vides mainīgajiem jāizmanto šāda sintakse: ${alphanumerics/underscores}.

Mainīgā nosaukums drīkst ietvert tikai burtus (a-z, A-Z), pasvītrojuma zīmes (_), un ciparus (0-9), un tas nedrīkst sākties ar ciparu.

Mainīgie, kas neatbilst prasītajai sintaksei vai ir apvienoti ar parastu vērtību, tiks apstrādāti kā parastas vērtības, kas var izraisīt kļūdas.

Pareiza mainīgo sintakse:

DebugLevel=${NEW_DEBUG_LEVEL}
Hostname=${ZBX_HOSTNAME}
LogFile=${LogFile_001}

Nepareiza mainīgo sintakse:

DebugLevel=${5_DebugLevel}
Hostname=${ZBX.HOSTNAME 1}
LogFile=/${HOME}/zabbix/zabbix_server.log

Sistēmā Windows vides mainīgo nosaukumos netiek ņemts vērā burtu reģistrs.

Piemēri

Tālāk sniegtie piemēri parāda, kā konfigurēt un izmantot vides mainīgos ar Zabbix komponentiem.

Piemērs 1: Zabbix aģenta konfigurēšana un testēšana

1. Iestatiet vides mainīgos aģenta konfigurācijas failā:

Hostname=${ZBX_HOSTNAME}
ServerActive=${ServerActive}

2. Pārbaudiet konfigurācijas failu:

ZBX_HOSTNAME="New Zabbix agent" ServerActive=127.0.0.1 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf --test-config

3. Palaidiet aģentu ar vides mainīgajiem:

ZBX_HOSTNAME="New Zabbix agent" ServerActive=127.0.0.1 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf

Izmantojot izpildlaika komandas (piemēram, lai palielinātu aģenta žurnāla līmeni), ir jānorāda visi iepriekš izmantotie vides mainīgie:

ZBX_HOSTNAME="New Zabbix agent" ServerActive=127.0.0.1 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf -R log_level_increase

Tas ir tāpēc, ka aģents izmanto savu konfigurācijas failu, lai izpildītu izpildlaika komandas; ja vides mainīgie netiek norādīti, tiks izmantotas konfigurācijas parametru noklusējuma vērtības.

Alternatīvi, pēc vides mainīgo iestatīšanas aģenta konfigurācijas failā, varat padarīt tos pieejamus procesiem (piemēram, izmantojot komandu export). Tas samazina neparedzētas darbības risku trūkstošu vai nepareizi iestatītu mainīgo dēļ.

export ZBX_HOSTNAME="New Zabbix agent"
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
Piemērs 2: Zabbix aģenta konfigurēšana konteineram

Ja veidojat un konfigurējat savu pielāgoto attēlu Zabbix komponentiem (piemēram, Zabbix aģentam), varat definēt konfigurācijas parametrus, izmantojot vides mainīgos, un pēc tam palaist konteineru ar šiem mainīgajiem.

1. Sagatavojot attēlu, iestatiet vides mainīgos aģenta konfigurācijas failā:

Hostname=${ZBX_HOSTNAME}
BufferSize=${BUFSZ}
ListenPort=${LISTENPORT}
UserParameter=${_UsrPar01}
UserParameter=${_UsrPar02}

2. Pēc konteinera attēla izveides palaidiet aģenta konteineru (piemēram, Docker) ar vides mainīgajiem:

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. Izmantojot izpildlaika komandas (piemēram, lai palielinātu aģenta žurnāla līmeni), piekļūstiet konteinera čaulai un izpildiet izpildlaika komandu:

docker exec -it <containerid> sh
/usr/sbin/zabbix_agentd -R log_level_increase

Izpildlaika komanda userparameter_reload neatbalsta vides mainīgo pārlādēšanu. Pārlādes laikā mainīgie tiek ignorēti, un tiek pārlādēti tikai parametri ar parastām vērtībām.