- Démarrage
- Meilleures pratiques
- Modélisation de l'organisation dans Orchestrator
- Gestion de grands déploiements
- Meilleures pratiques d'automatisation
- Optimisation de l'infrastructure Unattended à l'aide de modèles de machine
- Organisation des ressources avec des balises
- Réplica Orchestrator en lecture seule
- Exportation des grilles dans l'arrière-plan
- Locataire
- À propos du contexte du locataire
- Recherche de ressources dans un locataire
- Gestion des Robots
- Connexion des Robots à Orchestrator
- Enregistrement des identifiants du Robot dans CyberArk
- Stockage des mots de passe de l’Unattended Robot dans Azure Key Vault (lecture seule)
- Stockage des informations d’identification de l’Unattended Robot dans HashiCorp Vault (lecture seule)
- Stockage des informations d'identification du robot Unattended dans AWS Secrets Manager (lecture seule)
- Suppression des sessions Unattended déconnectées et qui ne répondent pas
- Authentification du Robot
- Authentification du Robot avec les informations d'identification du client
- Authentification par carte à puce
- Configurer les capacités d’automatisation
- Audit
- Paramètres - Niveau du locataire
- Service de catalogue de ressources
- Contexte des dossiers
- Automatisations
- Processus (Processes)
- Tâches (Jobs)
- Déclencheurs (Triggers)
- Journaux (Logs)
- À propos des journaux
- Gestion des journaux dans Orchestrator
- Niveaux de journalisation
- Journaux d'Orchestrator
- Surveillance
- Files d'attente (Queues)
- Actifs
- Compartiments de stockage
- Tests d'Orchestrator
- Autres configurations
- Intégrations
- Administration de l'hôte
- À propos du niveau de l’hôte
- Gestion des administrateurs système
- Gestion des locataires
- Configuration des notifications par e-mail du système
- Journaux d'audit pour le portail hôte
- Mode de Maintenance
- Administration de l'organisation
- Résolution des problèmes

Guide de l'utilisateur d'Orchestrator
Journaux d'Orchestrator
Journaux de diagnostic d'Orchestrator
Il s’agit de journaux de diagnostic générés par UiPath® Orchestrator concernant son comportement.
Activation des journaux de diagnostic d'UiPath Orchestrator
Les journaux de diagnostic d'UiPath Orchestrator sont activés une fois UiPath Orchestrator correctement installé. Ils reposent sur l'infrastructure de NLog et leur configuration est disponible dans le fichier UiPath.Orchestrator.dll.config, sous la balise <nlog>.
Notez que les exceptions du serveur d'Orchestrator et la pile de trace dans la fenêtre Détails de la tâche (Job Details), sont consignées en anglais, quelle que soit la langue choisie par l'utilisateur.
Cibles des journaux de diagnostic d'UiPath Orchestrator
Tous les journaux des applications sont consignés dans l'Observateur d'événements au niveau de journalisation minimal Information. Ceci est indiqué par les lignes suivantes dans le fichier UiPath.Orchestrator.dll.config :
<target xsi:type="EventLog" name="eventLog" layout="${message}" source="Orchestrator" log="Application" />
<logger name="*" minlevel="Info" writeTo="eventLog" />
Les journaux générés par le Planificateur de tâches (Jobs Scheduler) ont une cible et un enregistreur distincts :
<target xsi:type="EventLog" name="eventLogQuartz" layout="[Quartz] ${message} ${onexception: ${exception:format=tostring}}" source="Orchestrator" log="Application" />
<logger name="Orchestrator.Quartz.*" minlevel="Info" writeTo="eventLogQuartz" />
Exemple :
Could not create Quartz Job
Les journaux générés par les règles métier et autres règles de validation ont une cible et un enregistreur distincts :
<target xsi:type="EventLog" name="businessExceptionEventLog" layout="${message}${onexception:${exception:format=tostring:maxInnerExceptionLevel=5:innerFormat=tostring}}" source="Orchestrator.BusinessException" log="Application" />
<logger name="BusinessException.*" minlevel="Info" writeTo="businessExceptionEventLog" final="true" />
Ces types de messages d’erreur sont consignés dans l'observateur d’événements dans les cas suivants :
- les problèmes de validation tels que :
Invalid username/email address or password.The machine name DOC is already taken
- les conflits métier tels que :
License expired!The floating robot's session is already active on machine ROQADOCS06!The robots already have pending jobs for this Process.
- les exceptions non trouvées telles que :
QueueName1 does not exist.
Journaux d'exécution d'Orchestrator
Les journaux d'exécution d'Orchestrator sont envoyés par les Robots qui leur sont connectés et sont affichés dans la section Journaux des pages Tâches ou Robots . L'application reçoit les données provenant des Robots, ajoute ses propres paramètres et transmet les messages aux différentes cibles, comme indiqué dans la section <nlog> du fichier UiPath.Orchestrator.dll.config .
Cibles des journaux d'exécution d'Orchestrator
Par défaut, tous les journaux du Robot sont envoyés à la table Journaux (Logs) de la base de données par défaut d’Orchestrator, où UiPath Orchestrator enregistre également d’autres informations.
Vous pouvez cependant choisir d’envoyer les journaux du Robot vers une base de données différente en la configurant dans la section target xsi:type="Database" connectionString="..." du fichier UiPath.Orchestrator.dll.config.
La page Journaux (Logs) affiche les informations provenant de la table Journaux (Logs) de la Base de données par défaut (Default Database). Par conséquent, si cette section n'existe pas ou si les journaux sont enregistrés dans une base de données différente, la page est vide. Tous les paramètres doivent être conformes au schéma de table, qui ressemble à ceci :
<target xsi:type="Database" name="database" connectionString="${ui-connection-strings:item=Default}" keepConnection="true">
<commandText>
insert into dbo.Logs (OrganizationUnitId, TenantId, TimeStamp, Level, WindowsIdentity, ProcessName, JobKey, Message, RawMessage)
values (@organizationUnitId, @tenantId, @timeStamp, @level, @windowsIdentity, @processName, @jobId, @message, @rawMessage)
</commandText>
<parameter name="@organizationUnitId" layout="${event-properties:item=organizationUnitId}" />
<parameter name="@tenantId" layout="${event-properties:item=tenantId}" />
<parameter name="@timeStamp" layout="${date}" />
<parameter name="@level" layout="${event-properties:item=levelOrdinal}" />
<parameter name="@windowsIdentity" layout="${event-properties:item=windowsIdentity}" />
<parameter name="@processName" layout="${event-properties:item=processName}" />
<parameter name="@jobId" layout="${event-properties:item=jobId}" />
<parameter name="@message" layout="${message}" />
<parameter name="@rawMessage" layout="${event-properties:item=rawMessage}" />
</target>
<logger name="Robot.*" writeTo="database" final="true" />
<target xsi:type="Database" name="database" connectionString="${ui-connection-strings:item=Default}" keepConnection="true">
<commandText>
insert into dbo.Logs (OrganizationUnitId, TenantId, TimeStamp, Level, WindowsIdentity, ProcessName, JobKey, Message, RawMessage)
values (@organizationUnitId, @tenantId, @timeStamp, @level, @windowsIdentity, @processName, @jobId, @message, @rawMessage)
</commandText>
<parameter name="@organizationUnitId" layout="${event-properties:item=organizationUnitId}" />
<parameter name="@tenantId" layout="${event-properties:item=tenantId}" />
<parameter name="@timeStamp" layout="${date}" />
<parameter name="@level" layout="${event-properties:item=levelOrdinal}" />
<parameter name="@windowsIdentity" layout="${event-properties:item=windowsIdentity}" />
<parameter name="@processName" layout="${event-properties:item=processName}" />
<parameter name="@jobId" layout="${event-properties:item=jobId}" />
<parameter name="@message" layout="${message}" />
<parameter name="@rawMessage" layout="${event-properties:item=rawMessage}" />
</target>
<logger name="Robot.*" writeTo="database" final="true" />
Vous pouvez ajouter d'autres cibles aux journaux en configurant le fichier UiPath.Orchestrator.dll.config . Vous trouverez une liste de cibles disponibles ici.
Lors de la mise à niveau d'Orchestrator, les cibles Nlog sont supprimées et recréées, comme suit :
- Lors de la mise à niveau vers 2022,4, Les cibles de base de données Nlog retrouvent leurs valeurs par défaut.
- Lors de la mise à niveau vers 2022.10, les cibles de la base de données Nlog sont supprimées et remplacées par des cibles nouvelles et améliorées. Cela couvre
database,monitoringet les ciblesinsightsRobotLogs.
Si le nombre de journaux de Robot stocké dans la table est supérieur à 1 million, nous vous recommandons de créer l'index suivant pour améliorer les performances de recherche :
CREATE NONCLUSTERED INDEX [IX_Search] ON [dbo].[Logs]
(
[TenantId] ASC,
[OrganizationUnitId] ASC,
[Level] ASC,
[TimeStamp] DESC
)WITH (STATISTICS_NORECOMPUTE = OFF, DROP_EXISTING = OFF, ONLINE = OFF, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_Search] ON [dbo].[Logs]
(
[TenantId] ASC,
[OrganizationUnitId] ASC,
[Level] ASC,
[TimeStamp] DESC
)WITH (STATISTICS_NORECOMPUTE = OFF, DROP_EXISTING = OFF, ONLINE = OFF, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
Serveur Elasticsearch
Par défaut, une cible Elasticsearch est configurée depuis le script d'installation. L'index est différent pour chaque locataire, mais vous pouvez le configurer à partir de la cible spécifiée dans la section <nlog>.
Pour les versions d'Elasticsearch antérieures à 8.0 :
<target name="robotElasticBuffer" xsi:type="BufferingWrapper" flushTimeout="5000">
<target xsi:type="ElasticSearch" name="robotElastic" uri="uritoelasticsearchnode" index="${event-properties:item=indexName}-${date:format=yyyy.MM}" documentType="logEvent" includeAllProperties="true" layout="${message}" excludedProperties="agentSessionId,tenantId,organizationId,indexName" />
</target>
</target>
<target name="robotElasticBuffer" xsi:type="BufferingWrapper" flushTimeout="5000">
<target xsi:type="ElasticSearch" name="robotElastic" uri="uritoelasticsearchnode" index="${event-properties:item=indexName}-${date:format=yyyy.MM}" documentType="logEvent" includeAllProperties="true" layout="${message}" excludedProperties="agentSessionId,tenantId,organizationId,indexName" />
</target>
</target>
Pour les versions 8.0 et ultérieures à Elasticsearch :
<target name="robotElasticBuffer" xsi:type="BufferingWrapper" flushTimeout="5000">
<target xsi:type="ElasticSearch" name="robotElastic" uri="uritoelasticsearchnode" index="${event-properties:item=indexName}-${date:format=yyyy.MM}" documentType="" enableApiVersioningHeader="true" includeAllProperties="true" layout="${message}" excludedProperties="agentSessionId,tenantId,organizationId,indexName" />
</target>
</target>
<target name="robotElasticBuffer" xsi:type="BufferingWrapper" flushTimeout="5000">
<target xsi:type="ElasticSearch" name="robotElastic" uri="uritoelasticsearchnode" index="${event-properties:item=indexName}-${date:format=yyyy.MM}" documentType="" enableApiVersioningHeader="true" includeAllProperties="true" layout="${message}" excludedProperties="agentSessionId,tenantId,organizationId,indexName" />
</target>
</target>
Pour que les versions 8.0 et supérieures d'Elasticsearch fonctionnent correctement, ces paramètres sont définis comme suit :
documentTypeest vide.enableApiVersioningHeaderest défini surtrue.Remarque :L’option permettant d’enregistrer les journaux du robot sur un serveur Elasticsearch ne devient efficace qu’une fois que vous l’avez configurée, et n’est pas appliquée rétroactivement. Cela signifie que vous n’aurez plus accès aux journaux qui se trouvaient déjà dans la base de données au moment où vous avez configuré l’option, car les journaux ne peuvent être récupérés et affichés qu’à partir d’une seule destination.
Authentification X-PACK
Par défaut, les fonctionnalités de sécurité d'Elasticsearch sont désactivées si vous disposez d'une licence de base ou d'une licence d'essai. Nous vous recommandons fortement de les activer.
Authentification par nom d'utilisateur et mot de passe
Pour activer l'authentification via un nom d'utilisateur et un mot de passe, vous devez suivre les étapes suivantes :
- Configurez le serveur Elasticsearch comme suit :
- Ajoutez le paramètre
xpack.security.enabledau fichier de configurationelasticsearch.yml. - Configurez un nom d'utilisateur et un mot de passe.
- Ajoutez le paramètre
Pour plus de détails à ce sujet, consultez la documentation Elasticsearch.
- Configurez le fichier
UiPath.Orchestrator.dll.configd'Orchestrator comme suit :
- Option 1 : si vous n'utilisez pas de cible NLog, vous devez configurer les paramètres suivants :
Logs.Elasticsearch.UsernameetLogs.Elasticsearch.Password. Assurez-vous que leurs valeurs correspondent aux paramètres Elasticsearch de l'étape 1. - Option 2 : si
Logs.RobotLogs.ReadTargetest défini sur une cible NLog (par exemple,robotElasticBuffer) et que le paramètreLogs.Elasticsearch.Nodesn'est pas spécifié, configurez la cible en ajoutant les éléments suivants :requireAuth="true" username="XPACKuser" password="p@$$w0rd". Assurez-vous que ces valeurs de paramètres correspondent aux paramètres Elasticsearch de l'étape 1.
Pour plus d'informations sur ces paramètres, consultez la page UiPath.Orchestrator.dll.config . Pour obtenir un exemple de configuration, consultez les éléments suivants :
<target name="robotElasticBuffer" xsi:type="BufferingWrapper" flushTimeout="5000">
<target xsi:type="ElasticSearch" name="robotElastic" uri="" requireAuth="true" username="XPACKusername" password="p@$$w0rd" index="${event-properties:item=indexName}-${date:format=yyyy.MM}" documentType="logEvent" includeAllProperties="true" layout="${message}" excludedProperties="agentSessionId,tenantId,indexName" />
</target>
<target name="robotElasticBuffer" xsi:type="BufferingWrapper" flushTimeout="5000">
<target xsi:type="ElasticSearch" name="robotElastic" uri="" requireAuth="true" username="XPACKusername" password="p@$$w0rd" index="${event-properties:item=indexName}-${date:format=yyyy.MM}" documentType="logEvent" includeAllProperties="true" layout="${message}" excludedProperties="agentSessionId,tenantId,indexName" />
</target>
- Option 3 : si
Logs.RobotLogs.ReadTargetest défini sur une cible NLog (par exemple,robotElasticBuffer) et qu'un nœud Elasticsearch est spécifié via le paramètreLogs.Elasticsearch.Nodes, vous devez le configurer explicitement (car il remplace les paramètres de la cible NLog) , et assurez-vous d'ajouter également les éléments suivants :requireAuth="true" username="XPACKuser" password="p@$$w0rd". Assurez-vous que ces valeurs de paramètres correspondent aux paramètres Elasticsearch de l'étape 1.
Authentification OAuth 2
Pour passer à OAuth2 comme méthode d'authentification pour Elasticsearch, vous devez suivre les étapes suivantes. Notez que vous devez fournir vos informations d'identification actuelles pour passer à cette méthode d'authentification basée sur les jetons.
-
Configurez le serveur Elasticsearch comme suit :
- Activez TLS (HTTPS) pour la couche transport.
- Mettez à jour les paramètres suivants dans le fichier de configuration
elasticsearch.yml:
xpack.security.authc.token.enabled: truexpack.security.enabled: truexpack.security.authc.token.timeout: ce paramètre est facultatif et contrôle la durée de validité d'un jeton. Par défaut, sa valeur est définie sur 20 minutes.
Pour plus de détails à ce sujet, consultez la documentation Elasticsearch.
- Mettez à jour les paramètres suivants dans le fichier
UiPath.Orchestrator.dll.configd'Orchestrator pour refléter les paramètres que vous avez choisis à l'étape 1.Logs.Elasticsearch.TlsEnabled = ”true”: par défaut, ce paramètre est défini surtrueet garantit que TLC (HTTPS) est activé.Logs.Elasticsearch.OAuthEnabled = ”true”: par défaut, ce paramètre est défini surfalse. Pour plus de détails, voirLogs.Elasticsearch.OAuthEnabled.Logs.Elasticsearch.OAuthExpireInSeconds = ”1200”:Ce paramètre est facultatif sauf si la valeur par défaut de1200est modifiée dans le paramètre Elasticsearchxpack.security.authc.token.timeout. Ce paramètre doit avoir la même valeur que dans la configuration d’Elasticsearch. Pour plus de détails, voirLogs.Elasticsearch.OAuthExpireInSeconds.Remarque :Les deux premières étapes vous aident à configurer un mécanisme d'authentification basé sur des jetons pour la lecture des journaux. Si vous utilisez NLog, une étape supplémentaire est nécessaire.
- Pour activer OAuth2 pour Nlog, assurez-vous également de configurer le paramètre suivant dans le fichier
UiPath.Orchestrator.dll.configd’Orchestrator. Notez que vous devez renseigner le nom d’utilisateur et le mot de passe pour l’authentification dans Elasticsearch, car le jeton initial est généré en fonction de ces identifiants.OAuthEnabled = “true”: par défaut, ce paramètre est défini surfalse. Pour plus d’informations sur ces paramètres, consultez la page UiPath.Orchestrator.dll.config .Important :Si
Logs.RobotLogs.ReadTargetest défini sur une cible NLog (par exemple,robotElasticBuffer) et que le paramètreLogs.Elasticsearch.Nodesn'est pas spécifié, leLogs.Elasticsearch.OAuthEnabledest rempli à partir de la configuration de la cible NLog. La même logique est appliquée pour le nom d'utilisateur et le mot de passe.
Authentification par clé API
Pour activer l'authentification via la clé API, suivez les étapes décrites ci-dessous.
- Générez la clé d’API en suivant ces étapes.
- Stockez la clé API en tant que secret dans votre Azure Key Vault.
- Configurez les paramètres cibles Nlog suivants avec vos données, créant ainsi une connexion entre Orchestrator et votre coffre de clés qui permet de récupérer la clé :
apiKeyEnabled="true" apiKeyProvider="AzureKeyVault" apiKeySecretName="<SecretName>" azureKeyVaultUri="<KeyVaultUri>" azureKeyVaultDirectoryId="<KeyVaultDirectoryId>" azureKeyVaultClientId="<KeyVaultClientId>" azureKeyVaultCertificateThumbprint="<KeyVaultCertificateThumbprint>" azureKeyVaultCertificateStoreLocation="CurrentUser/LocalMachine"apiKeyEnabled="true" apiKeyProvider="AzureKeyVault" apiKeySecretName="<SecretName>" azureKeyVaultUri="<KeyVaultUri>" azureKeyVaultDirectoryId="<KeyVaultDirectoryId>" azureKeyVaultClientId="<KeyVaultClientId>" azureKeyVaultCertificateThumbprint="<KeyVaultCertificateThumbprint>" azureKeyVaultCertificateStoreLocation="CurrentUser/LocalMachine"
Les paramètres suivants doivent être modifiés avec vos valeurs :
<SecretName>: nom que vous avez défini pour votre clé API dans le coffre de clés<KeyVaultUri>- l'URI de votre coffre de clés<KeyVaultDirectoryId>- votre ID de répertoire de coffre de clés<KeyVaultClientId>- l'ID client de votre coffre de clés<KeyVaultCertificateThumbprint>– l’empreinte de votre certificat de coffre de clésCurrentUser/LocalMachine: l'emplacement de stockage du certificat
Expiration de la clé API
Par défaut, les clés API n'expirent pas, mais vous pouvez toujours choisir de définir une date d'expiration pour elles.
Si votre clé API est configurée pour expirer, vous devez en générer une nouvelle et la stocker dans le coffre de clés avant la date d'expiration, afin de vous assurer qu'Orchestrator peut toujours récupérer une clé valide.
Orchestrator lit les clés API à partir du coffre de clés toutes les 15 minutes. Il s'agit du délai maximal auquel vous pouvez vous attendre avant la propagation de votre nouvelle clé.