MetriBeacon
Menü
Deutsch

POST Server mit Installationscode verbinden

/api/v1/agent/install-codes/redeem

Legt den gebundenen Server, Profil, Gruppen und einen Geräteschlüssel aus dem lokal erzeugten Schlüsselhash atomar an oder verbindet sie. Identische Anfragen können sicher fortgesetzt werden; der private Geräteschlüssel kann eine gespeicherte Verbindung nach Ablauf des Codes wiederaufnehmen.

Auf dieser Seite

Zugriff und Rechte

Legt den gebundenen Server, Profil, Gruppen und einen Geräteschlüssel aus dem lokal erzeugten Schlüsselhash atomar an oder verbindet sie. Identische Anfragen können sicher fortgesetzt werden; der private Geräteschlüssel kann eine gespeicherte Verbindung nach Ablauf des Codes wiederaufnehmen.

agentInstallCode

Parameter und Header

Keine Pfad-, Query- oder zusätzlichen Anfrageheader-Parameter.

Anfragekörper

FeldTyp und GrenzenErforderlichBedeutung
$AgentInstallClaimJa—
$.installation_idstringJaInstallationseinstellung oder vom Gerät gemeldeter Wert.
$.namestringJaInstallationseinstellung oder vom Gerät gemeldeter Wert.
$.platformstringJaInstallationseinstellung oder vom Gerät gemeldeter Wert.
$.architecturestringJaInstallationseinstellung oder vom Gerät gemeldeter Wert.
$.system_drivestringJaInstallationseinstellung oder vom Gerät gemeldeter Wert.
$.key_prefixstringJaInstallationseinstellung oder vom Gerät gemeldeter Wert.
$.key_hashstringJaInstallationseinstellung oder vom Gerät gemeldeter Wert.
$.versionstringJaInstallationseinstellung oder vom Gerät gemeldeter Wert.
$.expected_account_idstringNeinInstallationseinstellung oder vom Gerät gemeldeter Wert.
$.setup_targetsarray<object>; {"minItems":2,"maxItems":200}NeinAutomatisch erkannte Ziele für System, lokale Daten-Dateisysteme, Systemdatenträger und die zum Backend geroutete Netzwerkschnittstelle. Boot-, temporäre, Container- und Netzwerkdateisysteme sind ausgeschlossen. Eigene Profile bleiben unverändert.
$.setup_targets[]objectJa—
$.setup_targets[].addressstringNein—
$.setup_targets[].familystringNein—
$.setup_targets[].idstringJaUUID dieser Ressource. Bewahren Sie die zurückgegebene Kennung für weitere Operationen auf.
$.setup_targets[].kindstringJaRessourcenart oder Messwerttyp aus den angegebenen Werten.
$.setup_targets[].labelstring; {"maxLength":128,"minLength":1}JaAnzeigename der Komponente.
$.setup_targets[].local_refstringNein—
$.setup_targets[].namestringNeinLesbarer Ressourcenname. Beachten Sie die angegebene Längengrenze.
$.setup_targets[].pathstring; {"maxLength":1024}Nein—
$.setup_targets[].portintegerNein—
$.setup_targets[].projectstringNein—
$.setup_targets[].protocolstringNein—
$.setup_targets[].text_languagesobjectNein—
$.setup_targets[].timeout_secondsintegerNein—
$.setup_targets[].translationsobject; {"additionalProperties":false}Nein—
$.setup_targets[].translations.deobjectNein—
$.setup_targets[].translations.enobjectNein—
$.setup_targets[].transportstringNein—
$.setup_targets[].filesystem_identitystring; {"maxLength":256}NeinVom Agenten gemeldete Volumeidentität. Unverändert beibehalten, damit ein Ersatzvolume nicht die Historie eines anderen Volumes fortsetzt.
$.setup_targets[].disk_identitystring; {"maxLength":256}Nein—
$.system_inventoryobject; {"additionalProperties":false}Nein—
$.system_inventory.versioninteger; {"enum":[1]}Ja—
$.system_inventory.disks_knownbooleanJa—
$.system_inventory.disksarray<object; {"additionalProperties":false}>; {"maxItems":200}Ja—
$.system_inventory.disks[]object; {"additionalProperties":false}Ja—
$.system_inventory.disks[].component_idstring; {"maxLength":192}Ja—
$.system_inventory.disks[].pathstring; {"maxLength":1024}Ja—
$.system_inventory.disks[].labelstring; {"maxLength":128}Ja—
$.system_inventory.disks[].identitystring; {"maxLength":256}Ja—
$.system_inventory.swap_activeboolean | nullJa—
$.system_inventory.process_count_availablebooleanJa—
$.system_inventory.disk_ioLogicalDiskIOInventory | nullNein—
$.system_inventory.disk_io (anyOf 1)LogicalDiskIOInventoryNein—
$.system_inventory.disk_io (anyOf 1).completebooleanJa—
$.system_inventory.disk_io (anyOf 1).disk_count_knownbooleanJa—
$.system_inventory.disk_io (anyOf 1).disk_countinteger; {"minimum":0,"maximum":200}Ja—
$.system_inventory.disk_io (anyOf 1).source_countinteger; {"minimum":0,"maximum":1024}Ja—
$.system_inventory.disk_io (anyOf 1).source_setstring; {"maxLength":64}Ja—
$.system_inventory.disk_io (anyOf 2)nullNein—
$.system_inventory.healthServerHealthInventory | nullNein—
$.system_inventory.health (anyOf 1)ServerHealthInventoryNein—
$.system_inventory.health (anyOf 1).versioninteger; {"const":1}Ja—
$.system_inventory.health (anyOf 1).sourcesarray<ServerHealthSource>; {"maxItems":1200}Ja—
$.system_inventory.health (anyOf 1).sources[]ServerHealthSourceJa—
$.system_inventory.health (anyOf 1).sources[].componentServerComponentJa—
$.system_inventory.health (anyOf 1).sources[].component.addressstringNein—
$.system_inventory.health (anyOf 1).sources[].component.familystringNein—
$.system_inventory.health (anyOf 1).sources[].component.idstringJaUUID dieser Ressource. Bewahren Sie die zurückgegebene Kennung für weitere Operationen auf.
$.system_inventory.health (anyOf 1).sources[].component.kindstringJaRessourcenart oder Messwerttyp aus den angegebenen Werten.
$.system_inventory.health (anyOf 1).sources[].component.labelstringJaAnzeigename der Komponente.
$.system_inventory.health (anyOf 1).sources[].component.local_refstringNein—
$.system_inventory.health (anyOf 1).sources[].component.namestringNeinLesbarer Ressourcenname. Beachten Sie die angegebene Längengrenze.
$.system_inventory.health (anyOf 1).sources[].component.pathstringNein—
$.system_inventory.health (anyOf 1).sources[].component.portintegerNein—
$.system_inventory.health (anyOf 1).sources[].component.projectstringNein—
$.system_inventory.health (anyOf 1).sources[].component.protocolstringNein—
$.system_inventory.health (anyOf 1).sources[].component.text_languagesobjectNein—
$.system_inventory.health (anyOf 1).sources[].component.timeout_secondsintegerNein—
$.system_inventory.health (anyOf 1).sources[].component.translationsobject; {"additionalProperties":false}Nein—
$.system_inventory.health (anyOf 1).sources[].component.translations.deobjectNein—
$.system_inventory.health (anyOf 1).sources[].component.translations.enobjectNein—
$.system_inventory.health (anyOf 1).sources[].component.transportstringNein—
$.system_inventory.health (anyOf 1).sources[].component.filesystem_identitystring; {"maxLength":256}NeinVom Agenten gemeldete Volumeidentität. Unverändert beibehalten, damit ein Ersatzvolume nicht die Historie eines anderen Volumes fortsetzt.
$.system_inventory.health (anyOf 1).sources[].component.disk_identitystring; {"maxLength":256}Nein—
$.system_inventory.health (anyOf 1).sources[].groupstring; {"enum":["cpu_diagnostics_v1","disk_operations_v1","disk_latency_v1","network_errors_v1","swap_traffic_v1","psi_v1","filesystem_capacity_v1","filesystem_inodes_v1","filesystem_health_v1","oom_v1","storage_health_v1"]}Ja—
$.system_inventory.health (anyOf 1).sources[].statusstring; {"enum":["ready","unsupported","permission_denied","failed"]}Ja—
$.system_inventory.health (anyOf 1).sources[].minimum_interval_secondsinteger; {"minimum":1,"maximum":86400}Ja—
$.system_inventory.health (anyOf 2)nullNein—

Antworten

application/json

FeldTyp und GrenzenErforderlichBedeutung
$AgentInstallReceiptJa—
$.account_idstring; {"format":"uuid"}JaInstallationseinstellung oder vom Gerät gemeldeter Wert.
$.workspace_idstring; {"format":"uuid"}JaInstallationseinstellung oder vom Gerät gemeldeter Wert.
$.device_idstring; {"format":"uuid"}JaInstallationseinstellung oder vom Gerät gemeldeter Wert.
$.key_idstring; {"format":"uuid"}JaInstallationseinstellung oder vom Gerät gemeldeter Wert.
$.replayedbooleanJaInstallationseinstellung oder vom Gerät gemeldeter Wert.

application/json

FeldTyp und GrenzenErforderlichBedeutung
$AgentInstallReceiptJa—
$.account_idstring; {"format":"uuid"}JaInstallationseinstellung oder vom Gerät gemeldeter Wert.
$.workspace_idstring; {"format":"uuid"}JaInstallationseinstellung oder vom Gerät gemeldeter Wert.
$.device_idstring; {"format":"uuid"}JaInstallationseinstellung oder vom Gerät gemeldeter Wert.
$.key_idstring; {"format":"uuid"}JaInstallationseinstellung oder vom Gerät gemeldeter Wert.
$.replayedbooleanJaInstallationseinstellung oder vom Gerät gemeldeter Wert.
Stabile Fehlercodes
invalid_install

application/problem+json

FeldTyp und GrenzenErforderlichBedeutung
$ProblemJa—
$.codestringJaStabiler maschinenlesbarer Fehlercode
$.detailstringJaKurze lokalisierte Erklärung ohne interne Fehlerdaten
$.instancestringJaEinmalige relative Kennung /api/v1/requests/{request_id}; keine abrufbare Ressource
$.messagestringJaVorübergehend für bestehende Clients gleich detail
$.message_keystringJaStabiler Übersetzungsschlüssel für einen Sprachwechsel der Anzeige ohne neue Anfrage
$.message_paramsobject; {"additionalProperties":true}JaBenannte, sicher ausgegebene Meldungsparameter; kein beliebiges HTML
$.request_idstring; {"pattern":"^[0-9a-f]{32}$"}JaVom Server erzeugte Diagnosekennung. Enthält kein Logintoken und keine Zugangsdaten.
$.statusinteger; {"maximum":599,"minimum":400}Ja—
$.titlestringJaLokalisierte HTTP-Statusbezeichnung
$.typestring; {"const":"about:blank"}Ja—
Stabile Fehlercodes
forbidden

application/problem+json

FeldTyp und GrenzenErforderlichBedeutung
$ProblemJa—
$.codestringJaStabiler maschinenlesbarer Fehlercode
$.detailstringJaKurze lokalisierte Erklärung ohne interne Fehlerdaten
$.instancestringJaEinmalige relative Kennung /api/v1/requests/{request_id}; keine abrufbare Ressource
$.messagestringJaVorübergehend für bestehende Clients gleich detail
$.message_keystringJaStabiler Übersetzungsschlüssel für einen Sprachwechsel der Anzeige ohne neue Anfrage
$.message_paramsobject; {"additionalProperties":true}JaBenannte, sicher ausgegebene Meldungsparameter; kein beliebiges HTML
$.request_idstring; {"pattern":"^[0-9a-f]{32}$"}JaVom Server erzeugte Diagnosekennung. Enthält kein Logintoken und keine Zugangsdaten.
$.statusinteger; {"maximum":599,"minimum":400}Ja—
$.titlestringJaLokalisierte HTTP-Statusbezeichnung
$.typestring; {"const":"about:blank"}Ja—
Stabile Fehlercodes
not_found

application/problem+json

FeldTyp und GrenzenErforderlichBedeutung
$ProblemJa—
$.codestringJaStabiler maschinenlesbarer Fehlercode
$.detailstringJaKurze lokalisierte Erklärung ohne interne Fehlerdaten
$.instancestringJaEinmalige relative Kennung /api/v1/requests/{request_id}; keine abrufbare Ressource
$.messagestringJaVorübergehend für bestehende Clients gleich detail
$.message_keystringJaStabiler Übersetzungsschlüssel für einen Sprachwechsel der Anzeige ohne neue Anfrage
$.message_paramsobject; {"additionalProperties":true}JaBenannte, sicher ausgegebene Meldungsparameter; kein beliebiges HTML
$.request_idstring; {"pattern":"^[0-9a-f]{32}$"}JaVom Server erzeugte Diagnosekennung. Enthält kein Logintoken und keine Zugangsdaten.
$.statusinteger; {"maximum":599,"minimum":400}Ja—
$.titlestringJaLokalisierte HTTP-Statusbezeichnung
$.typestring; {"const":"about:blank"}Ja—
Stabile Fehlercodes
install_used
revision_conflict

application/problem+json

FeldTyp und GrenzenErforderlichBedeutung
$ProblemJa—
$.codestringJaStabiler maschinenlesbarer Fehlercode
$.detailstringJaKurze lokalisierte Erklärung ohne interne Fehlerdaten
$.instancestringJaEinmalige relative Kennung /api/v1/requests/{request_id}; keine abrufbare Ressource
$.messagestringJaVorübergehend für bestehende Clients gleich detail
$.message_keystringJaStabiler Übersetzungsschlüssel für einen Sprachwechsel der Anzeige ohne neue Anfrage
$.message_paramsobject; {"additionalProperties":true}JaBenannte, sicher ausgegebene Meldungsparameter; kein beliebiges HTML
$.request_idstring; {"pattern":"^[0-9a-f]{32}$"}JaVom Server erzeugte Diagnosekennung. Enthält kein Logintoken und keine Zugangsdaten.
$.statusinteger; {"maximum":599,"minimum":400}Ja—
$.titlestringJaLokalisierte HTTP-Statusbezeichnung
$.typestring; {"const":"about:blank"}Ja—
Stabile Fehlercodes
invalid_install
platform_mismatch
unsupported_parameter

application/problem+json

FeldTyp und GrenzenErforderlichBedeutung
$ProblemJa—
$.codestringJaStabiler maschinenlesbarer Fehlercode
$.detailstringJaKurze lokalisierte Erklärung ohne interne Fehlerdaten
$.instancestringJaEinmalige relative Kennung /api/v1/requests/{request_id}; keine abrufbare Ressource
$.messagestringJaVorübergehend für bestehende Clients gleich detail
$.message_keystringJaStabiler Übersetzungsschlüssel für einen Sprachwechsel der Anzeige ohne neue Anfrage
$.message_paramsobject; {"additionalProperties":true}JaBenannte, sicher ausgegebene Meldungsparameter; kein beliebiges HTML
$.request_idstring; {"pattern":"^[0-9a-f]{32}$"}JaVom Server erzeugte Diagnosekennung. Enthält kein Logintoken und keine Zugangsdaten.
$.statusinteger; {"maximum":599,"minimum":400}Ja—
$.titlestringJaLokalisierte HTTP-Statusbezeichnung
$.typestring; {"const":"about:blank"}Ja—
Stabile Fehlercodes
creation_quota

application/problem+json

FeldTyp und GrenzenErforderlichBedeutung
$ProblemJa—
$.codestringJaStabiler maschinenlesbarer Fehlercode
$.detailstringJaKurze lokalisierte Erklärung ohne interne Fehlerdaten
$.instancestringJaEinmalige relative Kennung /api/v1/requests/{request_id}; keine abrufbare Ressource
$.messagestringJaVorübergehend für bestehende Clients gleich detail
$.message_keystringJaStabiler Übersetzungsschlüssel für einen Sprachwechsel der Anzeige ohne neue Anfrage
$.message_paramsobject; {"additionalProperties":true}JaBenannte, sicher ausgegebene Meldungsparameter; kein beliebiges HTML
$.request_idstring; {"pattern":"^[0-9a-f]{32}$"}JaVom Server erzeugte Diagnosekennung. Enthält kein Logintoken und keine Zugangsdaten.
$.statusinteger; {"maximum":599,"minimum":400}Ja—
$.titlestringJaLokalisierte HTTP-Statusbezeichnung
$.typestring; {"const":"about:blank"}Ja—
Stabile Fehlercodes
unavailable

application/problem+json

FeldTyp und GrenzenErforderlichBedeutung
$ProblemJa—
$.codestringJaStabiler maschinenlesbarer Fehlercode
$.detailstringJaKurze lokalisierte Erklärung ohne interne Fehlerdaten
$.instancestringJaEinmalige relative Kennung /api/v1/requests/{request_id}; keine abrufbare Ressource
$.messagestringJaVorübergehend für bestehende Clients gleich detail
$.message_keystringJaStabiler Übersetzungsschlüssel für einen Sprachwechsel der Anzeige ohne neue Anfrage
$.message_paramsobject; {"additionalProperties":true}JaBenannte, sicher ausgegebene Meldungsparameter; kein beliebiges HTML
$.request_idstring; {"pattern":"^[0-9a-f]{32}$"}JaVom Server erzeugte Diagnosekennung. Enthält kein Logintoken und keine Zugangsdaten.
$.statusinteger; {"maximum":599,"minimum":400}Ja—
$.titlestringJaLokalisierte HTTP-Statusbezeichnung
$.typestring; {"const":"about:blank"}Ja—

Wiederholungen und asynchrone Aufträge

Für diese Änderung gibt es keine allgemeine Wiederholungsgarantie. Prüfen Sie bei unklarer Antwort den betroffenen Eintrag, bevor Sie es erneut versuchen. Beachten Sie Wartezeiten aus Retry-After und fordern Sie abgelaufene Anmelde- oder Aktionscodes neu an.

Anfragebeispiele

Ersetzen Sie Demokennungen, Zeitstempel und Platzhalter durch eigene Werte. Behalten Sie bei Wiederholungen Kennungen, Zeit und Inhalt bei. Diese Beispiele führen auf der Seite keine Anfragen aus.

Halten Sie Anmeldelinks, Codes, Cookies und Schlüssel privat. Schreiben Sie sie nicht in Logs und teilen Sie sie nicht in Hilfeanfragen.

shell
curl --fail-with-body --request POST 'https://metribeacon.com/api/v1/agent/install-codes/redeem' --header 'Accept: application/json' --header 'Authorization: Bearer INSTALL_CODE' --header 'Content-Type: application/json' --data '{"installation_id":"22222222-2222-4222-8222-222222222222","name":"web-01","platform":"linux","architecture":"amd64","system_drive":"/","key_prefix":"aaaaaaaaaaaa","key_hash":"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb","version":"vRELEASE"}'
python
import urllib.request
headers = {'Accept': 'application/json', 'Authorization': 'Bearer INSTALL_CODE', 'Content-Type': 'application/json'}
request = urllib.request.Request('https://metribeacon.com/api/v1/agent/install-codes/redeem', headers=headers, method='POST', data='{"installation_id":"22222222-2222-4222-8222-222222222222","name":"web-01","platform":"linux","architecture":"amd64","system_drive":"/","key_prefix":"aaaaaaaaaaaa","key_hash":"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb","version":"vRELEASE"}'.encode())
with urllib.request.urlopen(request) as response:
    print(response.read().decode())
javascript
const response = await fetch("https://metribeacon.com/api/v1/agent/install-codes/redeem", {"method": "POST", "headers": {"Accept": "application/json", "Authorization": "Bearer INSTALL_CODE", "Content-Type": "application/json"}, "body": "{\"installation_id\":\"22222222-2222-4222-8222-222222222222\",\"name\":\"web-01\",\"platform\":\"linux\",\"architecture\":\"amd64\",\"system_drive\":\"/\",\"key_prefix\":\"aaaaaaaaaaaa\",\"key_hash\":\"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\",\"version\":\"vRELEASE\"}"});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
console.log(await response.text());
go
package main
import ("fmt"; "io"; "net/http"; "strings")
func main() {
 req, err := http.NewRequest("POST", "https://metribeacon.com/api/v1/agent/install-codes/redeem", strings.NewReader("{\"installation_id\":\"22222222-2222-4222-8222-222222222222\",\"name\":\"web-01\",\"platform\":\"linux\",\"architecture\":\"amd64\",\"system_drive\":\"/\",\"key_prefix\":\"aaaaaaaaaaaa\",\"key_hash\":\"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\",\"version\":\"vRELEASE\"}")); if err != nil { panic(err) }
 req.Header.Set("Accept","application/json")
 req.Header.Set("Authorization","Bearer INSTALL_CODE")
 req.Header.Set("Content-Type","application/json")
 response, err := http.DefaultClient.Do(req); if err != nil { panic(err) }; defer response.Body.Close(); data, err := io.ReadAll(response.Body); if err != nil { panic(err) }; fmt.Printf("HTTP %d\n%s\n", response.StatusCode, data)
}