UiPath Documentation
orchestrator
2020.10
false
Guia do usuário do Orchestrator
Importante :
A tradução automática foi aplicada parcialmente neste conteúdo. A localização de um conteúdo recém-publicado pode levar de 1 a 2 semanas para ficar disponível.

Logs do Orchestrator

Logs de diagnóstico do Orchestrator

Esses são logs de diagnóstico gerados pelo UiPath Orchestrator sobre seu comportamento.

Habilitação de logs de diagnóstico do UiPath Orchestrator

Os logs de diagnóstico do UiPath Orchestrator ficam habilitados após a sua instalação com sucesso. Eles dependem da infraestrutura do NLog e sua configuração pode ser encontrada no arquivo UiPath.Orchestrator.dll.config, sob a tag <nlog>.

Observação:

Lembre-se de que tanto as exceções do servidor do Orchestrator, quanto o rastreamento de pilha na janela Detalhes do trabalho, serão registrados em log em inglês, independentemente de qual idioma tenha sido escolhido pelo usuário.

Destinos dos logs de diagnóstico do UiPath Orchestrator

Todos os logs de aplicativos serão registrados no Visualizador de eventos no nível de registro em log mínimo de Informações. Isso é especificado pelas seguintes linhas no arquivo UiPath.Orchestrator.dll.config:

<target xsi:type="EventLog" name="eventLog" layout="${message}" source="Orchestrator" log="Application" />

<logger name="*" minlevel="Info" writeTo="eventLog" />

Os logs gerados pelo Agendador de trabalhos têm um destino e agente separados:

<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" />

Exemplo:

  • Could not create Quartz Job

Os logs gerados por negócios e outras regras de validação têm um destino e agente de log separados:

<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" />

Esses tipos de mensagens de erro serão registrados em log no Visualizador de eventos nos seguintes casos:

  • Problemas de validação, como:
    • Invalid username/email address or password.
    • The machine name DOC is already taken
  • conflitos de negócios, como:
    • License expired!
    • The floating robot's session is already active on machine ROQADOCS06!
    • The robots already have pending jobs for this Process.
  • exceções não encontradas, como:
    • QueueName1 does not exist.

Logs de execução do Orchestrator

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.

Destinos dos logs de execução do Orchestrator

Por padrão, todos os logs do UiPath Robot são enviados para a tabela Logs do Banco de dados padrão do Orchestrator, onde o UiPath Orchestrator também armazena outras informações.

Você pode, no entanto, optar por enviar logs do UiPath Robot para um banco de dados diferente configurando-o na seção target xsi:type="Database" connectionString="..." do arquivo UiPath.Orchestrator.dll.config.

A página Logs exibe informações da tabela Logs do Banco de dados padrão. Portanto, se essa seção não existir ou os logs forem salvos em um banco de dados diferente, a página ficará vazia. Todos os parâmetros devem estar de acordo com o esquema da tabela, que se parece com isso:

<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" />

Outros destinos podem ser adicionados aos logs, configurando o arquivo UiPath.Orchestrator.dll.config. Uma lista de destinos disponíveis pode ser encontrada aqui.

Servidor Elasticsearch

By default, there’s an Elasticsearch target configured from the installation script. The index is different for each tenant, but this can be configured from the specified target in the <nlog> section:

<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>
Observação:

A opção de salvar logs do robô em um servidor do Elasticsearch só se torna efetiva depois que você o configura, e não é aplicada retroativamente. Isso significa que você não terá mais acesso a quaisquer logs que já estavam no banco de dados no momento em que você configurou a opção, porque os logs só podem ser recuperados e exibidos a partir de um único destino.

Autenticação do X-PACK

O Orchestrator suporta a autenticação X-PACK do Elasticsearch. Para habilitá-la, você deve adicionar a linha requireAuth="true" username="XPACKuser" password="p@$$w0rd" na seguinte seção do arquivo UiPath.Orchestrator.dll.config:

<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>

A seção deve ser semelhante a isto:

<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>

Esta página foi útil?

Conectar

Precisa de ajuda? Suporte

Quer aprender? Academia UiPath

Tem perguntas? Fórum do UiPath

Fique por dentro das novidades