The Zabbix API supports the following data types:
Type | Description |
---|---|
boolean | A boolean value, accepts either true or false . |
flag | The value is considered to be true if it is passed and not equal to null and false otherwise. |
integer | A whole number. |
float | A floating point number. |
string | A text string. |
text | A longer text string. |
timestamp | A Unix timestamp. |
array | An ordered sequence of values, that is, a plain array. |
object | An associative array. |
query | A value which defines, what data should be returned. Can be defined as an array of property names to return only specific properties, or as one of the predefined values: extend - returns all object properties; count - returns the number of retrieved records, supported only by certain subselects. |
Some of the objects properties are marked with short labels to describe their behavior. The following labels are used:
Reserved ID value "0" can be used to filter elements and to remove referenced objects. For example, to remove a referenced proxy from a host, proxy_hostid should be set to 0 ("proxy_hostid": "0") or to filter hosts monitored by server option proxyids should be set to 0 ("proxyids": "0").
The following parameters are supported by all get
methods:
Parameter | Type | Description |
---|---|---|
countOutput | boolean | Return the number of records in the result instead of the actual data. |
editable | boolean | If set to true return only objects that the user has write permissions to. Default: false . |
excludeSearch | boolean | Return results that do not match the criteria given in the search parameter. |
filter | object | Return only those results that exactly match the given filter. Accepts an array, where the keys are property names, and the values are either a single value or an array of values to match against. Doesn't work for text fields. |
limit | integer | Limit the number of records returned. |
output | query | Object properties to be returned. Default: extend . |
preservekeys | boolean | Use IDs as keys in the resulting array. |
search | object | Return results that match the given wildcard search (case-insensitive). Accepts an array, where the keys are property names, and the values are strings to search for. If no additional options are given, this will perform a LIKE “%…%” search.Works only for string and text fields. |
searchByAny | boolean | If set to true return results that match any of the criteria given in the filter or search parameter instead of all of them. Default: false . |
searchWildcardsEnabled | boolean | If set to true enables the use of “*” as a wildcard character in the search parameter. Default: false . |
sortfield | string/array | Sort the result by the given properties. Refer to a specific API get method description for a list of properties that can be used for sorting. Macros are not expanded before sorting. If no value is specified, data will be returned unsorted. |
sortorder | string/array | Order of sorting. If an array is passed, each value will be matched to the corresponding property given in the sortfield parameter.Possible values are: ASC - (default) ascending; DESC - descending. |
startSearch | boolean | The search parameter will compare the beginning of fields, that is, perform a LIKE “…%” search instead.Ignored if searchWildcardsEnabled is set to true . |
Does the user have permission to write to hosts whose names begin with “MySQL” or “Linux” ?
Request:
{ "jsonrpc": "2.0", "method": "host.get", "params": { "countOutput": true, "search": { "host": ["MySQL", "Linux"] }, "editable": true, "startSearch": true, "searchByAny": true }, "auth": "766b71ee543230a1182ca5c44d353e36", "id": 1 }
Response:
{ "jsonrpc": "2.0", "result": "0", "id": 1 }
Count the number of hosts whose names do not contain the substring “ubuntu”
Request:
{ "jsonrpc": "2.0", "method": "host.get", "params": { "countOutput": true, "search": { "host": "ubuntu" }, "excludeSearch": true }, "auth": "766b71ee543230a1182ca5c44d353e36", "id": 1 }
Response:
{ "jsonrpc": "2.0", "result": "44", "id": 1 }
Find hosts whose name contains word “server” and have interface ports “10050” or “10071”. Sort the result by host name in descending order and limit it to 5 hosts.
Request:
{ "jsonrpc": "2.0", "method": "host.get", "params": { "output": ["hostid", "host"], "selectInterfaces": ["port"], "filter": { "port": ["10050", "10071"] }, "search": { "host": "*server*" }, "searchWildcardsEnabled": true, "searchByAny": true, "sortfield": "host", "sortorder": "DESC", "limit": 5 }, "auth": "766b71ee543230a1182ca5c44d353e36", "id": 1 }
Response:
{ "jsonrpc": "2.0", "result": [ { "hostid": "50003", "host": "WebServer-Tomcat02", "interfaces": [ { "port": "10071" } ] }, { "hostid": "50005", "host": "WebServer-Tomcat01", "interfaces": [ { "port": "10071" } ] }, { "hostid": "50004", "host": "WebServer-Nginx", "interfaces": [ { "port": "10071" } ] }, { "hostid": "99032", "host": "MySQL server 01", "interfaces": [ { "port": "10050" } ] }, { "hostid": "99061", "host": "Linux server 01", "interfaces": [ { "port": "10050" } ] } ], "id": 1 }
If you add the parameter “preservekeys” to the previous request, the result is returned as an associative array, where the keys are the id of the objects.
Request:
{ "jsonrpc": "2.0", "method": "host.get", "params": { "output": ["hostid", "host"], "selectInterfaces": ["port"], "filter": { "port": ["10050", "10071"] }, "search": { "host": "*server*" }, "searchWildcardsEnabled": true, "searchByAny": true, "sortfield": "host", "sortorder": "DESC", "limit": 5, "preservekeys": true }, "auth": "766b71ee543230a1182ca5c44d353e36", "id": 1 }
Response:
{ "jsonrpc": "2.0", "result": { "50003": { "hostid": "50003", "host": "WebServer-Tomcat02", "interfaces": [ { "port": "10071" } ] }, "50005": { "hostid": "50005", "host": "WebServer-Tomcat01", "interfaces": [ { "port": "10071" } ] }, "50004": { "hostid": "50004", "host": "WebServer-Nginx", "interfaces": [ { "port": "10071" } ] }, "99032": { "hostid": "99032", "host": "MySQL server 01", "interfaces": [ { "port": "10050" } ] }, "99061": { "hostid": "99061", "host": "Linux server 01", "interfaces": [ { "port": "10050" } ] } }, "id": 1 }