[comment]: # ({70a6015a-70a6015a})
# 5 Lietotāja parametri

[comment]: # ({/70a6015a-70a6015a})

[comment]: # ({a2e89be7-9a4b2756})
#### Pārskats

Dažkārt var būt nepieciešams palaist aģenta pārbaudi, kas nav iepriekš definēta Zabbix. Šeit noder lietotāja parametri.

Jūs varat uzrakstīt komandu, kas izgūst nepieciešamos datus, un iekļaut to lietotāja parametrā [aģenta konfigurācijas failā](/manual/appendix/config/zabbix_agentd) ('UserParameter' konfigurācijas parametrs).

Lietotāja parametram ir šāda sintakse:

    UserParameter=<key>,<command>

Kā redzat, lietotāja parametrs satur arī atslēgu. Atslēga būs nepieciešama, konfigurējot vienumu. Norādiet sev ērtu atslēgu, kuru būs viegli izmantot atsaucēm (tai jābūt unikālai konkrētā hostā).

Pārstartējiet aģentu vai izmantojiet aģenta [izpildlaika vadības](/manual/concepts/agent#runtime-control) opciju, lai jaunais parametrs tiktu ielādēts, piemēram:

    zabbix_agentd -R userparameter_reload

Pēc tam, [konfigurējot vienumu](/manual/config/items/item), ievadiet atslēgu, lai norādītu uz komandu no lietotāja parametra, kuru vēlaties izpildīt.

Lietotāja parametri ir komandas, ko izpilda Zabbix aģents.
Ņemiet vērā, ka pirms [vienuma vērtības pirmapstrādes](/manual/config/items/preprocessing) soļiem var tikt atgriezti līdz 16 MB datu.

UNIX operētājsistēmās kā komandrindas interpretētājs tiek izmantots **/bin/sh**.
Lietotāja parametri ievēro aģenta pārbaudes noildzi; ja noildze tiek sasniegta, atzarotais lietotāja parametra process tiek pārtraukts.

Skatiet arī:

-   [Soli pa solim
    pamācība](/manual/config/items/userparameters/extending_agent) par lietotāja parametru izmantošanu
-   [Komandu izpilde](/manual/appendix/command_execution)

[comment]: # ({/a2e89be7-9a4b2756})

[comment]: # ({53dfad45-53dfad45})
##### Vienkāršu lietotāja parametru piemēri

Vienkārša komanda:

    UserParameter=ping,echo 1

Aģents vienmēr atgriezīs '1' vienumam ar atslēgu 'ping'.

Sarežģītāks piemērs:

    UserParameter=mysql.ping,mysqladmin -uroot ping | grep -c alive

Aģents atgriezīs '1', ja MySQL serveris darbojas, pretējā gadījumā — '0'.

[comment]: # ({/53dfad45-53dfad45})

[comment]: # ({64b08883-e619711f})
#### Elastīgie lietotāja parametri

Elastīgie lietotāja parametri pieņem parametrus ar atslēgu. Tādējādi elastīgs lietotāja parametrs var kalpot par pamatu vairāku vienumu izveidei.

Elastīgo lietotāja parametru sintakse ir šāda:

    UserParameter=key[*],command

|Parameter|Description|
|--|--------|
|**Key**|Unikāla vienuma atslēga. \[\*\] nosaka, ka šī atslēga pieņem parametrus iekavās.<br>Parametri tiek norādīti, konfigurējot vienumu.|
|**Command**|Komanda, kas jāizpilda, lai noteiktu atslēgas vērtību.<br>*Tikai elastīgiem lietotāja parametriem*:<br>Komandā var izmantot pozicionālās atsauces $1…$9, lai norādītu uz attiecīgo parametru vienuma atslēgā.<br>Zabbix parsē vienuma atslēgas \[ \] ietvertos parametrus un attiecīgi aizstāj komandā $1,...,$9.<br>$0 tiks aizstāts ar sākotnējo komandu (pirms $0,...,$9 paplašināšanas), kas jāizpilda.<br>Pozicionālās atsauces tiek interpretētas neatkarīgi no tā, vai tās ir ietvertas dubultpēdiņās (") vai vienpēdiņās (').<br>Lai izmantotu pozicionālās atsauces nemainītā veidā, norādiet dubultu dolāra zīmi - piemēram, awk '{print $$2}'. Šajā gadījumā `$$2` izpildes laikā faktiski kļūs par `$2`.|

::: noteimportant
Pozicionālās atsauces ar $ zīmi tiek meklētas
un aizstātas tikai ar Zabbix aģents elastīgajiem lietotāja parametriem. Vienkāršiem lietotāja parametriem šāda atsauču apstrāde tiek izlaista un
tāpēc $ zīmes citēšana nav nepieciešama.
:::

::: noteimportant
Pēc noklusējuma noteiktas rakstzīmes lietotāja parametros nav atļautas.
Pilnu rakstzīmju sarakstu skatiet [UnsafeUserParameters](/manual/appendix/config/zabbix_agentd#unsafeuserparameters).
:::

[comment]: # ({/64b08883-e619711f})

[comment]: # ({5c6e8e3c-5c6e8e3c})
##### Piemērs 1

Kaut kas ļoti vienkāršs:

    UserParameter=ping[*],echo $1

Mēs varam definēt neierobežotu skaitu vienumu uzraudzībai, kuriem visiem ir formāts
ping\[kaut kas\].

-   ping\[0\] - vienmēr atgriezīs '0'
-   ping\[aaa\] - vienmēr atgriezīs 'aaa'

[comment]: # ({/5c6e8e3c-5c6e8e3c})

[comment]: # ({db2a6e16-db2a6e16})
##### Piemērs 2

Pievienosim vairāk jēgas!

    UserParameter=mysql.ping[*],mysqladmin -u$1 -p$2 ping | grep -c alive

Šo parametru var izmantot MySQL datubāzes pieejamības uzraudzībai. Mēs varam nodot lietotājvārdu un paroli:

    mysql.ping[zabbix,our_password]

[comment]: # ({/db2a6e16-db2a6e16})

[comment]: # ({dd3ac3fa-dd3ac3fa})
##### Piemērs 3

Cik rindu failā atbilst regulārai izteiksmei?

    UserParameter=wc[*],grep -c "$2" $1

Šo parametru var izmantot, lai aprēķinātu rindu skaitu failā.

    wc[/etc/passwd,root]
    wc[/etc/services,zabbix]

[comment]: # ({/dd3ac3fa-dd3ac3fa})

[comment]: # ({f7cfa576-a5d86054})
#### Komandas rezultāts

Komandas atgrieztā vērtība ir standarta izvade kopā ar standarta kļūdu, ko ģenerē komanda.

::: noteimportant
Vienums, kas atgriež tekstu (rakstzīmju, žurnāla vai teksta tipa informāciju), nekļūs neatbalstīts standarta kļūdas izvades gadījumā.
:::

Atgrieztās vērtības apjoms ir ierobežots līdz 16 MB (ieskaitot beigu atstarpes rakstzīmes, kas tiek saīsinātas); [datubāzes ierobežojumi](/manual/config/items/item#text-data-limits) arī ir spēkā.

Lietotāja parametri, kas atgriež tekstu (rakstzīmju, žurnāla vai teksta tipa informāciju), var atgriezt arī atstarpi.
Nederīga rezultāta gadījumā vienums kļūs neatbalstīts.

[comment]: # ({/f7cfa576-a5d86054})
