Objectifs
Méthode POST de type READ qui permet de récupérer des données de supervision des clusters et éventuellement de leurs checks, comme sur l'Interface de Visualisation,
- Filtrées ( optionnel )
- Triées
- Rangées :
- En arbres ( hôtes/clusters => checks )
- Tous au même niveau
Paramètres
Cet appel utilise les 4 paramètres suivants :
- filterX
- Pour la propriété type, le fait d'utiliser des valeurs différentes de cluster et check_cluster est interdit sur cette route.
- sort
- output_format
- ouput_field
Voir la page V2 - Les paramètres des API du broker-module-livedata , pour leur description complète.
Réponse
Codes de retour
| Codes de retour | Explications |
|---|---|
| 200 | OK |
| 400 | Paramètre invalide |
| 401 | Accès nécessite une authentification ou un Token valide. |
| 403 | Authentification de l'utilisateur OK , mais droits non suffisant. |
| 500 | L'appel est valide, mais un problème d'exécution est rencontré. |
Retour du code 200
Les propriétés retournées doivent être choisies avec l'option output_field
Mais les propriétés suivantes seront au minimum automatiquement retournées :
- nb_element
- type ( si le paramètre output_format vaut elements_on_same_level )
- father_uuid
- father_name
- par check :
- check_uuid
- check_name
Voir la page V2 - Les propriétés présentes dans le retour 200 des API du broker-module-livedata , pour la description complète de toutes les propriétés pouvant être renvoyée.
Suivant le paramètre output_format ( checks_attached_to_father / elements_on_same_level )
- ( présentation du format de retour ci-dessus, mais se référer à l'exemple pour le format exact )
checks_attached_to_father:
- request_statistics :
- ...
- elements_found :
- clusters :
- cluster 1:
- father_uuid : text
- father_name : text
- ...
- checks :
- check_uuid1 : text, check_name1 : text, ...
- check_uuid2: text, check_name2 : text, ...
- ...
- ...
- cluster 1:
- clusters :
elements_on_same_level :
- request_statistics :
- ...
- elements_found :
- nb_element: X
- elem1:
- type: cluster
- father_name: text
- father_uuid : text
- ...
- elem2:
- type: check
- check_uuid : text
- check_name: text
- father_name : text
- father_uiid : text
- ...
- elem3:
- type: check
- check_uuid : text
- check_name: text
- father_name : text
- father_uiid : text
- ...
- ...
curl -s -S -H 'x-api-token: XYZ' \ -d "output_format=checks_attached_to_father" \ http://broker-module-livedata:50100/api/v2/clusters
curl -s -S -H 'x-api-token: XYZ' \ -d "output_format=elements_on_same_level" \ http://broker-module-livedata:50100/api/v2/clusters
Exemple de sortie attendue :
{
"request_statistics": {
"nb_elements_total": 9,
"nb_clusters_total": 1,
"nb_elements_filtered": 2,
"nb_clusters_filtered": 1
},
"elements_found": {
"clusters": [
{
"father_name": "datacenter bdx",
"father_uuid": "d6921ee8ba1511eba36c0800277faebe",
"checks": [
{
"check_name": "System Uptime",
"check_uuid": "d6921ee8ba1511eba36c0800277faebe-e6daad4cba1511eb95980800277faebe"
}
]
}
],
"hosts": []
}
}
Exemple de sortie attendue :
{
"request_statistics": {
"nb_elements_total": 9,
"nb_clusters_total": 1,
"nb_elements_filtered": 2,
"nb_clusters_filtered": 1
},
"elements_found": [
{
"father_name": "datacenter bdx",
"father_uuid": "d6921ee8ba1511eba36c0800277faebe",
"type": "cluster"
},
{
"check_name": "System Uptime",
"type": "check_cluster",
"father_name": "datacenter bdx",
"father_uuid": "d6921ee8ba1511eba36c0800277faebe",
"check_uuid": "d6921ee8ba1511eba36c0800277faebe-e6daad4cba1511eb95980800277faebe"
}
]
}
Retour du code 400
Paramètres POST incorrects
Paramètre inconnu
$ curl -s -S -H "x-api-token: XYZ" \ -d "parametre_inconnu=is_status_:true" \ http://broker-module-livedata:50100/api/v2/clusters ERROR 400: POST parameter [ parametre_inconnu ] is unknown
ERROR 400: POST parameter [ parametre_inconnu ] is unknown
Messages d'erreurs des filtres ( filterX )
( voir la page V2 - Les paramètres des API du broker-module-livedata )
Filtre inexistant
$ curl -s -S -H "x-api-token: XYZ" \ -d "filter01=is_status_:true" \ http://broker-module-livedata:50100/api/v2/clusters ERROR 400: filtering[0]: invalid field name [ is_status_ ]
ERROR 400: filtering[0]: invalid field name [ is_status_ ]
Filtre incomplet
$ curl -s -S -H "x-api-token: XYZ" \ -d "filter0=next_check" \ http://broker-module-livedata:50100/api/v2/clusters ERROR 400: filtering[0]: missing value for field [ next_check ]
ERROR 400: filtering[0]: missing value for field [ next_check ]
Filtre incorrect
Valeur incorrecte pour ce type de filtre
$ curl -s -S -H "x-api-token: XYZ" \ -d "filter0=status:9" \ http://broker-module-livedata:50100/api/v2/clusters ERROR 400: filtering[0]: field [ status ] => wrong value ['9']
ERROR 400: filtering[0]: field [ status ] => wrong value ['9']
Opérateur incorrect
$ curl -s -S -H "x-api-token: XYZ" \ -d "filter0=next_check:avant" \ http://broker-module-livedata:50100/api/v2/clusters
ERROR 400: filtering[0]: field [ next_check ] unknown date constraint [ avant ]
Argument incorrect
$ curl -s -S -H "x-api-token: XYZ" \ -d "filter0=next_check:in-less-than|hier" \ http://broker-module-livedata:50100/api/v2/clusters ERROR 400: filtering[0]: field [ next_check ] => [ in-less-than ] => invalid literal for int() with base 10: 'hier'
ERROR 400: filtering[0]: field [ next_check ] => [ in-less-than ] => invalid literal for int() with base 10: 'hier'
Messages d'erreurs liés aux paramètres de tri ( sort )
( voir la page V2 - Les paramètres des API du broker-module-livedata )
Propriété inconnu
$ curl -s -S -H "x-api-token: XYZ" \ -d "sort=host" \ http://broker-module-livedata:50100/api/v2/clusters ERROR 400: sort: invalid field name [ host ]
ERROR 400: sort: invalid field name [ host ]
Ordre de tri incorrect
$ curl -s -S -H "x-api-token: XYZ" \ -d "sort=father_name:big" \ http://broker-module-livedata:50100/api/v2/clusters ERROR 400: sort: invalid sort direction [ big ] for field [ father_name ]
ERROR 400: sort: invalid sort direction [ big ] for field [ father_name ]
Messages d'erreurs liés au paramètre de format du résultat ( output_format )
( voir la page V2 - Les paramètres des API du broker-module-livedata )
Valeur incorrecte
$ curl -s -S -H "x-api-token: XYZ" \ -d "output_format=vrai" \ http://broker-module-livedata:50100/api/v2/clusters ERROR 400: output_format: invalid value [ vrai ]
ERROR 400: output_format: invalid value [ vrai ]
Messages d'erreurs lors du paramétrage des propriétés présentes dans la sortie ( output_field )
( voir la page V2 - Les paramètres des API du broker-module-livedata )
Propriété de sortie inexistante
$ curl -s -S -H "x-api-token: XYZ" \ -d "output_field=is_status_" \ http://broker-module-livedata:50100/api/v2/clusters ERROR 400: output_field: invalid field name [ is_status_ ]
ERROR 400: output_field: invalid field name [ is_status_ ]
Cela peut se produire si le certificat du serveur est auto-signé. Pour contourner la validité de l'émetteur du certificat, il faut utiliser l'option --insecure ( option courte : -k ). Avec curl v7.29.0 : curl: (60) Peer's Certificate issuer is not recognized. … Avec curl v7.60 et supérieur : curl: (60) SSL certificate problem: unable to get local issuer certificate … The client IP_SERVEUR:PORT_CLIENT sent a plain HTTP request, but this server only speaks HTTPS on this port. Avec curl v7.29.0 : curl: (35) SSL received a record that exceeded the maximum permissible length. Avec curl v7.60 et supérieur : curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version numberErreurs communes lors de l'envoi de la requête
Messages d'erreurs liés au protocole HTTPS
Le certificat SSL a été refusé
$ curl -s -S -H "x-api-token: XYZ" \
https://broker-module-livedata:50100/api/v2/inventory
curl: (60) SSL certificate problem: unable to get local issuer certificate
…
curl --insecure -s -S -H "x-api-token: XYZ" \
https://broker-module-livedata:50100/api/v2/inventory
Requête HTTP sur un serveur en HTTPS
$ curl -s -S -H "x-api-token: XYZ" \
http://broker-module-livedata:50100/api/v2/inventory
The client IP_SERVEUR:PORT_CLIENT sent a plain HTTP request,
but this server only speaks HTTPS on this port.
Requête HTTPS sur un serveur en HTTP
$ curl -s -S -H "x-api-token: XYZ" \
https://broker-module-livedata:50100/api/v2/inventory
curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number