Ce type d'¨¦l¨¦ment autorise l'interrogation des donn¨¦es ¨¤ l'aide du protocole HTTP/HTTPS. Le trap est ¨¦galement possible ¨¤ l¡¯aide de Áú»¢¶Ä²© Sender ou du protocole Áú»¢¶Ä²© Sender.
La v¨¦rification d'¨¦l¨¦ments HTTP est ex¨¦cut¨¦e par le serveur Áú»¢¶Ä²©. Toutefois, lorsque les h?tes sont surveill¨¦s par un proxy Áú»¢¶Ä²©, les v¨¦rifications d¡¯¨¦l¨¦ments HTTP sont ex¨¦cut¨¦es par le proxy.
Les v¨¦rifications d'¨¦l¨¦ments HTTP n'exigent pas que l'agent s'ex¨¦cute sur un h?te surveill¨¦.
L'agent HTTP prend en charge HTTP et HTTPS. Áú»¢¶Ä²© suivra ¨¦ventuellement les redirections (voir l¡¯option Suivre les redirections ci-dessous). Le nombre maximum de redirections est cod¨¦ en dur ¨¤ 10 (¨¤ l'aide de l'option cURL CURLOPT_MAXREDIRS).
Voir ¨¦galement les probl¨¨mes connus li¨¦s ¨¤ l'utilisation du protocole HTTPS.
Le serveur/proxy Áú»¢¶Ä²© doit ¨ºtre configur¨¦ initialement avec le support cURL (libcurl).
Pour configurer un ¨¦l¨¦ment HTTP :
Tous les champs de saisie obligatoires sont marqu¨¦s d'un ast¨¦risque rouge.
Les champs qui n¨¦cessitent des informations sp¨¦cifiques pour les ¨¦l¨¦ments HTTP sont les suivants :
Type | ³§¨¦±ô±ð³¦³Ù¾±´Ç²Ô²Ô±ð³ú Agent HTTP ici. | |
°ä±ô¨¦ | Entrez une cl¨¦ d'¨¦l¨¦ment unique. | |
URL | URL pour se connecter et r¨¦cup¨¦rer les donn¨¦es. Par exemple : https://www.google.com http://www.zabbix.com/download Les noms de domaine peuvent ¨ºtre sp¨¦cifi¨¦s en caract¨¨res Unicode. Ils sont automatiquement convertis au format ASCII lors de l'ex¨¦cution de la v¨¦rification HTTP. Le bouton Analyser peut ¨ºtre utilis¨¦ pour s¨¦parer les champs de requ¨ºte facultatifs (comme ?name=Admin&password=mypassword) de l'URL, en d¨¦pla?ant les attributs et les valeurs dans les Champs de requ¨ºtes pour l'encodage automatique des URLs. Limit¨¦ ¨¤ 2048 caract¨¨res. Macros support¨¦es : {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, macros utilisateur, macros de d¨¦couverte de bas niveau. Ceci d¨¦finit l'option cURL . |
|
Champs de requ¨ºte | Variables pour l'URL (voir ci-dessous). Sp¨¦cifi¨¦ sous forme de paires d'attributs et de valeurs. Les valeurs sont automatiquement cod¨¦es par l'URL. Les valeurs des macros sont r¨¦solues puis encod¨¦es automatiquement par URL. Macros support¨¦es : {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, macros utilisateur, macros de d¨¦couverte de bas niveau. Ceci d¨¦finit l'option cURL . |
|
Type de requ¨ºte | ³§¨¦±ô±ð³¦³Ù¾±´Ç²Ô²Ô±ð³ú le type de m¨¦thode de requ¨ºte : GET, POST, PUT or HEAD | |
Expiration | Áú»¢¶Ä²© ne passera pas plus de temps que pr¨¦vu ¨¤ traiter l¡¯URL (maximum 1 minute). En r¨¦alit¨¦, ce param¨¨tre d¨¦finit le d¨¦lai maximal de connexion ¨¤ l'URL et le d¨¦lai maximal d'ex¨¦cution d'une requ¨ºte HTTP. Par cons¨¦quent, Áú»¢¶Ä²© ne passera pas plus de 2xExpiration secondes sur une v¨¦rification. Les suffixes temporels sont support¨¦s, ex : 30s, 1m. Macros support¨¦es : macros utilisateur, macros de d¨¦couverte de bas niveau. Ceci d¨¦finit l'option cURL . |
|
Type du corps de la requ¨ºte | ³§¨¦±ô±ð³¦³Ù¾±´Ç²Ô²Ô±ð³ú le type du corps de la requ¨ºte : Donn¨¦es brutes - Corps de requ¨ºte HTTP personnalis¨¦, les macros sont substitu¨¦es mais aucun encodage n'est effectu¨¦ Donn¨¦es JSON - Corps de la requ¨ºte HTTP au format JSON. Les macros peuvent ¨ºtre utilis¨¦es comme cha?ne, nombre, vrai et faux ; les macros utilis¨¦es en tant que cha?nes doivent ¨ºtre plac¨¦es entre guillemets. Les valeurs des macros sont r¨¦solues puis ¨¦chapp¨¦es automatiquement. Si "Content-Type" n'est pas sp¨¦cifi¨¦ dans les en-t¨ºtes, il utilisera par d¨¦faut "Content-Type: application/json" Donn¨¦es XML - Corps de la requ¨ºte HTTP au format XML. Les macros peuvent ¨ºtre utilis¨¦es en tant que n?ud de texte, attribut ou section CDATA. Les valeurs des macros sont r¨¦solues puis ¨¦chapp¨¦es automatiquement dans un n?ud de texte et un attribut. Si "Content-Type" n'est pas sp¨¦cifi¨¦ dans les en-t¨ºtes, la valeur par d¨¦faut sera "Content-Type: application/xml". Remarque que la s¨¦lection de donn¨¦es XML n¨¦cessite libxml2. |
|
Corps de la requ¨ºte | Entrez le corps de la demande. Macros support¨¦es : {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, macros utilisateur, macros de d¨¦couverte de bas niveau. |
|
·¡²Ô-³Ù¨º³Ù±ð²õ | ·¡²Ô-³Ù¨º³Ù±ð²õ HTTP personnalis¨¦s ¨¤ envoyer lors de l'ex¨¦cution d'une requ¨ºte. Sp¨¦cifi¨¦ sous forme de paires d'attributs et de valeurs. Macros support¨¦es : {HOST.IP}, {HOST.CONN}, {HOST. DNS }, {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, macros utilisateur, macros de d¨¦couverte de bas niveau. Ceci d¨¦finit l'option cURL . |
|
Code d'¨¦tat requis | Liste des codes d'¨¦tat attendus. Si Áú»¢¶Ä²© obtient un code qui ne figure pas dans la liste, l'¨¦l¨¦ment deviendra non support¨¦. Si vide, aucune v¨¦rification n'est effectu¨¦e. Par exemple : 200,201,210-299 Macros support¨¦es dans la liste : macros utilisateur, macros de d¨¦couverte de bas niveau. Ceci utilise l'option cURL . |
|
Suivre les redirections | Cochez la case pour suivre les redirections HTTP. Cela d¨¦finit l'option cURL . |
|
Mode de r¨¦cup¨¦ration | S¨¦lectionner la partie de la r¨¦ponse ¨¤ r¨¦cup¨¦rer : Corps - corps seulement ·¡²Ô-³Ù¨º³Ù±ð²õ - en-t¨ºtes seulement Corps et en-t¨ºtes - coprs et en-t¨ºtes |
|
Convertir en JSON | Les en-t¨ºtes sont enregistr¨¦s sous forme de paires attribut et valeur sous la cl¨¦ "header". Si 'Content-Type: application/json' est rencontr¨¦, le corps est enregistr¨¦ en tant qu'objet. Sinon, il est stock¨¦ sous forme de cha?ne. Par exemple : ![]() |
|
Proxy HTTP | Vous pouvez sp¨¦cifier un proxy HTTP ¨¤ utiliser, au format [protocol://][username[:password]@]proxy.mycompany.com[:port] .Le pr¨¦fix optionnel protocol:// peut ¨ºtre utilis¨¦ pour sp¨¦cifier des protocoles de proxy alternatifs (le support du pr¨¦fixe de protocole a ¨¦t¨¦ ajout¨¦ dans cURL 7.21.7). Sans protocole sp¨¦cifi¨¦, le proxy sera trait¨¦ comme un proxy HTTP.Par d¨¦faut, le port 1080 sera utilis¨¦. Si sp¨¦cifi¨¦, le proxy ¨¦crasera les variables d'environnement associ¨¦es au proxy, telles que http_proxy, HTTPS_PROXY. S'il n'est pas sp¨¦cifi¨¦, le proxy n'¨¦crase pas les variables d'environnement li¨¦es au proxy. La valeur entr¨¦e est transmise "telle quelle", aucune v¨¦rification de coh¨¦rence n'a lieu. Vous pouvez ¨¦galement entrer une adresse proxy SOCKS. Si vous sp¨¦cifiez un protocole incorrect, la connexion ¨¦chouera et l'¨¦l¨¦ment ne sera plus support¨¦. En l'absence de protocole sp¨¦cifi¨¦, le proxy sera trait¨¦ comme un proxy HTTP. Notez que seule l'authentification simple est prise en charge avec le proxy HTTP. Macros support¨¦es : {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, macros utilisateur, macros de d¨¦couverte de bas niveau. Ceci d¨¦finit l'option cURL . |
|
Authentication HTTP | Type d'identification : Aucun - aucune authentification utilis¨¦e. Basique - L'authentification basique est utilis¨¦e.. NTLM - L¡¯authentification NTLM ( est utilis¨¦e. La s¨¦lection d'une m¨¦thode d'authentification fournira deux champs suppl¨¦mentaires pour la saisie d'un nom d'utilisateur et d'un mot de passe, les macros d'utilisateur et les macros de d¨¦couverte de bas niveau ¨¦tant prises en charge. Ceci d¨¦finit l'option cURL . |
|
V¨¦rifier le pair SSL | Cochez la case pour v¨¦rifier le certificat SSL du serveur Web. Le certificat du serveur sera automatiquement extrait de l'emplacement de l'autorit¨¦ de certification ¨¤ l'¨¦chelle du syst¨¨me. Vous pouvez remplacer l'emplacement des fichiers de l'autorit¨¦ de certification ¨¤ l'aide du serveur Áú»¢¶Ä²© ou du param¨¨tre de configuration du proxy SSLCALocation. Ceci d¨¦finit l'option cURL . |
|
V¨¦rifier l'h?te SSL | Cochez la case pour v¨¦rifier que le champ Nom commun ou le champ Autre nom sujet du certificat du serveur Web correspond. Ceci d¨¦finit l'option cURL . |
|
Fichier de certificat SSL | Nom du fichier de certificat SSL utilis¨¦ pour l'authentification du client. Le fichier de certificat doit ¨ºtre au format PEM1. Si le fichier de certificat contient ¨¦galement la cl¨¦ priv¨¦e, laissez le champ Fichier de cl¨¦ SSL vide. Si la cl¨¦ est crypt¨¦e, sp¨¦cifiez le mot de passe dans le champ Mot de passe de la cl¨¦ SSL. Le r¨¦pertoire contenant ce fichier est sp¨¦cifi¨¦ par le serveur Áú»¢¶Ä²© ou le param¨¨tre de configuration du proxy SSLCertLocation. Macros support¨¦es : {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, macros utilisateur, macros de d¨¦couverte de bas niveau. Ceci d¨¦finit l'option cURL . |
|
Fichier de cl¨¦ SSL | Nom du fichier de cl¨¦ priv¨¦e SSL utilis¨¦ pour l'authentification du client. Le fichier de cl¨¦ priv¨¦e doit ¨ºtre au format PEM1. Le r¨¦pertoire contenant ce fichier est sp¨¦cifi¨¦ par le serveur Áú»¢¶Ä²© ou le param¨¨tre de configuration du proxy SSLKeyLocation. Macros support¨¦es : {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, macros utilisateur, macros de d¨¦couverte de bas niveau. Ceci d¨¦finit l'option cURL . |
|
Mot de passe de la cl¨¦ SSL | Mot de passe du fichier de cl¨¦ priv¨¦e SSL. Macros support¨¦es : macros utilisateur, macros de d¨¦couverte de bas niveau. Ceci d¨¦finit l'option cURL . |
|
Activer les trap | Si cette case est coch¨¦e, l'¨¦l¨¦ment fonctionnera ¨¦galement comme ¨¦l¨¦ment trappeur et acceptera les donn¨¦es envoy¨¦es ¨¤ cet ¨¦l¨¦ment par le sender Áú»¢¶Ä²© ou ¨¤ l'aide du protocole sender de Áú»¢¶Ä²©. | |
H?tes autoris¨¦s | Visible uniquement si la case Activer les trap est coch¨¦e. Liste des adresses IP d¨¦limit¨¦es par des virgules, ¨¦ventuellement en notation CIDR, ou noms d¡¯h?te. Si sp¨¦cifi¨¦, les connexions entrantes ne seront accept¨¦es que des h?tes list¨¦s ici. Si la prise en charge IPv6 est activ¨¦e, '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' sont trait¨¦es de la m¨ºme mani¨¨re et '::/0' autorise toutes les adresses IPv4 ou IPv6. '0.0.0.0/0' peut ¨ºtre utilis¨¦ pour autoriser n'importe quelle adresse IPv4. Notez que les "adresses IPv6 compatibles IPv4" (pr¨¦fixe 0000::/96) sont support¨¦es mais obsol¨¨tes par la . Exemple : Server=127.0.0.1, 192.168.1.0/24, 192.168.3.1-255, 192.168.1-10.1-255, ::1,2001:db8::/32, zabbix.domain Les espaces et les macros utilisateur sont autoris¨¦es dans ce champs. Les macros d'h?tes : {HOST.HOST}, {HOST.NAME}, {HOST.IP}, {HOST.DNS}, {HOST.CONN} sont autoris¨¦es dans ce champs depuis Áú»¢¶Ä²© 4.0.2. |
Si le champs Proxy HTTP est laiss¨¦ vide, une autre fa?on d'utiliser un proxy HTTP consiste ¨¤ d¨¦finir des variables d'environnement associ¨¦es au proxy.
Pour HTTP - d¨¦finissez la variable d'environnement http_proxy
pour l'utilisateur Áú»¢¶Ä²©, Par exemple :
//http_proxy=.
Pour HTTPS - d¨¦finissez la variable d'environnement HTTPS_PROXY
. Par exemple :
//HTTPS_PROXY=. Plus de d¨¦tails sont disponibles en ex¨¦cutant une commande shell : # man curl.
[1] Áú»¢¶Ä²© prend en charge les fichiers de certificat et de cl¨¦ priv¨¦e au format PEM uniquement. Si vos donn¨¦es de certificat et de cl¨¦ priv¨¦e sont dans un fichier au format PKCS #12 (g¨¦n¨¦ralement avec l'extension *.p12 ou *.pfx), vous pouvez g¨¦n¨¦rer le fichier PEM ¨¤ l'aide des commandes suivantes :
Envoyez des requ¨ºtes GET simples pour extraire des donn¨¦es de services tels que Elasticsearch :
localhost:9200/?pretty
{
"name" : "YQ2VAY-",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "kH4CYqh5QfqgeTsjh2F9zg",
"version" : {
"number" : "6.1.3",
"build_hash" : "af51318",
"build_date" : "2018-01-26T18:22:55.523Z",
"build_snapshot" : false,
"lucene_version" : "7.1.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You know, for search"
}
$.version.number
Envoyez des requ¨ºtes POST simples pour extraire des donn¨¦es de services tels que Elasticsearch :
http://localhost:9200/str/values/_search?scroll=10s
{
"query": {
"bool": {
"must": [{
"match": {
"itemid": 28275
}
}],
"filter": [{
"range": {
"clock": {
"gt": 1517565836,
"lte": 1517566137
}
}
}]
}
}
}
{
"_scroll_id": "DnF1ZXJ5VGhlbkZldGNoBQAAAAAAAAAkFllRMlZBWS1UU1pxTmdEeGVwQjRBTFEAAAAAAAAAJRZZUTJWQVktVFNacU5nRHhlcEI0QUxRAAAAAAAAACYWWVEyVkFZLVRTWnFOZ0R4ZXBCNEFMUQAAAAAAAAAnFllRMlZBWS1UU1pxTmdEeGVwQjRBTFEAAAAAAAAAKBZZUTJWQVktVFNacU5nRHhlcEI0QUxR",
"took": 18,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 1.0,
"hits": [{
"_index": "dbl",
"_type": "values",
"_id": "dqX9VWEBV6sEKSMyk6sw",
"_score": 1.0,
"_source": {
"itemid": 28275,
"value": "0.138750",
"clock": 1517566136,
"ns": 25388713,
"ttl": 604800
}
}]
}
}
$.hits.hits[0]._source.value
V¨¦rifier si l'API Áú»¢¶Ä²© est vivant en utilisant apiinfo.version.
Notez l'utilisation de la m¨¦thode POST avec les donn¨¦es JSON, la d¨¦finition des en-t¨ºtes de requ¨ºte et le renvoi des en-t¨ºtes uniquement :
R¨¦cup¨¦ration des informations m¨¦t¨¦orologiques en se connectant au service public Openweathermap.
Notez l'utilisation de macros dans les champs de requ¨ºte. Reportez-vous ¨¤ l'API pour savoir comment les remplir.
Exemple de code JSON renvoy¨¦ en r¨¦ponse ¨¤ l'agent HTTP :
{
"body": {
"coord": {
"lon": 40.01,
"lat": 56.11
},
"weather": [{
"id": 801,
"main": "Clouds",
"description": "few clouds",
"icon": "02n"
}],
"base": "stations",
"main": {
"temp": 15.14,
"pressure": 1012.6,
"humidity": 66,
"temp_min": 15.14,
"temp_max": 15.14,
"sea_level": 1030.91,
"grnd_level": 1012.6
},
"wind": {
"speed": 1.86,
"deg": 246.001
},
"clouds": {
"all": 20
},
"dt": 1526509427,
"sys": {
"message": 0.0035,
"country": "RU",
"sunrise": 1526432608,
"sunset": 1526491828
},
"id": 487837,
"name": "Stavrovo",
"cod": 200
}
}
La t?che suivante consiste ¨¤ configurer les ¨¦l¨¦ments d¨¦pendants qui extraient les donn¨¦es du JSON.
D'autres m¨¦triques m¨¦t¨¦orologiques telles que 'Temp¨¦rature' sont ajout¨¦es de la m¨ºme mani¨¨re.
Connexion ¨¤ la page d'¨¦tat de Nginx et obtention de ses statistiques en masse.
Exemple de sortie de statut de stub Nginx :
Active connections: 1 Active connections:
server accepts handled requests
52 52 52
Reading: 0 Writing: 1 Waiting: 0
La t?che suivante consiste ¨¤ configurer les ¨¦l¨¦ments d¨¦pendants qui extraient des donn¨¦es.