Exportieren von Protokollen für Machine-Learning-Dienst-API-Interaktionen
Sie können Sensoren und Konsolen so konfigurieren, dass sie Protokolle von API-Interaktionen mit dem ExtraHop Machine Learning Service exportieren. Das ExtraHop-System exportiert API-Protokolle über HTTPS-POST-Anfragen. Jeder HTTP-Server kann die Protokolle empfangen, sofern der Server für das ExtraHop-System erreichbar ist und auf dem Server ein TLS-Zertifikat installiert ist.
Konfigurieren Sie einen HTTP-Server für den Empfang der Protokolle
Before you begin
- Sie müssen Go auf Ihrem Computer installieren. Weitere Informationen finden Sie in der Go-Dokumentation unter https://go.dev/learn/.
Konfigurieren Sie den Sensor oder die Konsole
Sie müssen den Sensor oder die Konsole so konfigurieren, dass Protokolle auf den von Ihnen konfigurierten Server exportiert werden.
- Wenn das integrierte Zertifikat auf dem Sensor dem Zertifikat für Ihren Server nicht vertraut, müssen Sie füge das Zertifikat hinzu zum Sensor oder zur Konsole.
API-Protokollformat
Die Protokolle werden im JSON-Format exportiert. Jedes Protokoll einer HTTPS-Anfrage an den Machine Learning Service enthält die folgenden Felder:
- Reihenfolge: Zahl
- Eine numerische ID, die Anfragen und Antworten korreliert. Wenn eine Anfrage beispielsweise die Sequenznummer 1 hat, hat das Antwortprotokoll auch die Sequenznummer 1.
- Anfrage: Objekt
- Ein Objekt, das Details zur Anfrage enthält. Das Objekt enthält die
folgenden Felder:
- Schliessen: Boolescher Wert
- Gibt an, ob der Connection-Header auf Schließen eingestellt ist.
- Länge des Inhalts: Zahl
- Der Wert des ContentLength-Headers.
- Kopfzeile: Objekt
- Ein Objekt, das die HTTPS-Header enthält.
- Gastgeber: Schnur
- Der Hostname des Server.
- Methode: Schnur
- Die Methode der Anfrage.
- Proto: Schnur
- Das HTTP-Protokoll, mit dem die Anfrage gesendet wurde.
- Remote-Addr: Schnur
- Die IP-Adresse des Server.
- URI der Anfrage: Schnur
- Die URI der Anfrage.
- TLS-Version: Schnur
- Die TLS-Version, mit der die Anfrage verschlüsselt wurde.
- Trailer: Schnur
- Der Wert des Trailer-Headers.
- Übertragungskodierung: Schnur
- Der Wert des Transfer-Encoding-Headers.
- Hauptteil der Anfrage: Objekt
- Der JSON-Hauptteil von POST-, PUT- und PATCH-Anfragen.
Jedes Protokoll für eine HTTPS-Antwort vom Machine Learning Service enthält die folgenden Felder:
- Reihenfolge: Zahl
- Eine numerische ID, die Anfragen und Antworten korreliert. Wenn eine Anfrage beispielsweise die Sequenznummer 1 hat, hat das Antwortprotokoll auch die Sequenznummer 1.
- Statuscode der Antwort: Zahl
- Der Statuscode der Antwort.
- response_headers: Objekt
- Ein Objekt, das die HTTPS-Header enthält
- Hauptteil der Antwort: Objekt
- Der JSON-Hauptteil der Antwort.
Beispiel für eine Anfrage
Das folgende JSON-Objekt ist ein Beispiel für ein Protokoll für eine API-Anfrage:
{ "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" } }
Beispiel für eine Antwort
Das folgende JSON-Objekt ist ein Beispiel für ein Protokoll für eine API-Antwort:
{ "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 ] } ] } }
Danke für deine Rückmeldung. Dürfen wir Sie kontaktieren, um weitere Fragen zu stellen?