Zabbix Documentation 5.0

3.04.04.45.0 (current)| In development:5.2 (devel)| Unsupported:1.82.02.22.43.23.44.2Guidelines

User Tools

Site Tools


manual:config:items:userparameters

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
manual:config:items:userparameters [2014/12/15 13:44]
martins-v newline is not allowed in user parameters
manual:config:items:userparameters [2019/10/07 06:35]
127.0.0.1 external edit
Line 1: Line 1:
-==== - #4 User parameters ====+==== 4 User parameters ====
  
 === Overview === === Overview ===
Line 15: Line 15:
 Then, when [[item|configuring an item]], enter the key to reference the command from the user parameter you want executed. Then, when [[item|configuring an item]], enter the key to reference the command from the user parameter you want executed.
  
-User parameters are commands executed by Zabbix agent. Up to 512KB of data can be returned. ​**/bin/sh** is used as a command line interpreter under UNIX operating systems. This way you can enhance ​the functionality of Zabbix agents.+User parameters are commands executed by Zabbix agent. Up to 512KB of data can be returned ​before item preprocessing stepsNote, however, that the text value that can be eventually stored in database is limited to 64KB on MySQL (see info on other databases in the [[:​manual/​config/​notifications/​action/​operation/​remote_command#​overview|table]])
  
-See a [[manual:​config:​items:​userparameters:​extending_agent|step-by-step tutorial]] on making use of user parameters.+**/bin/sh** is used as command line interpreter under UNIX operating systems. User parameters obey the agent check timeout; if timeout is reached the forked user parameter process is terminated. 
 + 
 +See also: 
 + 
 +  * [[manual:​config:​items:​userparameters:​extending_agent|Step-by-step tutorial]] on making use of user parameters 
 +  * [[manual/​appendix/​command_execution|Command execution]]
  
 == Examples of simple user parameters == == Examples of simple user parameters ==
Line 29: Line 34:
 A more complex example: A more complex example:
  
-  UserParameter=mysql.ping,​mysqladmin -uroot ping|grep -c alive+  UserParameter=mysql.ping,​mysqladmin -uroot ping | grep -c alive
  
 The agent will return '​1',​ if MySQL server is alive, '​0'​ - otherwise. The agent will return '​1',​ if MySQL server is alive, '​0'​ - otherwise.
Line 43: Line 48:
 ^Parameter^Description^ ^Parameter^Description^
 |**Key**|Unique item key. The [*] defines that this key accepts parameters within the brackets.\\ Parameters are given when configuring the item.  | |**Key**|Unique item key. The [*] defines that this key accepts parameters within the brackets.\\ Parameters are given when configuring the item.  |
-|**Command**|Command to be executed to evaluate value of the key.\\ ​Use positional references $1…$9 to refer to the respective parameter in the item key.\\ Zabbix parses the parameters enclosed in [ ] of the item key and substitutes $1,...,$9 in the command accordingly.\\ $0 will be substituted by the original command (prior to expansion of $0,...,$9) to be run.  |+|**Command**|Command to be executed to evaluate value of the key.\\ ​//For flexible user parameters only//:\\ You may use positional references $1…$9 ​in the command ​to refer to the respective parameter in the item key.\\ Zabbix parses the parameters enclosed in [ ] of the item key and substitutes $1,...,$9 in the command accordingly.\\ $0 will be substituted by the original command (prior to expansion of $0,...,$9) to be run.\\ Positional references are interpreted regardless of whether they are enclosed between double (") or single (') quotes.\\ To use positional references unaltered, specify a double dollar sign - for example, awk '​{print $$2}'. In this case ''​$$2''​ will actually turn into ''​$2''​ when executing the command.  |
  
-<​note ​tip>To use positional references unaltered, specify double dollar sign - for example, awk '​{print $$2}'. In this case ''​$$2''​ will actually turn into ''​$2''​ when executing the command.\\ \\ Note that positional ​references with the $ sign are interpreted ​by Zabbix agent regardless of whether they are enclosed between double (") or single (') quotes.</​note>​+<​note ​important>Positional ​references with the $ sign are searched for and replaced ​by Zabbix agent only for flexible user parameters. For simple user parameters, such reference processing is skipped and, therefore, any $ sign quoting is not necessary.</​note>​
  
-<note important>​Unless ​[[manual:​appendix:​config:​zabbix_agentd|UnsafeUserParameters]] ​agent daemon configuration option is enabled, it is not allowed to pass flexible parameters containing these symbols: \ ' " ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @. Additionally,​ newline is not allowed either.</​note>​+<note important>​Certain symbols are not allowed in user parameters by default. See [[manual:​appendix:​config:​zabbix_agentd|UnsafeUserParameters]] ​documentation for a full list.</​note>​
  
 == Example 1 == == Example 1 ==
Line 86: Line 91:
 <note important>​A text (character, log or text type of information) item will not become unsupported in case of standard error output.</​note>​ <note important>​A text (character, log or text type of information) item will not become unsupported in case of standard error output.</​note>​
  
-User parameters that return text (character, log, text type of information) can return whitespace. In case of invalid result item will become unsupported.+User parameters that return text (character, log, text type of information) can return whitespace. In case of invalid result ​the item will become unsupported.