A API do Zabbix suporta os seguintes tipos de dados como entrada:
Tipo | Descrição |
---|---|
boolean | Um valor booleano, aceita apenas true ou false . |
flag | O valor é considerado true se for passado e não for igual a null . Caso contrário, é considerado false . |
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 Unix timestamp. |
array | Uma sequência ordenada de valores, ou seja, um array simples. |
object | Um array associativo. |
query | Um valor que define quais dados devem ser retornados. Pode ser definido como um array 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, suportado apenas por certos subselecionados. |
A API do Zabbix sempre retorna valores como strings ou apenas arrays.
Algumas das propriedades dos objetos são marcadas com rótulos curtos para descrever
Seu comportamento. Os seguintes rótulos são usados:
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âmetero | Tipo | Descrição |
---|---|---|
countOutput | boolean | Retorna o número de registros no resultado em vez dos dados reais. |
editable | boolean | Se definido como true , retorna apenas objetos para os quais o usuário tem permissões de escrita.Padrão: false . |
excludeSearch | boolean | Retorna resultados que não correspondem aos critérios fornecidos no parâmetro search . |
filter | object | Retorna apenas os resultados que correspondem exatamente ao filtro fornecido. Aceita uma matriz, onde 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 suporta campos do tipo de dado text data type. |
limit | integer | Limita o número de registros retornados. |
output | query | Propriedades do objeto a serem retornadas. Padrão: extend . |
preservekeys | boolean | Usa IDs como chaves na matriz resultante. |
search | object | Retorna resultados que correspondem ao padrão fornecido (case-insensitive). Aceita uma matriz, onde as chaves são nomes de propriedades e os valores são strings para procurar. Se nenhuma opção adicional for fornecida, isso executará uma busca LIKE "%…%" .Suporta apenas campos do tipo de dado string e text data type. |
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.Padrão: false . |
searchWildcardsEnabled | boolean | Se definido como true , habilita o uso de "*" como caractere curinga no parâmetro search .Padrão: false . |
sortfield | string/array | Ordena o resultado pelas propriedades fornecidas. Consulte a descrição do método específico da API para uma lista de propriedades que podem ser usadas para classificação. Macros não são expandidas antes da classificação. Se nenhum valor for especificado, os dados serão retornados sem ordenação. |
sortorder | string/array | Ordem de classificação. Se uma matriz for passada, cada valor será correspondente à propriedade fornecida no parâmetrosortfield .Os valores possíveis são: ASC - (padrão) ascendente;DESC - descendente. |
startSearch | boolean | O parâmetro search comparará o início dos campos, ou seja, realizará uma busca LIKE "…%" em vez disso.Ignorado caso o 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
}