Dieser Artikel beschreibt die verschiedenen Einstellungen, die für den neuen plattformübergreifenden Frends Agent konfiguriert werden können.
AGeschrieben vonAsmo Urpilainen Vor über einer Woche aktualisiertTable of contentsEinstellungsdateien
Die Agent-Anwendung liest Einstellungen aus einer Reihe von Dateien:
appsettings.json
appsettings.production.json
Geheimnisse/Appeinstellungen.Geheimnisse.json
Die Konfiguration in diesen Dateien hat eine kaskadierende Priorität, wobei letztere Dateien die Einstellungen früherer Dateien überschreiben.
Die Dateienappsettings.production.json
UndGeheimnisse/Appeinstellungen.Geheimnisse.json
werden bei der Installation überschrieben, daher sollten dort keine bleibenden Änderungen vorgenommen werden.
Verfügbare Einstellungen
Die meisten dieser Einstellungen sollten beim Herunterladen der Konfiguration von der Frends-Benutzeroberfläche korrekt vorkonfiguriert sein. Sie können sie jedoch manuell in der Datei appsettings.json bearbeiten. Hier finden Sie eine Erklärung, wofür die verschiedenen Einstellungen verwendet werden und woher sie stammen.
An= Einzelner Agent in einer Agentengruppe.
HA= Hohe Verfügbarkeit, mehrere Agenten in der Agentengruppe.
Agent-Datenbankeinstellungen
Wenn die Agentengruppe mehrere Frends-Agenten hat,AgentDatabaseConnectionStringoderSharedStateStoremuss festgelegt sein, um Schedule- und FileWatch-Trigger ausführen zu können. Wenn keines von beiden festgelegt ist, wird der Agentenstatus in SQLite gespeichert und nicht zwischen Agenten geteilt.
AgentDatabaseConnectionString(optional, SQL Server, HA)
Dieser Wert wird in der Agentengruppenansicht unter der Benutzeroberfläche konfiguriert und alle Agenten in der Agentengruppe müssen dieselbe Verbindungszeichenfolge verwenden.
Datenverzeichnis(optional, Container, SQLite, SA)
Dies bestimmt, wo die SQLite-Datenbanken für den Agenten gespeichert werden.
Für einen einzelnen Agenten, der in einem Container ausgeführt wird, muss dies auf einen Speicherort außerhalb des Containers selbst festgelegt werden, um Zeitplan- und FileWatch-Triggerzustände zu speichern.
SharedStateStore
Einstellungen für die Shared State-Konfiguration.
Eigenschaften:
ConnectionString: Eine Datenbankverbindungszeichenfolge (String)
Allgemeine Einstellungen
Diese Einstellungen sind für die Ausführung des Agenten erforderlich. Diese Einstellungen werden vom CORE beim Herunterladen der Installationskonfiguration bereitgestellt.
AgentenGruppenname
Name der Agentengruppe, in der der Agent ausgeführt wird.
Agentenname
Name des Agenten.
AzureServiceBusSasTokenKonfiguration
Konfiguration für die Azure Service Bus-Verbindung.
Enthält Eigenschaften:
Endpunkt: Azure Service Bus-Namespace, zB foobar.windows.net (Zeichenfolge)
UseAmqpWebSockets (bool)
SasTokensPerQueueIdentifier: SAS-Token für jede Warteschlange, falls erforderlich (Schlüssel-Wert-Paare von string: string)
Nicht erforderlich, wenn RabbitMqConnectionString konfiguriert ist.
Umgebungsname
Name der Umgebung, in der der Agent ausgeführt wird.
LogStepStoreUri
Der Ort, an dem der Friends-Agent die Schritte der Prozessinstanz protokolliert.
Kann entweder eine URL für einen Azure Blob-Container (mit dem SAS-Token) oder eine Windows-Datei-URI (file://) sein.
LargeMessageStoreUri
Über diesen Speicherort werden Nachrichten übermittelt, die nicht in den Nachrichtenbus passen.
Kann entweder eine URL für einen Azure Blob-Container (mit dem SAS-Token) oder eine Windows-Datei-URI (file://) sein.
ProcessHostPackageStoreUri
Der Speicherort, von dem der Friends-Agent die von der Benutzeroberfläche erstellten Prozesse herunterlädt.
Kann entweder eine URL für einen Azure Blob-Container (mit dem SAS-Token) oder eine Windows-Datei-URI (file://) sein.
RabbitMqConnectionString
Verbindungszeichenfolge für die RabbitMQ-Verbindung.
Nicht erforderlich, wenn eine Azure Service Bus-Verbindung konfiguriert wurde.
Optionale Einstellungen
ZertifikatFingerabdruckOderPfad
Option 1 – Fingerabdruck
Auf dem Agent-Computer sollte das Zertifikat bereits installiert sein.
Standardmäßig sucht der Friends-Agent am Speicherort „CurrentUser“ nach dem Zertifikat.
Dies kann bei Bedarf über die Einstellung „CertificateStore“ auf „LocalMachine“ geändert werden.
Der verwendete Shopname ist immer „My“.
Auf Linux-Rechnern muss dieses Zertifikat über die .NET Standard Certificate APIs installiert werden. Mit dem Frends Agent kann ein mitgeliefertes Tool zur Installation dieser Zertifikate verwendet werden.
dotnet /CertTool/ShareGate.CertificateTool.dll add -f /secrets/<PFX-Dateiname> --password <PFX-Passwort> --thumbprint <thumbrint> --store-name My
Option2 - Pfad
Diese Einstellung sollte der vollständige Pfad sein, in dem die Zertifikatsdatei (.pfx) vorhanden ist. Der Agent muss Zugriff haben, um den Dateiinhalt lesen zu können. Wenn das Zertifikat kennwortgeschützt ist, muss die Einstellung „CertificatePassword“ festgelegt werden.
Option 3 – Nicht konfiguriert
Wenn dieser Wert leer gelassen oder gar nicht übergeben wird, versucht der Frends-Agent, ein selbstsigniertes Zertifikat für den Agenten zu erstellen. Dieses muss manuell als vertrauenswürdig eingestuft werden und das Zertifikat wird sich bei Verwendung in Containern möglicherweise sehr oft ändern, da es von jeder neuen Instanz neu erstellt wird.
Zertifikatsspeicher
Der Name des Zertifikatsspeichers, in dem sich das angegebene Zertifikat befindet.
Standardmäßig: CurrentUser
ZertifikatPasswort
Diese Einstellung wird verwendet, wenn ein Zertifikat für HTTPS mit einem Dateipfad bereitgestellt wird.
HealthCheckApiKey
Wenn dieses Feld leer gelassen wird, sind die HTTP(S)-Integritätsprüfungs-Endpunkte (/FrendsStatusInfo und /FrendsStatusInfoLiveness) ohne Authentifizierung zugänglich.Lassen Sie dieses Feld leer, wenn Sie Gateway-Agenten in derselben Agentengruppe haben..
Wenn festgelegt, erfordern die Integritätsprüfungs-Endpunkte, dass der hier festgelegte API-Schlüssel im Header „health-check-api-key“ festgelegt wird.
HttpPorts(json) oder HttpPortsString(Umgebungsvariable)
Wenn dies festgelegt ist, versucht der Friends-Agent, auf den konfigurierten Ports auf HTTP-Verkehr zu lauschen.
HttpPorts erwartet ein JSON-Array von Ganzzahlen, z. B.[ 9996, 9997 ]
HttpPortsString erwartet eine Zeichenfolge, in der die Ports durch Kommas getrennt sind."9996, 9997"
HttpStatusinfoPort
Wenn Sie die Statusinfoseite auf einem separaten HTTP-Port hosten möchten, können Sie diese Option konfigurieren. Dieser Wert sollte eine Ganzzahl sein, z. B.:"HttpStatusinfoPort": 9901
HttpsPorts (json) oder HttpsPortsString (Umgebungsvariable)
Wenn dies festgelegt ist, versucht der Friends-Agent, auf den konfigurierten Ports auf HTTP-Verkehr zu lauschen.
HttpsPorts erwartet ein JSON-Array von Ganzzahlen, z. B. [ 443, 9999 ]
HttpsPortsString erwartet einen String, bei dem die Ports durch Kommas getrennt sind. „443, 9999“
Installationskennung (SQLite)
Dieser Wert muss für alle Agenten, die auf derselben Maschine laufen, eindeutig sein. Kann ignoriert werden, wenn nur ein Agent auf der Maschine läuft.
Gateway-Agent-Einstellungen
Diese Einstellungen sind relevant, wenn der Friends-Agent ein Gateway-Agent ist.
GatewayZieladressen
Wenn diese Einstellung festgelegt ist, wird der Friends-Agent als Gateway-Agent betrachtet.
Dies sollte ein JSON-String-Array mit allen Adressen für die Ziele sein.["https://agent1.local:443","https://agent2.local:443"]
AllowUnsafeServerCertificateForGateway
Wenn diese Einstellung festgelegt ist, müssen die Ziel-Friends-Agenten nicht über gültige SSL-Zertifikate für das Gateway verfügen, um den Datenverkehr per Proxy an die Agenten weiterzuleiten.
Der Standardwert ist „false“.
TimeoutMinutesForGateway
Maximales Timeout, das das Gateway auf eine Antwort von den Ziel-Friends-Agenten wartet.
Der Standardwert ist 10 Minuten
Verschiedene Einstellungen
Die folgenden Optionen sind optional und sollten nur festgelegt werden, wenn man weiß, was sie tun.
AppDomainSetupTimeout
Die Timeout-Zeitspanne für die anfängliche Einrichtung des Paketverzeichnisses und der App-Domäne.
Typ:Zeitspanne
Standardmäßig: 10 Minuten
Überprüfen Sie die Instanzen für Zombies, die länger als eine Minute laufen
Anzahl der Minuten, die ein Prozess ausgeführt werden kann, bevor überprüft wird, ob es sich um einen Zombie handelt, und er gegebenenfalls beendet wird.
Standardmäßig: 900
Aktivieren Sie OTPLMetrics
Aktiviert Open Telemetry-Metriken.
OTPLTracing aktivieren
Aktiviert die Open Telemetry-Verfolgung.
FileSystemInstanceLoggingPath
Wenn festgelegt, protokolliert der Agent Instanzen in einer Datei im angegebenen Pfad.
HeartBeatStatusInfoDebounceDelay
Zeit, die pro empfangener Heartbeat-Statusnachricht aufgewendet wird, um andere folgende Nachrichten in der beobachtbaren Sequenz zu ignorieren.
Typ:Zeitspanne
Standard: 2 Sekunden
Maximale Anzahl gleichzeitiger Remote-Subprozesse pro CPU
Maximale Anzahl gleichzeitiger Remote-Subprozesse pro CPU.
Standardmäßig: 64
Maximale gleichzeitige Blobübertragungen pro CPU
Maximale Anzahl gleichzeitiger Blob-Übertragungen pro CPU-Kern.
Standardmäßig: 4
MaxLogFlushWaitDurationSekunden
Maximale Wartezeit in Sekunden, bevor beim Leeren des Protokolls eine Zeitüberschreitung auftritt.
Standardmäßig: 300
MaxSubprocessDepth
Maximale Anzahl an Unterprozessen, die ein Prozess starten kann.
Standardmäßig: 30
Übergeben der Konfiguration an Docker
Es gibt mehrere verschiedene Möglichkeiten, einem Container die Anwendungseinstellungen zu übergeben.
Bündeln Sie die Datei appsettings.json direkt im Container-Image.
Legen Sie die Konfiguration in den Containerumgebungsvariablen fest
(Docker / Composer) Übergeben Sie die Konfiguration als Umgebungsvariablen. Dokumentation finden SieHierfür Docker undHierfür Docker-Compose.
(Kubernetes) Sie können die Konfiguration entweder als Umgebungsvariablen übergeben, wie dokumentiertHieroder als Geheimnisse direkt aus einer appsettings.secrets.json wie das geht, finden Sie unter demREADME.mdDieses kann von der FRENDS-Benutzeroberfläche auf der Umgebungsseite unter Umgebung => Agentengruppe => Kubernetes-Konfiguration herunterladen heruntergeladen werden.
Verwandte ArtikelTechnische Informationen zu Frends AgentsFrends Agent-Volume-HalterungenFrends Agent-Bereitstellung für KubernetesFrends Agent unter Linux installieren (Experimentelles Setup für Frends 5.4)Einführung in die Frends Azure-Architektur