Exporter les journaux des interactions API du service d'apprentissage automatique
Vous pouvez configurer les capteurs et les consoles pour qu'ils exportent les journaux des interactions API avec le service d'apprentissage automatique ExtraHop. Le système ExtraHop exporte les journaux de l'API par le biais de requêtes HTTPS POST. N'importe quel serveur HTTP peut recevoir les journaux, à condition que le serveur soit accessible par le système ExtraHop et qu'un certificat TLS soit installé sur le serveur.
Configuration d'un serveur HTTP pour recevoir les journaux
Before you begin
- Vous devez installer Go sur votre machine. Pour plus d'informations, consultez la documentation Go à l'adresse https://go.dev/learn/.
Configurer le capteur ou la console
Vous devez configurer le capteur ou la console pour exporter les journaux vers le serveur que vous avez configuré.
- Si le certificat de votre serveur n'est pas approuvé par le certificat intégré au capteur, vous devez ajouter le certificat au capteur ou à la console.
Format du journal de l'API
Les journaux sont exportés au format JSON. Chaque journal d'une requête HTTPS vers le service d'apprentissage automatique contient les champs suivants :
- séquence : Numéro
- Un identifiant numérique qui met en corrélation les demandes et les réponses. Par exemple, si une demande a un numéro de séquence de 1, le journal de la réponse aura également un numéro de séquence de 1.
- request : Objet
- Un objet qui contient des détails sur la demande. L'objet contient les champs suivants :
- Close : Booléen
- Indique si l'en-tête Connection est défini sur close.
- ContentLength : Nombre
- Valeur de l'en-tête ContentLength.
- En-tête : Objet
- Un objet qui contient les en-têtes HTTPS.
- Host : Chaîne
- Le nom d'hôte du serveur.
- Method (Méthode) : Chaîne
- La méthode de la requête.
- Proto : Chaîne
- Le protocole HTTP avec lequel la demande a été envoyée.
- RemoteAddr : Chaîne
- L'adresse IP du serveur.
- RequestURI : Chaîne
- L'URI de la requête.
- TLSVersion : Chaîne
- La version TLS avec laquelle la demande a été cryptée.
- Trailer : Chaîne
- La valeur de l'en-tête Trailer.
- TransferEncoding : Chaîne
- La valeur de l'en-tête Transfer-Encoding.
- request_body : Objet
- Le corps JSON des requêtes POST, PUT et PATCH.
Chaque journal d'une réponse HTTPS du service d'apprentissage automatique contient les champs suivants :
- séquence : Nombre
- Un identifiant numérique qui établit une corrélation entre les demandes et les réponses. Par exemple, si une demande a un numéro de séquence de 1, le journal de la réponse aura également un numéro de séquence de 1.
- response_status_code : Nombre
- Code d'état de la réponse.
- response_headers : Objet
- Objet contenant les en-têtes HTTPS.
- response_body : Objet
- Le corps JSON de la réponse.
Exemple de demande
L'objet JSON suivant est un exemple de journal pour une demande d'API :
{"sequence" : 302, "request" : { "Method" : "POST", "Host" : "appliance.example.extrahop.com", "RemoteAddr" : "127.0.0.1:1234", "RequestURI" : "/api/v1/metrics", "TLSVersion" : "TLS1.2", "Proto" : "HTTP/1.1", "ContentLength" : 149, "TransferEncoding" : null, "Header" : {"Accept" : [ "application/json" ], "Content-Length" : ["149" ], "Content-Type" : [ "application/json" ] }, "Close" : false, "Trailer" : null }, "request_body" : {"metric_category" : "net", "from" : -1, "object_type" : "capture", "object_ids" : [ 0 ], "until" : 0, "metric_specs" : [ { "name" : "pkts" } ], "cycle" : "30sec" } }
Exemple de réponse
L'objet JSON suivant est un exemple de journal pour une réponse d'API :
{"sequence" : 302, "response_status_code" : "200", "response_headers" : {"Content-Type" : ["application/json ; charset=utf-8" ], "Vary" : ["Accept-Encoding" ] }, "response_body" : {"cycle" : "30sec", "node_id" : 0, "clock" : 1678150650000, "from" : 1678150649999, "until" : 1678150650000, "stats" : [ { "oid" : 0, "time" : 1678150650000, "duration" : 30000, "values" : [ 1260 ] } ] } }
Nous vous remercions pour vos commentaires. Pouvons-nous vous contacter pour vous poser des questions complémentaires ?