A API do Zabbix suporta os seguintes tipos de dados como entrada:
Tipo | Descrição |
---|---|
boolean | Um valor booleano, aceita tanto true ou false . |
flag | O valor é considerado true se for passado e não igual a null e false caso contrário. |
integer | Um número inteiro. |
float | Um número de ponto flutuante. |
string | Uma string de texto. |
text | Uma string de texto mais longa. |
timestamp | Um timestamp Unix. |
array | Uma sequência ordenada de valores, ou seja, uma matriz simples. |
object | Uma array associativa. |
query | Um valor que define quais dados devem ser retornados. Pode ser definido como uma matriz de nomes de propriedades para retornar apenas propriedades específicas ou como um dos valores predefinidos: extend - retorna todas as propriedades do objeto;count - retorna o número de registros recuperados, suportados apenas por algumas subseleções. |
A API do Zabbix sempre retorna valores apenas como strings ou arrays.
Algumas das propriedades dos objetos são marcadas com rótulos curtos para descrever
Seu comportamento. Os seguintes rótulos são usados:
Some of the operation parameters are marked with short labels to describe their behavior for the operation. The following labels are used:
status
of Proxy object is set to "passive proxy");Parameters that are not marked with labels are optional.
O valor de ID reservado "0" pode ser usado para filtrar elementos e remover objetos referenciados. Por exemplo, para remover um proxy referenciado de um host, proxy_hostid deve ser definido como 0 ("proxy_hostid": "0") ou para filtrar hosts monitorados pela opção do servidor proxyids deve ser definido como 0 ("proxyids": "0").
Os seguintes parâmetros são suportados por todos os métodos get
:
Parâmetro | Tipo | Descrição |
---|---|---|
countOutput | boolean | Retorna o número de registros no resultado em vez dos dados reais. |
editable | boolean | Se definido como true , retornará apenas objetos para os quais o usuário tem permissão de gravação.Default: false . |
excludeSearch | boolean | Retorna resultados que não correspondem aos critérios fornecidos no parâmetro search . |
filter | object | Retorne apenas os resultados que correspondem exatamente ao filtro fornecido. Aceita uma matriz, em que as chaves são nomes de propriedades e os valores são um único valor ou uma matriz de valores para correspondência. Não funciona para campos text . |
limit | integer | Limite o número de registros retornados. |
output | query | Propriedades do objeto a serem retornadas. Default: extend . |
preservekeys | boolean | Use IDs como chaves na matriz resultante. |
search | object | Retornar resultados que correspondam à pesquisa de wildcard fornecida (case-insensitive). Aceita uma matriz, em que as chaves são nomes de propriedades e os valores são strings a serem pesquisadas. Se nenhuma opção adicional for fornecida, isso executará uma pesquisa LIKE "%…%" .Funciona apenas para campos string e text . |
searchByAny | boolean | Se definido como true retorna resultados que correspondem a qualquer um dos critérios fornecidos no parâmetro filter ou search em vez de todos eles.Default: false . |
searchWildcardsEnabled | boolean | Se definido como true , habilita o uso de "*" como caractere curinga no parâmetro search .Default: false . |
sortfield | string/array | Classifique o resultado pelas propriedades fornecidas. Consulte uma descrição específica do método get da API para obter uma lista de propriedades que podem ser usadas para classificação. As macros não são expandidas antes da classificação. Se nenhum valor for especificado, os dados serão retornados sem classificação. |
sortorder | string/array | Ordem de classificação. Se uma matriz for passada, cada valor será correspondido à propriedade correspondente fornecida no parâmetro sortfield .Os valores possíveis são: ASC - (default) ascendente;DESC - descendente. |
startSearch | boolean | O parâmetro search irá comparar o início dos campos, ou seja, realizará uma pesquisa LIKE "…%" .Ignorado se searchWildcardsEnabled estiver definido como true . |
O usuário tem permissão para gravar em hosts cujos nomes começam com "MySQL" ou "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:
Resultado zero significa que não há hosts com permissões de leitura/gravação.
Conte o número de hosts cujos nomes não contêm a substring "ubuntu"
Request:
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"countOutput": true,
"search": {
"host": "ubuntu"
},
"excludeSearch": true
},
"auth": "766b71ee543230a1182ca5c44d353e36",
"id": 1
}
Response:
Encontre hosts cujo nome contenha a palavra "servidor" e tenham portas de interface "10050" ou "10071". Classifique o resultado por nome de host em ordem decrescente e limite-o a 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
}
Se você adicionar o parâmetro "preservekeys" à requisição anterior, o resultado é retornado como um array associativo, onde as chaves são o id dos objetos.
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
}