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 :
±Ê²¹°ù²¹³¾¨¨³Ù°ù±ð | Description |
---|---|
Type | ³§¨¦±ô±ð³¦³Ù¾±´Ç²Ô²Ô±ð³ú Agent HTTP ici. |
°ä±ô¨¦ | Entrez une cl¨¦ d'¨¦l¨¦ment unique. |
URL | URL de connexion et de r¨¦cup¨¦ration des donn¨¦es. Par exemple : https://www.example.com http://www.example.com/download Les noms de domaine peuvent ¨ºtre sp¨¦cifi¨¦s en caract¨¨res Unicode. Ils sont automatiquement convertis en punycode en 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 Champs de requ¨ºte pour l'encodage automatique des URL. Limit¨¦ ¨¤ 2 048 caract¨¨res. Macros prises en charge : {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST. NAME}, {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG}, macros utilisateur, macros de d¨¦couverte de bas niveau. Ceci d¨¦finit l'option de cURL. |
Champs de requ¨ºte | Variables pour l'URL (voir ci-dessus). Sp¨¦cifi¨¦es en tant que paires d'attributs et de valeurs. Les valeurs sont automatiquement cod¨¦es en URL. Les valeurs des macros sont r¨¦solues puis automatiquement cod¨¦es en URL. Macros prises en charge : {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM .ID}, {ITEM.KEY}, {ITEM.KEY.ORIG}, macros utilisateur, macros de d¨¦couverte de bas niveau. Ceci d¨¦finit l'option de cURL. |
Type de requ¨ºte | ³§¨¦±ô±ð³¦³Ù¾±´Ç²Ô²Ô±ð³ú le type de m¨¦thode de requ¨ºte : GET, POST, PUT ou HEAD |
Ex?ration | Áú»¢¶Ä²© ne passera pas plus que le temps d¨¦fini sur le traitement de l'URL (1-60 secondes). En fait, ce param¨¨tre d¨¦finit le temps maximum pour ¨¦tablir une connexion ¨¤ l'URL et le temps maximum pour effectuer une requ¨ºte HTTP. Par cons¨¦quent, Áú»¢¶Ä²© ne passera pas plus de 2 secondes de d¨¦lai d'attente sur une v¨¦rification. Les suffixes temporels sont pris en charge, par ex. 30s, 1m. Macros prises en charge : macros utilisateur, macros de d¨¦couverte de bas niveau. Cela d¨¦finit l'option de cURL. |
Type du corps de la requ¨ºte | ³§¨¦±ô±ð³¦³Ù¾±´Ç²Ô²Ô±ð³ú le type de corps de la requ¨ºte : Donn¨¦es brutes : corps de la requ¨ºte HTTP personnalis¨¦, les macros sont remplac¨¦es mais aucun encodage n'est effectu¨¦ Donn¨¦es JSON : corps de la requ¨ºte HTTP dans Format JSON. Les macros peuvent ¨ºtre utilis¨¦es comme cha?ne, nombre, vrai et faux ; les macros utilis¨¦es comme cha?nes doivent ¨ºtre plac¨¦es entre guillemets doubles. Les valeurs des macros sont r¨¦solues puis automatiquement ¨¦chapp¨¦es. Si "Content-Type" n'est pas sp¨¦cifi¨¦ dans les en-t¨ºtes, il sera 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 comme n?ud de texte, attribut ou section CDATA. Les valeurs des macros sont r¨¦solues puis automatiquement ¨¦chapp¨¦es dans un n?ud de texte et un attribut. Si "Content-Type" n'est pas sp¨¦cifi¨¦ dans les en-t¨ºtes, il sera par d¨¦faut "Content-Type : application/xml" Notez que la s¨¦lection de Donn¨¦es XML n¨¦cessite libxml2. |
Corps de la requ¨ºte | Saisissez le corps de la requ¨ºte. Macros prises en charge : {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM. ID}, {ITEM.KEY}, {ITEM.KEY.ORIG}, macros utilisateur, macros de d¨¦couverte de bas niveau. |
·¡²Ô-³Ù¨º³Ù±ð²õ | ·¡²Ô-³Ù¨º³Ù±ð²õ HTTP personnalis¨¦s qui seront envoy¨¦s lors de l'ex¨¦cution d'une requ¨ºte. Sp¨¦cifi¨¦s sous forme de paires d'attributs et de valeurs. Macros prises en charge : {HOST.IP}, {HOST.CONN}, {HOST.DNS} , {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG}, macros utilisateur, macros de d¨¦couverte de bas niveau. Ceci d¨¦finit l'option de cURL. |
Codes d'¨¦tat requis | Liste des codes d'¨¦tat HTTP attendus. Si Áú»¢¶Ä²© obtient un code qui ne figure pas dans la liste, l'¨¦l¨¦ment ne sera plus pris en charge. Si vide, aucune v¨¦rification n'est effectu¨¦e. Par exemple : 200,201,210-299 Macros prises en charge dans la liste : macros utilisateur, macros de d¨¦couverte de bas niveau. Cela utilise l'option de cURL. |
Suivre les redirections | Cochez la case pour suivre les redirections HTTP. Cela d¨¦finit l'option cURL . |
Mode de r¨¦cup¨¦ration | ³§¨¦±ô±ð³¦³Ù¾±´Ç²Ô²Ô±ð³ú la partie de la r¨¦ponse ¨¤ r¨¦cup¨¦rer : Corps - corps uniquement ·¡²Ô-³Ù¨º³Ù±ð²õ - en-t¨ºtes uniquement Corps et en-t¨ºtes - corps et en-t¨ºtes |
Convertir en JSON | Les en-t¨ºtes sont enregistr¨¦s en tant que paires d'attributs et de valeurs sous la cl¨¦ "en-t¨ºte". Si 'Content-Type : application/json' est rencontr¨¦, le corps est enregistr¨¦ en tant qu'objet, sinon il est stock¨¦ en tant que cha?ne, par exemple : ![]() |
Proxy HTTP | Vous pouvez sp¨¦cifier un proxy HTTP ¨¤ utiliser, en utilisant le format [protocol://][username[:password]@]proxy.example.com[:port] .Le pr¨¦fixe facultatif protocol:// peut ¨ºtre utilis¨¦ pour sp¨¦cifier des protocoles proxy alternatifs (par exemple https, socks4, socks5 ; voir la ; 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. Si vous sp¨¦cifiez le mauvais protocole, la connexion ¨¦chouera et l'¨¦l¨¦ment ne sera plus pris en charge.Par d¨¦faut, le port 1080 sera utilis¨¦. Si sp¨¦cifi¨¦, le proxy ¨¦crasera les variables d'environnement li¨¦es au proxy comme http_proxy, HTTPS_PROXY. S'il n'est pas sp¨¦cifi¨¦, le proxy n'¨¦crasera pas les variables d'environnement li¨¦es au proxy. La valeur saisie est transmise "telle quelle", aucune v¨¦rification d'int¨¦grit¨¦ n'a lieu. Notez que seule l'authentification simple est prise en charge avec le proxy HTTP. Macros prises en charge : {HOST.IP}, {HOST.CONN} , {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG}, macros utilisateur, macros de d¨¦couverte de bas niveau.<br >Cela d¨¦finit l'option cURL . |
Authentification HTTP | Type d'authentification : Aucun - aucune authentification utilis¨¦e. Basique - l'authentification de base est utilis¨¦e. NTLM - NTLM () est utilis¨¦. Kerberos - L'authentification Kerberos est utilis¨¦e. Voir aussi : Configuration de Kerberos avec Áú»¢¶Ä²©. Digest - L'authentification Digest est utilis¨¦e. La s¨¦lection d'une m¨¦thode d'authentification fournira deux champs suppl¨¦mentaires pour entrer un utilisateur nom et mot de passe, o¨´ les macros utilisateur et les macros de d¨¦couverte de bas niveau sont prises en charge. Cela 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 (CA) ¨¤ l'¨¦chelle du syst¨¨me. Vous pouvez remplacer l'emplacement des fichiers CA ¨¤ l'aide du serveur Áú»¢¶Ä²© ou du param¨¨tre de configuration du proxy SSLCALocation. Cela d¨¦finit l'option cURL . |
V¨¦rifier l'h?te SSL | Cochez la case pour v¨¦rifier que le champ Common Name ou le champ Subject Alternate Name du certificat de serveur Web correspond. Cela d¨¦finit l'option de 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 prises en charge : {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME }, {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG}, macros utilisateur, macros de d¨¦couverte de bas niveau. Cela 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 prises en charge : {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME }, {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG}, macros utilisateur, macros de d¨¦couverte de bas niveau. Cela d¨¦finit l'option cURL . |
Mot de passe de la cl¨¦ SSL | Mot de passe du fichier de cl¨¦ priv¨¦e SSL. Macros prises en charge : macros utilisateur, macros de d¨¦couverte de bas niveau. Cela d¨¦finit l'option cURL . |
Activer les traps | Avec cette case coch¨¦e, l'¨¦l¨¦ment fonctionnera ¨¦galement comme ¨¦l¨¦ment de trappeur et acceptera les donn¨¦es envoy¨¦es ¨¤ cet ¨¦l¨¦ment par l'exp¨¦diteur Áú»¢¶Ä²© ou en utilisant le protocole d'exp¨¦diteur Áú»¢¶Ä²©. |
H?tes autoris¨¦s | Visible uniquement si la case Activer les traps 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 qu'¨¤ partir des h?tes r¨¦pertori¨¦s ici. Si la prise en charge d'IPv6 est activ¨¦e, alors '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' sont trait¨¦s de la m¨ºme mani¨¨re et '::/0' autorisera tout IPv4 ou Adresse 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 prises en charge mais obsol¨¨tes par . 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¨¦s dans ce champ. Les macros d'h?te : {HOST.HOST}, {HOST.NAME}, {HOST.IP}, {HOST.DNS}, {HOST.CONN} sont autoris¨¦s dans ce champ. |
Si le champ Proxy HTTP est laiss¨¦ vide, une autre fa?on d'utiliser un proxy HTTP consiste ¨¤ d¨¦finir des variables d'environnement li¨¦es au proxy.
Pour HTTP - d¨¦finissez la variable d'environnement http_proxy
pour l'utilisateur du serveur Áú»¢¶Ä²©. Par exemple:
http_proxy=http://proxy_ip:proxy_port
.
Pour HTTPS - d¨¦finissez la variable d'environnement HTTPS_PROXY
. Par exemple:
HTTPS_PROXY=http://proxy_ip:proxy_port
. Plus de d¨¦tails sont disponibles en ex¨¦cutant la commande shell : # man curl.
[1]Áú»¢¶Ä²© prend en charge les fichiers de certificat et de cl¨¦ priv¨¦e au format PEM uniquement. Si vous avez votre certificat et vos donn¨¦es de cl¨¦ priv¨¦e dans un fichier au format PKCS #12 (g¨¦n¨¦ralement avec l'extension *.p12 ou *.pfx), vous pouvez g¨¦n¨¦rer le fichier PEM ¨¤ partir de celui-ci ¨¤ 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 m¨¦triques en masse.
Exemple de sortie d'¨¦tat du 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 les donn¨¦es.
le serveur accepte les requ¨ºtes trait¨¦es\s+([0-9]+) ([0-9]+) ([0-9]+)
?: