- Vue d'ensemble (Overview)
- Prérequis
- Pré-installation
- Préparation de l'installation
- Téléchargement des packages d'installation
- Configuration du registre conforme à OCI
- Octroi d'autorisations d'installation avec des rôles de cluster
- Octroi d'autorisations d'installation sans rôles de cluster
- Installation et configuration du service Mesh
- Installer et configurer l'outil GitOps
- Installation de l'opérateur de clés secrètes externes
- Déploiement de Redis via OperatorHub
- Application de diverses configurations
- Exécution de uipathctl
- Installation
- Post-installation
- Migration et mise à niveau
- Surveillance et alerte
- Administration du cluster
- Configuration spécifique au produit
- Configuration avancée d'Orchestrator
- Configuration des paramètres d'Orchestrator
- Configuration des paramètres d'application
- Configuration de la taille maximale de la requête
- Remplacement de la configuration du stockage au niveau du cluster
- Configuration de NLog
- Enregistrement des journaux du robot dans Elasticsearch
- Configuration des magasins d'informations d'identification
- Configuration de la clé de chiffrement par locataire
- Nettoyer la base de données Orchestrator
- Ignorer l’installation de la bibliothèque hôte
- Rotation des informations d’identification de stockage d’objets blob
- Désactivation de l'utilisation d'URL pré-signées lors du téléchargement de données vers le stockage Amazon S3
- Configuration de la sécurité de l'application de processus
- Configurer une authentification Kerberos avec l’authentification MSSQL de base pour Process Mining
- AI Trust Layer
- Résolution des problèmes
- Comment désinstaller Automation Suite
- Comment résoudre l'échec de la vérification de la connectivité préalable sur OpenShift 4.16–4.18
- Comment déployer Insights dans un cluster compatible FIPS
- Comment désactiver l’activation automatique CDI dans l’opérateur GPU Nvidia
- Comment encoder en URL un mot de passe de chaîne de connexion SQL
- 500 erreurs et limitation de débit sur les requêtes S3 dans ODF
- Résolution des problèmes de clés secrètes externes
- Configuration des tolérances des pilotes CSI pour ODF 4.20
- Résolution des problèmes de Temporel en tant que service
- Les pods AI Center et Document Understanding ne démarrent pas avec la vérification du certificat TLS activée
- Studio Desktop ne peut pas charger les connecteurs et activités Integration Service
- Erreurs de validation du certificat TLS
- Atténuation manuelle de la politique réseau ArgoCD
- Configurer les requêtes et les limites de ressources pour les charges de travail créées par uipathctl
Configuration de NLog
Ajoutez des extensions NLog et configurez des cibles de journalisation avancées dans Orchestrator sur OpenShift.
Ajout d'extensions NLog
Orchestrator charge les extensions suivantes par défaut, vous n'avez donc pas besoin de les inclure dans le dossier ou la configuration NLog :
NLog.Targets.ElasticSearchUiPath.Orchestrator.Logs.ElasticsearchMicrosoft.ApplicationInsights.NLogTargetNLog.Extensions.AzureEventHub
Seules les extensions compatibles Linux peuvent être utilisées dans cette configuration. Assurez-vous donc que l'extension NLog choisie respecte cette règle.
Pour que l’extension soit disponible, elle doit être téléchargée sur le stockage du cluster. L’outil de ligne de commande uipathctl peut le faire via la commande uipathctl config orchestrator upload :
uipathctl config orchestrator upload --nlog-extensions-directory /path/to/extensions/directory
uipathctl config orchestrator upload --nlog-extensions-directory /path/to/extensions/directory
Si vous utilisez une configuration de stockage externe au niveau du cluster, vous devez l'indiquer en incluant le paramètre --is-external-storage.
Configuration avancée de NLog
Création de la configuration avancée de NLog
-
Créez le fichier
nlog.config.jsoncontenant les sections standards : extensions, cibles et règles.La section d'extensions est un tableau d'éléments qui spécifient les assemblys d'extension, via
assemblyFile, et le chemin de l'assembly.Si des plug-ins nlog personnalisés ont été chargés (comme décrit dans Ajout d’extensions NLog), ils seront référencés dans la section
extensions. -
Configurez la cible et la règle dans le fichier
nlog.config.json. -
Appliquez le fichier
nlog.config.jsonen utilisant l'outil de ligne de commandeuipathctl:uipathctl config orchestrator update-config --nlog-config nlog.config.jsonuipathctl config orchestrator update-config --nlog-config nlog.config.jsonImportant :Cette action remplace la configuration NLog personnalisée existante. Vous pouvez vérifier quelle est la configuration existante en utilisant cette commande :
uipathctl config orchestrator get-config --nlog-configuipathctl config orchestrator get-config --nlog-config
Exemple de fichier nlog.config.json qui écrit des journaux dans Azure Blob :
{ "NLog": {
"extensions": [
{ "assemblyFile": "NLog.Extensions.AzureBlobStorage.dll" }
],
"targets": {
"azureBlob": {
"type": "AzureBlobStorage",
"connectionString": "DefaultEndpointsProtocol=https;AccountName=test;AccountKey=key;EndpointSuffix=core.windows.net",
"container": "orchestratorlogs",
"blobName": "${date:format=yyyy-MM-dd hh.mm}",
"layout": {
"type": "JsonLayout",
"includeAllProperties": true,
"Attributes": [
{"name": "ts","layout": "${longdate}"},
{"name": "level","layout": "${level:upperCase=true}"},
{"name": "logger","layout": "${logger}"},
{"name": "message","layout": "${message}"},
{"name": "exception","layout": "${onexception:${ui-pretty-exception}}"}
]
}
}
},
"rules": { "70_Final": { "writeTo": "stdout,azureBlob" } }
}
}
{ "NLog": {
"extensions": [
{ "assemblyFile": "NLog.Extensions.AzureBlobStorage.dll" }
],
"targets": {
"azureBlob": {
"type": "AzureBlobStorage",
"connectionString": "DefaultEndpointsProtocol=https;AccountName=test;AccountKey=key;EndpointSuffix=core.windows.net",
"container": "orchestratorlogs",
"blobName": "${date:format=yyyy-MM-dd hh.mm}",
"layout": {
"type": "JsonLayout",
"includeAllProperties": true,
"Attributes": [
{"name": "ts","layout": "${longdate}"},
{"name": "level","layout": "${level:upperCase=true}"},
{"name": "logger","layout": "${logger}"},
{"name": "message","layout": "${message}"},
{"name": "exception","layout": "${onexception:${ui-pretty-exception}}"}
]
}
}
},
"rules": { "70_Final": { "writeTo": "stdout,azureBlob" } }
}
}
Exemple de fichier nlog.config.json qui écrit les journaux du robot dans Splunk :
{
"Nlog": {
"extensions": [
{ "assemblyFile": "NLog.Targets.Splunk.dll" },
{ "assembly": "UiPath.Orchestrator.Logs.DatabaseBulk.NLogTarget" }
],
"targets": {
"Splunk": {
"type": "AsyncWrapper",
"overflowAction": "Discard",
"queueLimit": 10000,
"batchSize": 200,
"timeToSleepBetweenBatches": 1,
"target": {
"type": "SplunkHttpEventCollector",
"serverUrl": "http://splunk.example.com",
"token": "splunk-token",
"channel": "",
"source": "${logger}",
"sourceType": "_json",
"index": "uipath",
"retriesOnError": "0",
"batchSizeBytes": "0",
"batchSizeCount": "0",
"includeEventProperties": "true",
"includePositionalParameters": "true",
"includeMdlc": "true",
"maxConnectionsPerServer": "10",
"ignoreSslErrors": "false",
"useProxy": "false",
"proxyUrl": "",
"proxyPassword": ""
}
}
},
"rules": {
"20_Robot_Primary": { "writeTo": "Splunk,database,insightsRobotLogs" }
}
}
}
{
"Nlog": {
"extensions": [
{ "assemblyFile": "NLog.Targets.Splunk.dll" },
{ "assembly": "UiPath.Orchestrator.Logs.DatabaseBulk.NLogTarget" }
],
"targets": {
"Splunk": {
"type": "AsyncWrapper",
"overflowAction": "Discard",
"queueLimit": 10000,
"batchSize": 200,
"timeToSleepBetweenBatches": 1,
"target": {
"type": "SplunkHttpEventCollector",
"serverUrl": "http://splunk.example.com",
"token": "splunk-token",
"channel": "",
"source": "${logger}",
"sourceType": "_json",
"index": "uipath",
"retriesOnError": "0",
"batchSizeBytes": "0",
"batchSizeCount": "0",
"includeEventProperties": "true",
"includePositionalParameters": "true",
"includeMdlc": "true",
"maxConnectionsPerServer": "10",
"ignoreSslErrors": "false",
"useProxy": "false",
"proxyUrl": "",
"proxyPassword": ""
}
}
},
"rules": {
"20_Robot_Primary": { "writeTo": "Splunk,database,insightsRobotLogs" }
}
}
}
Dimensionner le Splunk queueLimit
La file d’attente ), le retour de Splunk lors des ralentissements. Dimensionnez-le à votre débit maximal, et non à votre moyenne:
queueLimit = peak_logs_per_sec × acceptable_backlog_seconds
queueLimit = peak_logs_per_sec × acceptable_backlog_seconds
| Déploiement | Taux de pic | tolérance au retour | LimiteFileAttente |
|---|---|---|---|
| Petite | ~10 journaux/sec | 60 s | 600 |
| Moyenne | ~35 journaux/sec | 300 s | 10000 |
| Grande | Environ 200 journaux/sec | 60 s | 12000 |
Meilleures pratiques pour les cibles Splunk
- Utilisez
overflowAction: Discardpour les cibles secondaires. Les cibles de journaux externes telles que Splunk sont généralement des destinations d’analyse ou d’observabilité, la base de données Orchestrator est la source de la vérité. Si la cible externe ne peut pas se tenir informée, il est préférable de déposer sa copie plutôt que de bloquer les fils d’application. - Réserver
overflowAction: Blockpour les cibles où la perte n'est pas acceptable.Blockempêche la perte d'événements, mais n'empêche pas le blocage. Lorsque la file d'attente se remplit sous une charge importante, elle revient au même comportement de blocage du fil de discussion queBufferingWrapper. Utilisez-le uniquement lorsque la cible externe est une exigence de conformité ou d’audit, et dimensionnezqueueLimitgénéreusement pour faire correspondre le débit de pic. - Conservez toujours
databasedans la règlewriteToavec une cible externe. Cela garantit qu'aucun journal de robot n'est définitivement perdu, quels que soient la disponibilité ou les performances de la cible externe. - Vider avant l’arrêt.
AsyncWrappercontient les événements dans une file d'attente en mémoire. Assurez-vous que les cibles NLog sont vides lors de l'arrêt en douceur pour éviter de perdre la fin de la file d'attente lorsque le processus se termine.
Mise à jour de la configuration avancée de NLog
Les commandes uipathctl nécessaires à la mise à jour de la configuration NLog sont :
uipathctl config orchestrator get-config --nlog-config- Exporte la configuration actuelle dans un fichier json de paire clé-valeur, prête à être modifiée.uipathctl config orchestrator update-config --nlog-config nlog.config.json: met à jour la configuration avec vos modifications.
- Exportez la configuration NLog personnalisée actuelle vers un fichier json à l'aide de cette commande :
uipathctl config orchestrator get-config --nlog-config > nlog.config.jsonuipathctl config orchestrator get-config --nlog-config > nlog.config.json - Modifiez le fichier
nlog.config.jsonexporté selon vos besoins. Vous pouvez ajouter, supprimer ou modifier l'un de ses paramètres.Remarque :Vous devrez exporter le fichier à nouveau chaque fois que vous devrez apporter une modification, car la mise à jour aura pour effet d’écraser tous les paramètres NLog.
- Mettez à jour la configuration NLog à l'aide de cette commande :
uipathctl config orchestrator update-config --nlog-config nlog.config.json orchestrator config updateduipathctl config orchestrator update-config --nlog-config nlog.config.json orchestrator config updated