- Erste Schritte
- Best Practices
- Mandant
- Aktionen
- Ordnerkontext
- Automatisierungen
- Prozesse
- Jobs
- Auslöser
- Protokolle
- Überwachung
- Warteschlangen
- Assets
- Speicher-Buckets
- Testverfahren in Orchestrator
- Aktionskataloge
- Profil
- Systemadministrator
- Identity Server
- Authentication
- Konfigurieren der Active Directory-Integration
- Konfigurieren von SSO: Google
- Konfigurieren von SSO: Azure Active Directory
- SmartCard-Authentifizierung
- Einrichtung einer automatischen Anmeldung für Benutzer einer Active-Directory-Gruppe
- Konfigurieren des SMTP-Servers
- Ändern des Windows-Authentifizierungsprotokolls
- Sonstige Konfigurationen
- Integrationen
- Klassische Roboter
- Fehlersuche und ‑behebung
Orchestrator-Diagnoseprotokolle
Dies sind Diagnoseprotokolle, die von UiPath Orchestrator in Bezug auf dessen Verhalten erzeugt werden.
Aktivierung der UiPath-Orchestrator-Diagnoseprotokolle
Die UiPath-Orchestrator-Diagnoseprotokolle sind aktiviert, sobald UiPath Orchestrator erfolgreich installiert ist. Sie hängen von der NLog-Infrastruktur ab, und deren Konfiguration findet sich in der Datei UiPath.Orchestrator.dll.config unter dem Tag <nlog>.
Bitte berücksichtigen Sie, dass beide Serverausnahmen von Orchestrator und der Stacktrace im Fenster Jobdetails (Job Details) unabhängig von der vom Benutzer gewählten Sprache in englischer Sprache angemeldet werden.
Ziele der UiPath-Orchestrator-Diagnoseprotokolle
Alle Anwendungsprotokolle werden in der Ereignisanzeige auf der untersten Protokollierungsstufe Information protokolliert. Dies wird in den folgenden Zeilen der Datei UiPath.Orchestrator.dll.config angegeben:
<target xsi:type="EventLog" name="eventLog" layout="${message}" source="Orchestrator" log="Application" />
<logger name="*" minlevel="Info" writeTo="eventLog" />
Protokolle, die vom Jobplaner erzeugt werden, haben ein separate Ziele und Protokollierungen:
<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" />
Beispiel:
Could not create Quartz Job
Protokolle, die von Geschäfts- und anderen Validierungsregeln generiert werden, haben separate Ziele und Protokollierungen:
<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" />
Diese Arten von Fehlermeldungen werden in den folgenden Fällen in der Ereignisanzeige protokolliert:
- Validierungsprobleme wie zum Beispiel:
Invalid username/email address or password.The machine name DOC is already taken
- Geschäftskonflikte wie zum Beispiel:
License expired!The floating robot's session is already active on machine ROQADOCS06!The robots already have pending jobs for this Process.
- Keine Ausnahmen gefunden wie:
QueueName1 does not exist.
Orchestrator-Ausführungsprotokolle
The Orchestrator Execution Logs are sent by the Robots connected to it and are displayed in the Logs section of the Jobs or Robots pages. The application receives the data from the Robots, adds its own parameters (TenantID, FolderID), and forwards the messages to different targets, as specified in the <nlog> section from the UiPath.Orchestrator.dll.config file.
Ziele der Orchestrator-Ausführungsprotokolle
Standardmäßig werden alle Robot-Protokolle an die Tabelle Protokoll der Standard-Orchestrator-Datenbank gesendet, in der der UiPath Orchestrator auch andere Informationen speichert.
Sie können Robot-Protokolle jedoch an eine andere Datenbank senden, indem Sie diese im Abschnitt target xsi:type="Database" connectionString="..." der Datei UiPath.Orchestrator.dll.config konfigurieren.
Die Seite Protokolle (Logs) zeigt Informationen aus der Tabelle Protokolle (Logs) von der Standarddatenbank an. Wenn also dieser Abschnitt nicht existiert oder die Protokolle in einer anderen Datenbank gespeichert werden, ist die Seite leer. Alle Parameter sollten gemäß dem Tabellenschema, das wie folgt aussieht, vorliegen:
<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" />
Andere Ziele können zu den Protokollen durch Konfigurieren der Datei UiPath.Orchestrator.dll.config hinzugefügt werden. Eine Liste der verfügbaren Ziele finden Sie hier.
Elasticsearch-Server
Standardmäßig gibt es ein Elasticsearch-Ziel, das aus dem Installationsskript konfiguriert wurde. Der Index unterscheidet sich bei jedem Mandanten, aber die kann aus dem angegebenen Ziel im Abschnitt <nlog> konfiguriert werden:
<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>
Die Option zum Speichern von Roboterprotokollen auf einem Elasticsearch-Server wird erst nach dem Konfigurieren wirksam und nicht rückwirkend angewandt. Das bedeutet, dass Sie keinen Zugriff mehr auf Protokolle haben, die sich zum Zeitpunkt des Konfigurierens der Option bereits in der Datenbank befanden, da Protokolle nur von einem einzigen Ziel abgerufen und angezeigt werden können.
X-PACK-Authentifizierung
Orchestrator unterstützt die X-PACK-Authentifizierung für ElasticSearch. Um diese zu aktivieren, müssen Sie die Zeile requireAuth="true" username="XPACKuser" password="p@$$w0rd" im folgenden Abschnitt der Datei UiPath.Orchestrator.dll.config hinzufügen:
<target name="robotElasticBuffer" xsi:type="BufferingWrapper" flushTimeout="5000">
<target xsi:type="ElasticSearch" name="robotElastic" uri="http://elk-test.com" 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="http://elk-test.com" index="${event-properties:item=indexName}-${date:format=yyyy.MM}" documentType="logEvent" includeAllProperties="true" layout="${message}" excludedProperties="agentSessionId,tenantId,indexName" />
</target>
Der Abschnitt sollte folgendermaßen aussehen:
<target name="serverElasticBuffer" xsi:type="BufferingWrapper" flushTimeout="5000">
<target xsi:type="ElasticSearch" name="serverElastic" requireAuth="true" username="XPACKuser" password="p@$$w0rd" uri="" index="serverdiagnostics-${date:format=yyyy.MM}" documentType="logEvent" includeAllProperties="true" layout="${machinename} ${message}" />
</target>
<target name="serverElasticBuffer" xsi:type="BufferingWrapper" flushTimeout="5000">
<target xsi:type="ElasticSearch" name="serverElastic" requireAuth="true" username="XPACKuser" password="p@$$w0rd" uri="" index="serverdiagnostics-${date:format=yyyy.MM}" documentType="logEvent" includeAllProperties="true" layout="${machinename} ${message}" />
</target>