La API de Zabbix admite los siguientes tipos de datos como entrada:
Tipo | Descripción |
---|---|
ID | Un identificador único utilizado para hacer referencia a una entidad. |
booleano | Un valor booleano (ya sea verdadero o falso ). |
flag | Un valor que se considera "verdadero" si se pasa y no es igual a "nulo"; de lo contrario, el valor se considera "falso". |
entero | Un número entero. |
float | Un número de punto flotante. |
cadena | Una cadena de texto. |
text | Una cadena de texto más larga. |
marca de tiempo | Una marca de tiempo de Unix. |
matriz | Una secuencia ordenada de valores (una matriz simple). |
objeto | Una matriz asociativa. |
consulta | Un valor que define los datos que se devolverán. El valor se puede definir como una matriz de nombres de propiedades (para devolver solo propiedades específicas), o como uno de los valores predefinidos:extend - devuelve todas las propiedades del objeto;count - devuelve el número de registros recuperados, admitidos sólo por ciertas subselecciones. |
La API de Zabbix siempre devuelve valores como cadenas o solo matrices.
Algunas de las propiedades del objeto están marcadas con etiquetas cortas para describir su comportamiento. Se utilizan las siguientes etiquetas:
type
está configurado en "Verificación simple", "Verificación externa", "Agente SSH", "Agente TELNET" o "Agente HTTP");operationtype
está configurado en "script global" y opcommand_hst
no está configurado).Para operaciones de actualización, una propiedad se considera "establecida" cuando se configura durante la operación de actualización.
Las propiedades que no están marcadas con etiquetas son opcionales.
Algunos de los parámetros de operación están marcados con etiquetas cortas para describir su comportamiento durante la operación. Se utilizan las siguientes etiquetas:
operating_mode
del objeto Proxy está configurado en "proxy pasivo");Los parámetros que no están marcados con etiquetas son opcionales.
El valor de ID reservado "0" se puede utilizar para filtrar elementos y eliminar objetos referenciados. Por ejemplo, para eliminar un proxy al que se hace referencia de un equipo, proxyid debe establecerse en 0 ("proxyid": "0") o en el filtro de equipos monitoreados por la opción de servidor proxyids deben establecerse en 0 ("proxyids": "0").
Los siguientes parámetros son compatibles con todos los métodos "get":
Parámetro | Tipo | Descripción |
---|---|---|
countOutput | booleano | Devuelve el número de registros en el resultado en lugar de los datos reales. |
editable | booleano | Si se establece en true , devuelve solo los objetos para los que el usuario tiene permisos de escritura.Valor predeterminado: false . |
excludeSearch | boolean | Devuelve resultados que no coinciden con los criterios dados en el parámetro search . |
filter | objeto | Devuelve solo aquellos resultados que coinciden exactamente con el filtro dado. Acepta un objeto, donde las claves son nombres de propiedades y los valores son un valor único o una matriz de valores con los que comparar. No admite propiedades de texto tipo de datos. |
limit | entero | Limita el número de registros devueltos. |
output | consulta | Propiedades del objeto que se devolverán. Valor predeterminado: extender . |
preservekeys | booleano | Utilice ID como claves en la matriz resultante. |
search | objeto | Devuelve resultados que coinciden con el patrón dado (no distingue entre mayúsculas y minúsculas). Acepta un objeto, donde las claves son nombres de propiedades y los valores son cadenas para buscar. Si no se proporcionan opciones adicionales, se realizará una búsqueda LIKE "%…%" .Solo admite propiedades de cadena y texto tipo de datos. |
searchByAny | booleano | Si se establece en "verdadero", se devuelven resultados que coinciden con cualquiera de los criterios dados en el parámetro "filtro" o "búsqueda" en lugar de todos ellos. Predeterminado: "falso". |
searchWildcardsEnabled | booleano | Si se establece en true , se habilita el uso de "*" como carácter comodín en el parámetro search .Predeterminado: false . |
sortfield | cadena/matriz | Ordena el resultado según las propiedades dadas. Consulte la descripción del método de obtención de una API específica para obtener una lista de propiedades que se pueden usar para ordenar. Las macros no se expanden antes de ordenarlas. Si no se especifica ningún valor, los datos se devolverán sin ordenar. |
sortorder | cadena/matriz | Orden de clasificación. Si se pasa una matriz, cada valor coincidirá con la propiedad correspondiente dada en el parámetro sortfield .Valores posibles: ASC - (predeterminado) ascendente;DESC - descendente. |
startSearch | booleano | El parámetro search comparará el comienzo de los campos, es decir, realizará una búsqueda LIKE "…%" en su lugar.Se ignora si searchWildcardsEnabled está configurado en true . |
¿Tiene el usuario permiso para escribir en equipos cuyos nombres comiencen por "MySQL" o "Linux"?
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"countOutput": true,
"search": {
"host": ["MySQL", "Linux"]
},
"editable": true,
"startSearch": true,
"searchByAny": true
},
"id": 1
}
Respuesta:
Resultado cero significa que no hay equipos con permisos de lectura/escritura.
Cuente el número de equipos cuyos nombres no contienen la subcadena "ubuntu"
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"countOutput": true,
"search": {
"host": "ubuntu"
},
"excludeSearch": true
},
"id": 1
}
Respuesta:
Encuentre equipos cuyos nombres contengan la palabra "server" y tenga puertos de interfaz "10050" o "10071". Ordene el resultado por nombre de equipo en orden descendente y limítelo a 5 equipos.
{
"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
},
"id": 1
}
Respuesta:
{
"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
}
Si agrega el parámetro "preservekeys" a la solicitud anterior, el resultado se devuelve como una matriz asociativa, donde las claves son la identificación de los objetos.
{
"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
},
"id": 1
}
Respuesta:
{
"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
}