- Überblick
- Anforderungen
- Installation
- Fragen und Antworten: Bereitstellungsvorlagen
- Konfigurieren der Maschinen
- Konfigurieren des externen Objektspeichers
- Konfigurieren des Lastausgleichs
- Konfigurieren des DNS
- Konfigurieren von Microsoft SQL-Servern
- Konfigurieren der Zertifikate
- HA-fähige Online-Produktionsinstallation mit mehreren Knoten
- HA-fähige Offline-Produktionsinstallation mit mehreren Knoten
- Herunterladen der Installationspakete
- install-uipath.sh-Parameter
- Aktivieren eines High Availability Add-ons für den Cluster
- Document Understanding-Konfigurationsdatei
- Hinzufügen eines dedizierten Agent-Knotens mit GPU-Unterstützung
- Verbinden einer Task Mining-Anwendung
- Hinzufügen eines dedizierten Agent-Knotens für Task Mining
- Hinzufügen eines dedizierten Agentenknotens für Automation Suite-Roboter
- Nach der Installation
- Clusterverwaltung
- Überwachung und Warnungen
- Migration und Upgrade
- Migrationsoptionen
- Schritt 1: Verschieben der Identitätsorganisationsdaten von einer eigenständigen in die Automation Suite
- Schritt 2: Wiederherstellen der eigenständigen Produktdatenbank
- Schritt 3: Sichern der Plattformdatenbank in der Automation Suite
- Schritt 4: Zusammenführen von Organisationen in der Automation Suite
- Schritt 5: Aktualisieren der migrierten Produktverbindungszeichenfolgen
- Step 6: Migrating standalone Insights
- Schritt 7: Löschen des Standardmandanten
- B) Migration von einzelnen Mandanten
- Produktspezifische Konfiguration
- Verwenden des Orchestrator-Konfiguratortools
- Vorbereiten des Orchestrators
- Aktualisieren der Orchestrator-Konfiguration
- Best Practices und Wartung
- Fehlersuche und ‑behebung
- Fehlerbehebung bei Diensten während der Installation
- Deinstallieren des Clusters
- Löschen von Offline-Artefakten für mehr Speicherplatz
- So löschen Sie Redis-Daten
- So können Sie die Istio-Protokollierung aktivieren
- So werden Protokolle manuell bereinigt
- So löschen Sie alte Protokolle, die im sf-logs-Paket gespeichert sind
- So deaktivieren Sie Streaming-Protokolle für das AI Center
- Fehlerbehebung bei fehlgeschlagenen Automation Suite-Installationen
- So löschen Sie Bilder aus dem alten Installationsprogramm nach dem Upgrade
- Automatisches Bereinigen von Longhorn-Snapshots
- Deaktivieren von NIC-Prüfsummen-Offloading
- Es kann keine Offlineinstallation auf RHEL 8.4 OS ausgeführt werden.
- Fehler beim Herunterladen des Pakets
- Die Offlineinstallation schlägt aufgrund fehlender binärer Dateien fehl
- Zertifikatproblem bei der Offlineinstallation
- Die erste Installation schlägt während des Longhorn-Setups fehl
- Validierungsfehler bei der SQL-Verbindungszeichenfolge
- Voraussetzungsprüfung für das Selinux-iscsid-Modul schlägt fehl
- Azure-Datenträger nicht als SSD markiert
- Fehler nach der Zertifikatsaktualisierung
- Virenschutz verursacht Probleme bei der Installation
- Automation Suite funktioniert nach Betriebssystem-Upgrade nicht
- Bei der Automation Suite muss „backlog_wait_time“ auf 0 gesetzt werden.
- Volume nicht bereitstellbar, da es nicht für Workloads bereit ist
- Automation Hub und Apps können mit Proxy-Setup nicht gestartet werden
- Fehler beim Hoch- oder Herunterladen von Daten im Objektspeicher
- Die Größenänderung eines PVC bewirkt keine Korrektur von Ceph
- Fehler beim Ändern der PVC-Größe
- Fehler beim Ändern der Größe von objectstore PVC
- Rook Ceph oder Looker-Pod hängen im Init-Status fest
- Fehler beim Anhängen eines StatefulSet-Volumes
- Fehler beim Erstellen persistenter Volumes
- Patch zur Rückgewinnung von Speicherplatz
- Sicherung aufgrund des Fehlers „TooManySnapshots“ fehlgeschlagen
- Alle Longhorn-Replikate sind fehlerhaft
- Festlegen eines Timeout-Intervalls für die Verwaltungsportale
- Aktualisieren Sie die zugrunde liegenden Verzeichnisverbindungen
- Die Authentifizierung funktioniert nach der Migration nicht
- Kinit: KDC kann für Realm <AD Domain> beim Abrufen der ersten Anmeldeinformationen nicht gefunden werden.
- Kinit: Keytab enthält keine geeigneten Schlüssel für *** beim Abrufen der ersten Anmeldeinformationen
- GSSAPI-Vorgang aufgrund eines ungültigen Statuscodes fehlgeschlagen
- Alarm für fehlgeschlagenen Kerberos-tgt-update-Auftrag erhalten
- SSPI-Anbieter: Server in Kerberos-Datenbank nicht gefunden
- Anmeldung eines AD-Benutzers aufgrund eines deaktivierten Kontos fehlgeschlagen
- ArgoCD-Anmeldung fehlgeschlagen
- Fehler beim Abrufen des Sandbox-Abbilds
- Pods werden nicht in der ArgoCD-Benutzeroberfläche angezeigt
- Redis-Testfehler
- RKE2-Server kann nicht gestartet werden
- Secret nicht im UiPath-Namespace gefunden
- ArgoCD wechselt nach der ersten Installation in den Status „In Bearbeitung“.
- Unerwartete Inkonsistenz; fsck manuell ausführen
- MongoDB-Pods in „CrashLoopBackOff“ oder ausstehende PVC-Bereitstellung nach Löschung
- MongoDB-Pod kann nicht von 4.4.4-ent auf 5.0.7-ent aktualisiert werden
- Fehlerhafte Dienste nach Clusterwiederherstellung oder Rollback
- Pods stecken in Init:0/X
- Prometheus im Status „Crash Loop Backoff“ mit Out-of-Memory-Fehler (OOM).
- Fehlende Ceph-rook-Metriken in Überwachungs-Dashboards
- Document Understanding erscheint nicht auf der linken Leiste der Automation Suite
- Fehlerstatus beim Erstellen einer Datenbeschriftungssitzung
- Fehlerstatus beim Versuch, eine ML-Fähigkeit bereitzustellen
- Migrationsauftrag schlägt in ArgoCD fehl
- Die Handschrifterkennung mit dem Intelligent Form Extractor funktioniert nicht oder arbeitet zu langsam
- Verwenden des Automation Suite-Diagnosetools
- Verwenden des Automation Suite Support Bundle-Tools
- Erkunden von Protokollen
Vorbereiten des Orchestrators
Um den Orchestrator von der eigenständigen Bereitstellung zur Automation Suite zu migrieren, müssen Sie Einstellungen und verschiedene Dateien aus der eigenständigen Installation sammeln und sie auf die Automation Suite-Installation anwenden.
web.config
, appSettings
, Speicher, NLog, Anmeldeinformationsspeicher, Verschlüsselungsschlüssel und Verschlüsselungsschlüssel pro Mandant vorbereiten.
Um den Orchestrator von der eigenständigen Bereitstellung zur Automation Suite zu migrieren, müssen Sie Einstellungen und verschiedene Dateien aus der eigenständigen Installation sammeln und sie auf die Automation Suite-Installation anwenden.
Bei der Installation kann zwar nur ein Teil der Einstellungen konfiguriert werden, nach der Installation sollten aber alle für die Konfiguration verfügbar sein.
- Um Einstellungen zur Installationszeit zu konfigurieren, fügen Sie sie in der Datei
cluster_config.json
hinzu; - Die Aktualisierung der Einstellungen nach Abschluss der Installation hängt vom Einstellungsumfang ab und ob eine Funktion für die Konfiguration aus App-of-Apps-Parametern verfügbar ist oder nicht.
uipath
unter orchestrator/plugins/nlog
oder orchestrator/plugins/securestore
gespeichert.
Sie können folgendermaßen benutzerdefinierte Konfiguration hinzufügen:
- durch Bearbeiten der Anwendungsparameter in ArgoCD (Parameter übersteuert);
- durch Bearbeiten der Dateien innerhalb der Kubernetes ConfigMap
orchestrator-customconfig
vom Namespaceuipath
.
web.config
-Einstellungen haben kein Äquivalent oder werden in der Automation Suite mit anderen Mechanismen implementiert.
Die folgenden Optionen müssen Sie konfigurieren:
security.requestFiltering.requestLimits.maxAllowedContentLength
security.requestFiltering.requestLimits.maxAllowedContentLength
Notieren Sie den Wert dieser Einstellung für später. Entscheiden Sie, ob Sie ihn in der Automation Suite konfigurieren müssen. Der Standardwert ist 300 MiB.
appSettings
oder secureAppSettings
der Konfigurationsdatei UiPath.Orchestrator.dll.config
vorgenommen wurden. Sie können benutzerdefinierte appSettings
(App-Einstellungen) und orchestrator-customconfig
zur Konfigurationsübersicht secureAppSettings
hinzufügen.
appSettings
der Konfigurationsdatei UiPath.Orchestrator.dll.config
alle geänderten oder hinzugefügten Einstellungen. Speichern Sie diese Einstellungen in einer .json
-Datei, sodass sie in späteren Schritten verfügbar sind.
Sie können jeden geschützten App-Konfigurationsabschnitt mit der Orchestrator-CLI-Option „protected-configuration“ entschlüsseln. Sie müssen nur die Einstellungen verwenden, die Sie geändert oder hinzugefügt haben und die in der Automation Suite weiterhin relevant sind.
appSettings.custom.json
erstellen, wie im folgenden Beispiel gezeigt:
{
"ExampleSetting.Enabled": true,
"ExampleSetting.Type": "BasicExample",
"ExampleSetting.Count": 3
}
{
"ExampleSetting.Enabled": true,
"ExampleSetting.Type": "BasicExample",
"ExampleSetting.Count": 3
}
Entscheiden Sie, was Sie für die Speichermigration benötigen und ob Ihre aktuelle Speicherkonfiguration gleich bleibt oder ob Sie stattdessen die Automation Suite den Speicher für Sie verwalten lassen möchten. Die Automation Suite bietet die Möglichkeit, die Blobs in Ceph zu speichern, was dann in allen Orchestrator-Pods verwendet werden kann. Bei einer Migration müssen Sie die vorhandenen Dateien in den aktuellen Blobspeicher kopieren.
rclone
in den Orchestrator kopieren. Wenn Sie Ceph verwenden, ist keine weitere Konfiguration erforderlich, da dies die Standardoption ist.
Storage.Location
ab. Da die Automation Suite auf Linux-Maschinen ausgeführt wird, können Sie sich nicht auf eine integrierte Authentifizierung für den Zugriff auf die Netzwerkfreigabe verlassen und benötigen daher die Anmeldeinformationen eines Kontos, das darauf zugreifen kann.
Storage.Location
und Storage.Type
zur Datei appSettings.custom.json
hinzufügen.
Sie können die folgenden Anpassungen an NLog vornehmen:
- vorhandene Ziele ändern
- neue Ziele hinzufügen
- NLog-Erweiterungen hinzufügen
Überprüfen Sie den NLog-Abschnitt der Konfigurationsdatei und erstellen Sie die benutzerdefinierte NLog-Konfiguration. Um die Speicherung von Roboterprotokollen in Elasticsearch zu aktivieren, können Sie den Benutzernamen, das Kennwort und den URI als Automation Suite-Parameter angeben, sodass das Ziel automatisch konfiguriert wird. Um benutzerdefinierte Szenarien für Roboterprotokolle zu aktivieren, müssen Sie das Ziel manuell konfigurieren.
Falls NLog-Erweiterungen benötigt werden, erstellen Sie einen Ordner mit allen Erweiterungen und deren Abhängigkeiten.
nlogextensions
genannt werden. Standardmäßig lädt der Orchestrator die folgenden Erweiterungen, sodass Sie sie nicht in den Ordner oder die NLog-Konfiguration aufnehmen müssen:
NLog.Targets.ElasticSearch
UiPath.Orchestrator.Logs.Elasticsearch
Microsoft.ApplicationInsights.NLogTarget
NLog.Extensions.AzureEventHub
NLog.Targets.ElasticSearch
UiPath.Orchestrator.Logs.Elasticsearch
Microsoft.ApplicationInsights.NLogTarget
NLog.Extensions.AzureEventHub
nlog.custom.config
mit den Standardabschnitten: Erweiterungen, Ziele und Regeln (extensions, targets, rules).
assemblyFile
angeben sowie den Pfad der Assembly aus Sicht des Ordners nlogextensions
.
/opt/app-root/app/nlog.config.json
definiert.
nlog.custom.config
, die Protokolle in Azure Blob schreibt:
{
"NLog": {
"autoReload": false,
"throwConfigExceptions": false,
"internalLogLevel": "Warn",
"internalLogToConsole": true,
"default-wrapper": {
"type": "UiPrettyExceptionWrapper"
},
"extensions": [
{ "assembly": "UiPath.Orchestrator.Logs.DatabaseBulk.NLogTarget" }
],
"targets": {
"robotElasticBuffer": {
"type": "BufferingWrapper",
"flushTimeout": 5000,
"target": {
"type": "ElasticSearch",
"name": "robotElastic",
"requireAuth": false,
"uri": "",
"username": "",
"password": "",
"index": "${event-properties:item=indexName}-${date:format=yyyy.MM}",
"documentType": "logEvent",
"includeAllProperties": true,
"layout": "${message}",
"excludedProperties": "agentSessionId,tenantId,indexName"
}
},
"serverElasticBuffer": {
"type": "BufferingWrapper",
"flushTimeout": 5000,
"target": {
"type": "ElasticSearch",
"name": "serverElastic",
"requireAuth": false,
"uri": "",
"username": "",
"password": "",
"index": "serverdiagnostics-${date:format=yyyy.MM}",
"documentType": "logEvent",
"includeAllProperties": true,
"layout": "${machinename} ${message}"
}
},
"database": {
"type": "AsyncWrapper",
"overflowAction": "Block",
"queueLimit": 100,
"fullBatchSizeWriteLimit": 2,
"batchSize": 60,
"timeToSleepBetweenBatches": 1,
"optimizeBufferReuse": true,
"target": {
"type": "DatabaseBulk",
"connectionString": "${ui-connection-strings:item=Default}",
"tableName": "[dbo].[Logs]",
"batchSize": "20",
"parameters": [
{
"dbType": "BigInt",
"name": "OrganizationUnitId",
"propertyItem": "organizationUnitId"
},
{
"dbType": "Int",
"name": "TenantId",
"propertyItem": "tenantId"
},
{
"dbType": "DateTime",
"name": "TimeStamp",
"layout": "${date:format=yyyy-MM-dd HH\\:mm\\:ss.fff}"
},
{
"dbType": "Int",
"name": "Level",
"propertyItem": "levelOrdinal"
},
{
"dbType": "NVarChar",
"name": "WindowsIdentity",
"propertyItem": "windowsIdentity"
},
{
"dbType": "NVarChar",
"name": "ProcessName",
"propertyItem": "processName"
},
{
"dbType": "UniqueIdentifier",
"name": "JobKey",
"propertyItem": "jobId"
},
{
"dbType": "NVarChar",
"name": "Message"
},
{
"dbType": "NVarChar",
"name": "RawMessage",
"propertyItem": "rawMessage"
},
{
"dbType": "NVarChar",
"name": "RobotName",
"propertyItem": "robotName"
},
{
"dbType": "BigInt",
"name": "MachineId",
"propertyItem": "machineId"
},
{
"dbType": "UniqueIdentifier",
"name": "UserKey",
"propertyItem": "userKey"
},
{
"dbType": "NVarChar",
"name": "HostMachineName",
"propertyItem": "machineName"
}
]
}
},
"monitoring": {
"type": "AsyncWrapper",
"overflowAction": "Block",
"queueLimit": 100,
"fullBatchSizeWriteLimit": 2,
"batchSize": 60,
"optimizeBufferReuse": true,
"target": {
"type": "DatabaseBulk",
"connectionString": "${ui-connection-strings:item=Default}",
"tableName": "[stats].[ErrorLogs]",
"batchSize": "20",
"parameters": [
{
"dbType": "BigInt",
"name": "OrganizationUnitId",
"propertyItem": "organizationUnitId"
},
{
"dbType": "BigInt",
"name": "TenantId",
"propertyItem": "tenantId"
},
{
"dbType": "DateTime",
"name": "TimeStamp",
"layout": "${date:format=yyyy-MM-dd HH\\:mm\\:ss.fff}"
},
{
"dbType": "UniqueIdentifier",
"name": "CorrelationId",
"propertyItem": "Correlation"
},
{
"dbType": "Int",
"name": "Source",
"propertyItem": "logSource"
},
{
"dbType": "Int",
"name": "Level",
"propertyItem": "levelOrdinal"
},
{
"dbType": "BigInt",
"name": "RobotId",
"propertyItem": "robotId"
},
{
"dbType": "NVarChar",
"name": "ProcessName",
"propertyItem": "processName"
},
{
"dbType": "UniqueIdentifier",
"name": "JobKey",
"propertyItem": "jobId"
},
{
"dbType": "BigInt",
"name": "QueueDefinitionId",
"propertyItem": "queueId"
},
{
"dbType": "NVarChar",
"name": "Message"
}
]
}
},
"insightsRobotLogs": {
"type": "AsyncWrapper",
"overflowAction": "Block",
"queueLimit": 100,
"fullBatchSizeWriteLimit": 2,
"batchSize": 60,
"optimizeBufferReuse": true,
"target": {
"type": "DatabaseBulk",
"connectionString": "${ui-connection-strings:item=Insights}",
"tableName": "[dbo].[RobotLogs]",
"batchSize": "20",
"parameters": [
{
"dbType": "BigInt",
"name": "OrganizationUnitId",
"propertyItem": "organizationUnitId"
},
{
"dbType": "Int",
"name": "TenantId",
"propertyItem": "tenantId"
},
{
"dbType": "DateTime",
"name": "TimeStamp",
"layout": "${date:format=yyyy-MM-dd HH\\:mm\\:ss.fff}"
},
{
"dbType": "NVarChar",
"name": "WindowsIdentity",
"propertyItem": "windowsIdentity"
},
{
"dbType": "NVarChar",
"name": "ProcessName",
"propertyItem": "processName"
},
{
"dbType": "UniqueIdentifier",
"name": "JobKey",
"propertyItem": "jobId"
},
{
"dbType": "NVarChar",
"name": "RawMessage",
"propertyItem": "rawMessage"
},
{
"dbType": "NVarChar",
"name": "RobotName",
"propertyItem": "robotName"
},
{
"dbType": "BigInt",
"name": "MachineId",
"propertyItem": "machineId"
},
{
"dbType": "NVarChar",
"name": "Message"
},
{
"dbType": "Int",
"name": "LevelOrdinal",
"propertyItem": "levelOrdinal"
},
{
"dbType": "Int",
"name": "NumCustomFields",
"layout": "${ui-robot-logs-num-custom-fields}"
}
]
}
},
"stdout": {
"type": "Console",
"layout": {
"type": "JsonLayout",
"includeAllProperties": true,
"Attributes": [
{
"name": "ts",
"layout": "${longdate}"
},
{
"name": "traceId",
"layout": "${aspnet-TraceIdentifier}"
},
{
"name": "level",
"layout": "${level:upperCase=true}"
},
{
"name": "logger",
"layout": "${logger}"
},
{
"name": "message",
"layout": "${message}"
},
{
"name": "exception",
"layout": "${onexception:${ui-pretty-exception}}"
}
]
}
}
},
"rules": {
"10_Robot_Insights": {
"logger": "Robot.*",
"ruleName": "insightsRobotLogsRule",
"minLevel": "Info",
"writeTo": "insightsRobotLogs",
"enabled": false,
"final": false,
"filters": {
"defaultAction": "Ignore",
"when": {
"condition": "level >= LogLevel.Error or ends-with('${message}',' execution ended')",
"action": "Log"
}
}
},
"20_Robot_Primary": {
"logger": "Robot.*",
"ruleName": "primaryRobotLogsTarget",
"writeTo": "database",
"minLevel": "Trace",
"maxLevel": "Fatal",
"final": true
},
"30_Business_Exceptions": {
"logger": "BusinessException.*",
"minLevel": "Info",
"writeTo": "",
"enabled": true,
"final": true
},
"40_Monitoring": {
"logger": "Monitoring.*",
"minLevel": "Warn",
"maxLevel": "Fatal",
"writeTo": "monitoring",
"final": true
},
"70_Final": {
"logger": "*",
"minLevel": "Info",
"maxLevel": "Fatal",
"writeTo": "stdout",
"final": false
}
}
}
}
{
"NLog": {
"autoReload": false,
"throwConfigExceptions": false,
"internalLogLevel": "Warn",
"internalLogToConsole": true,
"default-wrapper": {
"type": "UiPrettyExceptionWrapper"
},
"extensions": [
{ "assembly": "UiPath.Orchestrator.Logs.DatabaseBulk.NLogTarget" }
],
"targets": {
"robotElasticBuffer": {
"type": "BufferingWrapper",
"flushTimeout": 5000,
"target": {
"type": "ElasticSearch",
"name": "robotElastic",
"requireAuth": false,
"uri": "",
"username": "",
"password": "",
"index": "${event-properties:item=indexName}-${date:format=yyyy.MM}",
"documentType": "logEvent",
"includeAllProperties": true,
"layout": "${message}",
"excludedProperties": "agentSessionId,tenantId,indexName"
}
},
"serverElasticBuffer": {
"type": "BufferingWrapper",
"flushTimeout": 5000,
"target": {
"type": "ElasticSearch",
"name": "serverElastic",
"requireAuth": false,
"uri": "",
"username": "",
"password": "",
"index": "serverdiagnostics-${date:format=yyyy.MM}",
"documentType": "logEvent",
"includeAllProperties": true,
"layout": "${machinename} ${message}"
}
},
"database": {
"type": "AsyncWrapper",
"overflowAction": "Block",
"queueLimit": 100,
"fullBatchSizeWriteLimit": 2,
"batchSize": 60,
"timeToSleepBetweenBatches": 1,
"optimizeBufferReuse": true,
"target": {
"type": "DatabaseBulk",
"connectionString": "${ui-connection-strings:item=Default}",
"tableName": "[dbo].[Logs]",
"batchSize": "20",
"parameters": [
{
"dbType": "BigInt",
"name": "OrganizationUnitId",
"propertyItem": "organizationUnitId"
},
{
"dbType": "Int",
"name": "TenantId",
"propertyItem": "tenantId"
},
{
"dbType": "DateTime",
"name": "TimeStamp",
"layout": "${date:format=yyyy-MM-dd HH\\:mm\\:ss.fff}"
},
{
"dbType": "Int",
"name": "Level",
"propertyItem": "levelOrdinal"
},
{
"dbType": "NVarChar",
"name": "WindowsIdentity",
"propertyItem": "windowsIdentity"
},
{
"dbType": "NVarChar",
"name": "ProcessName",
"propertyItem": "processName"
},
{
"dbType": "UniqueIdentifier",
"name": "JobKey",
"propertyItem": "jobId"
},
{
"dbType": "NVarChar",
"name": "Message"
},
{
"dbType": "NVarChar",
"name": "RawMessage",
"propertyItem": "rawMessage"
},
{
"dbType": "NVarChar",
"name": "RobotName",
"propertyItem": "robotName"
},
{
"dbType": "BigInt",
"name": "MachineId",
"propertyItem": "machineId"
},
{
"dbType": "UniqueIdentifier",
"name": "UserKey",
"propertyItem": "userKey"
},
{
"dbType": "NVarChar",
"name": "HostMachineName",
"propertyItem": "machineName"
}
]
}
},
"monitoring": {
"type": "AsyncWrapper",
"overflowAction": "Block",
"queueLimit": 100,
"fullBatchSizeWriteLimit": 2,
"batchSize": 60,
"optimizeBufferReuse": true,
"target": {
"type": "DatabaseBulk",
"connectionString": "${ui-connection-strings:item=Default}",
"tableName": "[stats].[ErrorLogs]",
"batchSize": "20",
"parameters": [
{
"dbType": "BigInt",
"name": "OrganizationUnitId",
"propertyItem": "organizationUnitId"
},
{
"dbType": "BigInt",
"name": "TenantId",
"propertyItem": "tenantId"
},
{
"dbType": "DateTime",
"name": "TimeStamp",
"layout": "${date:format=yyyy-MM-dd HH\\:mm\\:ss.fff}"
},
{
"dbType": "UniqueIdentifier",
"name": "CorrelationId",
"propertyItem": "Correlation"
},
{
"dbType": "Int",
"name": "Source",
"propertyItem": "logSource"
},
{
"dbType": "Int",
"name": "Level",
"propertyItem": "levelOrdinal"
},
{
"dbType": "BigInt",
"name": "RobotId",
"propertyItem": "robotId"
},
{
"dbType": "NVarChar",
"name": "ProcessName",
"propertyItem": "processName"
},
{
"dbType": "UniqueIdentifier",
"name": "JobKey",
"propertyItem": "jobId"
},
{
"dbType": "BigInt",
"name": "QueueDefinitionId",
"propertyItem": "queueId"
},
{
"dbType": "NVarChar",
"name": "Message"
}
]
}
},
"insightsRobotLogs": {
"type": "AsyncWrapper",
"overflowAction": "Block",
"queueLimit": 100,
"fullBatchSizeWriteLimit": 2,
"batchSize": 60,
"optimizeBufferReuse": true,
"target": {
"type": "DatabaseBulk",
"connectionString": "${ui-connection-strings:item=Insights}",
"tableName": "[dbo].[RobotLogs]",
"batchSize": "20",
"parameters": [
{
"dbType": "BigInt",
"name": "OrganizationUnitId",
"propertyItem": "organizationUnitId"
},
{
"dbType": "Int",
"name": "TenantId",
"propertyItem": "tenantId"
},
{
"dbType": "DateTime",
"name": "TimeStamp",
"layout": "${date:format=yyyy-MM-dd HH\\:mm\\:ss.fff}"
},
{
"dbType": "NVarChar",
"name": "WindowsIdentity",
"propertyItem": "windowsIdentity"
},
{
"dbType": "NVarChar",
"name": "ProcessName",
"propertyItem": "processName"
},
{
"dbType": "UniqueIdentifier",
"name": "JobKey",
"propertyItem": "jobId"
},
{
"dbType": "NVarChar",
"name": "RawMessage",
"propertyItem": "rawMessage"
},
{
"dbType": "NVarChar",
"name": "RobotName",
"propertyItem": "robotName"
},
{
"dbType": "BigInt",
"name": "MachineId",
"propertyItem": "machineId"
},
{
"dbType": "NVarChar",
"name": "Message"
},
{
"dbType": "Int",
"name": "LevelOrdinal",
"propertyItem": "levelOrdinal"
},
{
"dbType": "Int",
"name": "NumCustomFields",
"layout": "${ui-robot-logs-num-custom-fields}"
}
]
}
},
"stdout": {
"type": "Console",
"layout": {
"type": "JsonLayout",
"includeAllProperties": true,
"Attributes": [
{
"name": "ts",
"layout": "${longdate}"
},
{
"name": "traceId",
"layout": "${aspnet-TraceIdentifier}"
},
{
"name": "level",
"layout": "${level:upperCase=true}"
},
{
"name": "logger",
"layout": "${logger}"
},
{
"name": "message",
"layout": "${message}"
},
{
"name": "exception",
"layout": "${onexception:${ui-pretty-exception}}"
}
]
}
}
},
"rules": {
"10_Robot_Insights": {
"logger": "Robot.*",
"ruleName": "insightsRobotLogsRule",
"minLevel": "Info",
"writeTo": "insightsRobotLogs",
"enabled": false,
"final": false,
"filters": {
"defaultAction": "Ignore",
"when": {
"condition": "level >= LogLevel.Error or ends-with('${message}',' execution ended')",
"action": "Log"
}
}
},
"20_Robot_Primary": {
"logger": "Robot.*",
"ruleName": "primaryRobotLogsTarget",
"writeTo": "database",
"minLevel": "Trace",
"maxLevel": "Fatal",
"final": true
},
"30_Business_Exceptions": {
"logger": "BusinessException.*",
"minLevel": "Info",
"writeTo": "",
"enabled": true,
"final": true
},
"40_Monitoring": {
"logger": "Monitoring.*",
"minLevel": "Warn",
"maxLevel": "Fatal",
"writeTo": "monitoring",
"final": true
},
"70_Final": {
"logger": "*",
"minLevel": "Info",
"maxLevel": "Fatal",
"writeTo": "stdout",
"final": false
}
}
}
}
nlogextensions
wird in den Objektspeicher an dem bekannten Plugin-Speicherort kopiert. Das Orchestrator-Konfiguratortool kann dies automatisch tun und gleichzeitig die NLog-Konfiguration aktualisieren. Das Skript ändert automatisch nlog.custom.config
, um jedes assemblyFile aus dem Erweiterungsarray mit dem Präfix /var/orchestrator/plugins/nlog/
zu versehen, wenn nicht bereits ein Präfix vorhanden ist.
Sie können benutzerdefinierte Plugins für Anmeldeinformationsspeicher zur Automation Suite migrieren. Aktualisieren Sie dazu die Konfiguration in der Konfigurationsübersicht und kopieren Sie die Plugins-Assemblys in den entsprechenden Objektspeicher-Bucket.
- Die Plugins müssen unter Linux funktionieren.
- Die Plugins dürfen in keinen Speicher außer
/tmp
schreiben.
Die folgenden Anmeldeinformationsspeicher-Plugins werden automatisch für den Orchestrator in der Automation Suite bereitgestellt:
UiPath.Orchestrator.AzureKeyVault.SecureStore.dll
-
UiPath.Orchestrator.SecureStore.CyberArkCCP.dll
securestoreplugins
.
appSettings.custom.json
wie folgt hinzu:
-
Um Standard-Plugins zu deaktivieren, fügen Sie die Konfiguration
Plugins.SecureStores.Default
mit einem leeren Zeichenfolgenwert inappSettings.custom.json
hinzu; -
Fügen Sie alle benutzerdefinierten Plugins zur Einstellung
Plugins.SecureStores
getrennt durch;
inappSettings.custom.json
hinzu; -
Fügen Sie wie folgt benutzerdefinierte Plugin-Einstellungen hinzu:
Plugins.SecureStores.<<FriendlyName>>.<<SettingName>>
.
securestoreplugins
wird in den Objektspeicher an dem bekannten Plugin-Speicherort kopiert.
Plugins.SecureStores
werden aus diesem Ordner geladen.
Plugins.SecureStore.Default
werden aus dem Plugins-Ordner in den Ordner der Orchestrator-App geladen.
Standardmäßig generiert der Orchestrator zum Zeitpunkt der Installation einen Verschlüsselungsschlüssel, der für die vertraulichen Informationen in der Datenbank verwendet werden soll. Sie müssen diesen Schlüssel migrieren, wenn Sie eine Datenbank auf einer neuen Orchestrator-Bereitstellung wiederverwenden möchten.
Führen Sie die folgenden Schritte aus, um den Verschlüsselungsschlüssel abzurufen:
- Verschlüsseln Sie bei Bedarf den Abschnitt
secureAppSettings
der DateiUiPath.Orchestrator.dll.config
. Weitere Informationen finden Sie unter Verschlüsseln von UiPath.Orchestrator.dll.config-Abschnitten. - Rufen Sie den Verschlüsselungsschlüssel von
UiPath.Orchestrator.dll.config
ab. Weitere Informationen finden Sie unter Verschlüsselungsschlüssel.
Das Verschlüsselungsschlüsselzertifikat wird im Windows-Zertifikatspeicher installiert. Sie müssen das Zertifikat für die Automation Suite-Umgebung bereitstellen, damit es für die Orchestrator-Pods verfügbar wird.
CertificatesStoreLocation
und Azure.KeyVault.CertificateThumbprint
werden in der Automation Suite nicht mehr benötigt, Sie können jedoch bei Bedarf CertificatePassword
verwenden.
Führen Sie die folgenden Schritte aus:
- Überprüfen Sie die appSettings und rufen Sie die
AzureKeyVault.*
-Einstellungen ab. - Speichern Sie die
Azure.KeyVault.VaultAddress
, dieAzure.KeyVault.ClientId
und dieAzure.KeyVault.DirectoryId
für die spätere Verwendung. - Rufen Sie das Zertifikat und ggf. das Zertifikatkennwort ab.