- Introdução
- Requisitos
- Melhores práticas
- Instalação
- Atualizando
- Servidor de Identidade
- Solução de problemas de erros de inicialização
Guia de instalação do Orchestrator
UiPath.Orchestrator.dll.config
UiPath.Orchestrator.dll.config
(C:\Program Files (x86)\UiPath\Orchestrator
) define os parâmetros, configurações e preferências aplicados à implantação do Orchestrator.
-
Quaisquer alterações nos parâmetros neste arquivo serão substituídas após a atualização.
-
Apenas os administradores devem alterar os valores desses parâmetros.
-
É recomendável reiniciar o site manualmente após fazer alterações em
UiPath.Orchestrator.dll.config
. -
Parâmetros que não estão documentados nessa página não devem ser alterados ou ter contrapartes nas páginas de Configurações.
-
Todos os parâmetros diferenciam maiúsculas de minúsculas.
EncryptionKeyPerTenant.Enabled
Permite que você use diferentes chaves de criptografia por tenant, com base em uma conta do Microsoft Azure Key Vault. Os seguintes valores podem ser atribuídos:
false
- Usa uma única chave de criptografia em toda a instância do Orchestrator. Esse é o valor padrão.true
- Usa uma chave de criptografia diferente para cada tenant, aprimorando sua segurança dos tenants e fornecendo maior segregação de dados confidenciais.
EncryptionKeyPerTenant.KeyProvider
, além daqueles na seção SecureAppSettings.
EncryptionKeyPerTenant.KeyProvider
AzureKeyVault
para usar um Microsoft Azure Key Vault pré-configurado.Nós não fornecemos licenças do Azure Key Vault.Observe que você também precisa configurar os parâmetros descritos na seção SecureAppSettings. Se EncryptionKeyPerTenant.Enabled
estiver definido como false
, esse parâmetro não será usado.
As alterações feitas para as configurações de criptografia aqui precisam ser espelhadas no arquivo appsettings.Production.json do Identity Server, de acordo com a seguinte equivalência do campo:
UiPath.Orchestrator.dll.config do Orchestrator |
appsettings.Production.json do Identity Server |
---|---|
EncryptionKeyPerTenant.Enabled |
EncryptionKeyPerTenant |
Azure.KeyVault.VaultAddress |
AzureKeyVaultAddress |
Azure.KeyVault.CertificateThumbprint |
AzureKeyVaultCertificateThumbprint |
Azure.KeyVault.ClientId |
AzureKeyVaultClientId |
Azure.KeyVault.DirectoryId |
AzureKeyVaultDirectoryId |
EncryptionKeyPerTenant.KeyProvider |
MultiTenantEncryptionKeyProvider |
inProgressMaxNumberOfMinutes
O tempo máximo em que os itens da fila de tempo podem ter o status Em andamento. Após este tempo, o status dos itens da fila muda para Abandonado. Por padrão, ele é definido como 1440 minutos (24 horas).
QueuesStatisticsScheduleCron
A frequência de atualização das estatísticas de itens da fila na página Painel e Transações, e na janela Gráfico. Por padrão, elas são atualizadas a cada minuto.
UpdateUncompletedItemsJobCron
A frequência de pesquisa no banco de dados pelas filas que precisam ser movidas para Abandonado. Por padrão, esse parâmetro é definido como a cada hora.
Queue.MaxSlaInMinutes
UiPath.Orchestrator.dll.config
, incluindo em cenários de atualização.
Queue.MaxSchemaFileSizeInKilobytes
UiPath.Orchestrator.dll.config
.
Queue.SlaReadaheadTimeLimitHours
UiPath.Orchestrator.dll.config
.
Queue.MaxSpecificDataSizeInKiloBytes
O tamanho máximo do conteúdo de Dados específicos para novos itens da fila, em kilobytes. Para as instalações limpas do Orchestrator, esse parâmetro está oculto e tem um valor padrão de 1024 (1 MB). Em cenários de atualização, esse parâmetro é visível e tem um valor de 204800 (200 MB).
Queue.ProcessActivationSchedule
O tempo entre verificações para itens de fila não processados. Por padrão, é definido como 30 minutos. Para ajustar o intervalo de seleção, especifique um valor entre 0 e 59, reinicie o IIS e, depois, exclua o gatilho da fila existente e recrie-o.
DailyAlertMailJobCron
Permite que você configure uma expressão cron que controla quando os alertas por e-mail diários são enviados. Isso funciona apenas se os alertas por e-mail estiverem habilitados. O relatório contém todos os alertas de gravidade Fatal e Erro gerados no dia anterior. Por padrão, é enviado todos os dias às 7h.
Alerts.Email.Enabled
false
por padrão. Você pode defini-lo como true
para habilitar os alertas por e-mail automaticamente para o tenant que você está prestes a criar.
Entretanto, após o tenant ser criado, quaisquer alterações feitas neste parâmetro não serão mais consideradas. Em vez disso, a configuração pode ser alternada através da caixa de seleção Habilitar e-mails de alertas na página Configurações . Para obter mais detalhes, consulte a página Habilitando emails de alerta .
NotificationDistributerJobCron
A frequência com a qual as notificações de alerta são enviadas para a interface. Por padrão, os alertas são enviados a cada 10 segundos.
PeriodicErrorMailJobCron
Permite que você configure uma expressão cron que controla a frequência com a qual os alertas por e-mail periódicos são enviados. Isso funciona apenas se os alertas por e-mail estiverem habilitados. O valor padrão é a cada 10 minutos, o que significa que o relatório contém alertas de gravidade Fatal e Erro gerados nos últimos 10 minutos. Se nenhum alerta tiver sido gerado, nenhum relatório será enviado.
PasswordComplexity
Controla as regras de validação para a complexidade da senha e é expresso usando expressões regulares. A complexidade se aplica a todas as senhas (incluindo a do administrador do host) por padrão. No entanto, cada tenant pode personalizar a complexidade da senha de logon de seu usuário na guia Segurança, na página Configurações. Por padrão, as senhas devem conter pelo menos oito caracteres, com pelo menos uma letra e um número.
SystemJobs.DetectNotRespondingRobots.MaxAlertCount
<add key="SystemJobs.DetectNotRespondingRobots.MaxAlertCount" value="10" />
no arquivo UiPath.Orchestrator.dll.config
, sob todos os outros parâmetros de alertas. Se você aplicar essa configuração, observe que um aviso será relatado no Visualizador de Eventos quando o número total de alertas for maior do que o configurado como: Alerts not published: total number of unresponsive sessions (21) is bigger than the configured max allowed (10).
.
SystemJobs.LicenseExpirationAlert.DaysBefore
180,90,30,14,7,1
, o que significa que você recebe alertas por e-mail seis vezes: 180, 90, 30, 14, sete e um dia antes da sua licença expirar. Você pode definir menos valores para reduzir a frequência dos alertas por e-mail. Por exemplo, isso pode ser feito adicionando a seguinte chave no arquivo UiPath.Orchestrator.dll.config
: <add key="SystemJobs.LicenseExpirationAlert.DaysBefore" value="90,30,14" />
.
Storage.Type
e Storage.Location
.
Storage.Type
Define o destino no qual os pacotes e a mídia de execução são salvos. Pode ser preenchido com os seguintes destinos:
File System
-<add key="Storage.Type" value="FileSystem" />
.Azure
-<add key="Storage.Type" value="Azure" />
.Amazon
-<add key="Storage.Type" value="Amazon" />
.Minio
-<add key="Storage.Type" value="Minio" />
.
Storage.Location
Define o local real no qual os pacotes e a mídia de execução são salvos.
Storage.Location
é obrigatório quando:
- atualizando de qualquer versão pré-2020.10 do Orchestrator, e
- o
NuGet.Repository.Type
anterior foiLegacy
, e - o
NuGet.Packages.Path
anterior não usou o valor padrão.
Destino |
Location |
---|---|
FileSystem |
Forneça um caminho absoluto usando o seguinte formato:
RootPath=C:\FolderName\AnotherFolderName .
Exemplo:
<add key="Storage.Location" value="RootPath=C:\FolderName\AnotherFolderName" /> .
Na pasta fornecida, a seguinte estrutura de pastas é criada: Orchestrator-Host\Libraries - Uma pasta dedicada às bibliotecas armazenadas no feed do host.
Orchestrator-[tenantKey] - Uma pasta para cada tenant. O tenant é identificado pela chave do tenant, conforme encontrada no banco de dados. Por exemplo, Orchestrator-12ab1234-a567-456b-a12b-ab3456b123ab .
Para cada pasta do tenant, três outros subdiretórios são criados:
Os arquivos são salvos nas pastas dedicadas no local especificado. Por padrão, eles são armazenados no seguinte caminho:
C:\Program Files (x86)\UiPath\Orchestrator\Storage .
|
Azure |
Forneça uma string de conexão. Exemplo:
<add key="Storage.Location" value="DefaultEndpointsProtocol=https;AccountName=usr;AccountKey=...;EndpointSuffix=core.windows.net" /> .
|
Amazon |
Exemplo:
<add key="Storage.Location" value="EndpointRegion=eu-west-3;accessKey=AKIAZGUEIGXUJ3BBI4MW;secretKey=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;useHttp=false" /> .
Exemplo:
<add key="Storage.Location" value="EndpointRegion=eu-west-3;accessKey=AKIAZGUEIGXUJ3BBI4MW;secretKey=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;useHttp=false;BlockPublicAccess=true" /> .
Exemplo:
<add key="Storage.Location" value="EndpointRegion=eu-west-3;UseDefaultCredentials=true" /> .
|
Minio |
Forneça uma string de conexão. Exemplo:
<add key="Storage.Location" value="host=localhost:9001;accessKey=YVKYFJ0ZY246KDKP0634;secretKey=bdBEk2ubhIFsTNPuQ80PjKL+oqZBj67HoSWBFnw1" /> .
|
Exemplo
<add key=\"Storage.Type\" value=\"Azure\" /> <add key=\"Storage.Location\" value=\"DefaultEndpointsProtocol=https;AccountName=usr;AccountKey=...;EndpointSuffix=core.windows.net\" />
<add key=\"Storage.Type\" value=\"Azure\" /> <add key=\"Storage.Location\" value=\"DefaultEndpointsProtocol=https;AccountName=usr;AccountKey=...;EndpointSuffix=core.windows.net\" />
A configuração acima instrui o Orchestrator:
- para armazenar os metadados do pacote no banco de dados SQL;
- para manter os arquivos reais no armazenamento do Azure Blob no local indicado pela string de conexão
DefaultEndpointsProtocol=https;AccountName=usr;AccountKey=...;EndpointSuffix=core.windows.net
; -
para usar a convenção de nomenclatura padrão para o nome do contêiner do Azure -
Orchestrator-tenantKey
.Importante:Se você tiver mais de 99 locatários no Orchestrator, terá duas opções para evitar o limite de conta do bucket S3 da AWS.
- Armazene seus dados em um único bucket externo, conforme instruções na seção a seguir.
- Aumente seu limite da conta do bucket da AWS S3 para corresponder ao número de tenants.
Isso é necessário porque um bucket separado é criado para cada tenant.
Armazenamento de dados do Orchestrator em um único bucket externo
Para usar um único bucket com seu próprio provedor de armazenamento externo, adicione os seguintes parâmetros à string de conexão correspondente:
BucketName
— obrigatório. Permite que o Orchestrator armazene todos os tenants em um único bucket. Ele requer o nome do bucket conforme definido no seu provedor de armazenamento. Para isso, seu armazenamento externo deve existir antes da instalação do Orchestrator.CanCreateBucket
- Opcional. Se definido como verdadeiro, ele permite que o Orchestrator crie o bucket no seu armazenamento externo em seu nome. O valor padrão é falso.
ContentPrefix
— opcional. Especifica o caminho dos dados do Orchestrator dentro do armazenamento externo. Por exemplo,orchestrator/data
.
Exemplo: usando um bucket único com seu próprio provedor de armazenamento externo
<add key="Storage.Location" value="DefaultEndpointsProtocol=https;AccountName=usr;AccountKey=...;EndpointSuffix=core.windows.net;BucketName=UiPath;ContentPrefix=orchestrator/data" />
<add key="Storage.Location" value="DefaultEndpointsProtocol=https;AccountName=usr;AccountKey=...;EndpointSuffix=core.windows.net;BucketName=UiPath;ContentPrefix=orchestrator/data" />
NuGet.Packages.ApiKey
NuGet.Activities.ApiKey
. O valor padrão é usado na geração inicial do banco de dados. Observe que strings arbitrárias também são aceitas.
NuGet.Activities.ApiKey
NuGet.Packages.ApiKey
devem ser iguais. Observe que strings arbitrárias também são aceitas.
A sincronização do pacote entre vários nós do Orchestrator e a interface pode ser feita monitorando o sistema de arquivos ou usando o Redis. Isso pode ser configurado usando a configuração abaixo. O caminho recomendado é por meio do Redis.
Processes.AllowUpdateWithRunningJobs
Especifica se você pode excluir um processo enquanto tem trabalhos em execução ou pendentes associados a ele. Observe que esse parâmetro está oculto por padrão. Os seguintes valores estão disponíveis:
true
- Os processos podem ser excluídos enquanto tiverem trabalhos em execução ou pendentes associados.false
- Os processos não podem ser excluídos enquanto tiverem trabalhos em execução ou pendentes associados. Tentar excluir um processo, nesse caso, exibe a seguinte mensagem de erro: "Modificar esse processo não é possível no momento, porque há trabalhos ativos associados a ele. (#1666)". Esse é o valor padrão.
<add key="Processes.AllowUpdateWithRunningJobs" value="true" />
no arquivo UiPath.Orchestrator.dll.config
.
Deployment.Libraries.AllowTenantPublish
Permite que você especifique se os tenants que usam o feed do host podem ou não carregar bibliotecas no feed. Os seguintes valores estão disponíveis:
true
- As bibliotecas carregadas no nível do tenant são propagadas para o feed do host. Esse é o valor padrão.false
- As bibliotecas carregadas no nível do tenant não são propagadas para o feed do host. No entanto, observe que os usuários têm acesso às bibliotecas existentes no feed.
Você também pode fazer essa configuração a partir da interface do usuário. A opção correspondente, Permitir que usuários do tenant possam carregar no feed, pode ser encontrada no nível do host, na página Configurações.
Buckets.ContentSecurityPolicy
UiPath.Orchestrator.dll.config
.
Buckets.AvailableProviders
Usada para controlar quais provedores podem ser usados na criação de buckets de armazenamento. Os provedores disponíveis são: provedores de armazenamento compatíveis com Orchestrator, Amazon, Azure, Minio, S3, além de Sistema de arquivos. Vários valores podem ser inseridos com um separador por vírgulas.
UiPath.Orchestrator.dll.config
e apenas os seguintes provedores são selecionados: Orchestrator
, Amazon
, Azure
, Minio
e S3Compatible
. O comportamento padrão é específico tanto para as instalações limpas quanto para as atualizações. Se a chave estiver visível, os provedores disponíveis serão limitados àqueles especificados como valores Buckets.AvailableProviders
.
Exemplo: para usar apenas Orchestrator, Amazon e Azure como provedores de bucket de armazenamento, adicione a seguinte chave:
<add key="Buckets.AvailableProviders" value="Orchestrator,Amazon,Azure" />
<add key="Buckets.AvailableProviders" value="Orchestrator,Amazon,Azure" />
Buckets.FileSystem.Allowlist
Buckets.FileSystem.Allowlist
.
|
, podem ser inseridos. Observe que os caminhos devem ser totalmente qualificados, seja tendo uma unidade como raiz ou um caminho da UNC (por exemplo, c:\
, c: est
, \\servershare\shared
), e cada um representa um prefixo com permissão para ser usado para qualquer bucket. Um bucket pode ser criado naquele caminho específico ou em qualquer subcaminho.
Buckets.FileSystem.Allowlist
tem uma série de implicações de segurança, você é altamente aconselhado a consultar Usar a Lista de Permissões de Armazenamento do FileSystem com Segurança antes de prosseguir.
AcceptedRootUrls
,
), como "https://server1,https://server2"
.
Auth.Bearer.Robot.Expire
O tempo após o qual o token do portador do seu Robô expira. Por padrão, é definido como 30 minutos.
Auth.DisabledPermissions
<add key="Auth.DisabledPermissions" value="Machines.Delete,Libraries.Delete" />
.
Auth.AllowChangePassword
Permite que você configure se um usuário pode alterar sua senha por meio de API. Essa configuração não é exibida por padrão no arquivo UiPath.Orchestrator.dll.config
. Os valores disponíveis são true
(valor padrão) e false
.
Auth.AllowSelfEmailUpdate
true
, o que significa que você pode atualizá-lo. Defina o parâmetro como false
para tornar o campo somente leitura. Esta configuração não é exibida por padrão no arquivo UiPath.Orchestrator.dll.config
.
ExternalAuth.AccessTokenAuth.Enabled
UiPath.Orchestrator.dll.config
. Os seguintes valores estão disponíveis:
true
- O usuário pode fazer solicitações autenticadas usando um token de acesso emitido por Auth0. Isso é considerado apenas se você definir um público válido para o parâmetroExternalAuth.AccessTokenAuth.Audience
.false
- O usuário não pode fazer solicitações autenticadas usando um token de acesso emitido por Auth0. Esse é o valor padrão.
ExternalAuth.AccessTokenAuth.Audience
<add key="ExternalAuth.AccessTokenAuth.Audience" value="https://cloud.uipath.com" />
. Esta configuração não é exibida por padrão no arquivo UiPath.Orchestrator.dll.config
.
ExternalAuth.ShowPII
<add key="ExternalAuth.ShowPII" value="true" />
. A chave não é exibida por padrão em UiPath.Orchestrator.dll.config
, e o comportamento padrão não permite a exibição de PII.
RestrictBasicAuthentication
Movido para o appsettings.json do Identity Server.
EnableBasicAuthenticationForHostTenant
Movido para o appsettings.json do Identity Server.
Essas configurações devem ser modificadas apenas se você estiver usando um balanceador de carga.
LoadBalancer.UseRedis
false
.
LoadBalancer.Redis.ConnectionString
LoadBalancer.UseRedis
estiver definido como true
. Uma string de conexão que permite que você configure seu servidor do Redis, que contém o URL do servidor, a senha e a porta usada com o Redis. Todos os nós do cluster HAA devem ser adicionados na string de conexão.
Também é possível habilitar as conexões criptografadas por SSL entre os nós do Orchestrator e o serviço do Redis. Para obter mais informações, consulte a página de configuração StackExchange.Redis . Exemplos:
- com SSL habilitado -
<add key="LoadBalancer.Redis.ConnectionString" value="10.10.20.184:10000,10.10.24.148:10000,10.10.22.114:10000,password=12345678,ssl=true" />
- sem SSL habilitado -
<add key="LoadBalancer.Redis.ConnectionString" value="10.10.20.184:10000,10.10.24.148:10000,10.10.22.114:10000,password=12345678" />
Plugins.SecureStores
\Orchestrator\Plugins
do seu diretório de instalação. Por exemplo:
- Loja única:
<add key="Plugins.SecureStores" value="UiPath.Orchestrator.CyberArk.dll"/>
-
Várias lojas:
<add key="Plugins.SecureStores" value="UiPath.Orchestrator.CyberArk.dll;UiPath.Orchestrator.AzureKeyVault.SecureStore.dll;UiPath.Orchestrator.SecureStore.CyberArkCCP.dll;UiPath.Orchestrator.SecureStore.HashiCorpVault.dll;UiPath.Orchestrator.SecureStore.BeyondTrust.dll;UiPath.Orchestrator.SecureStore.AWSSecretsManager.dll" />
Observação: ao atualizar uma instância do Orchestrator com uma integração existente do CyberArk, essa configuração é pré-preenchida com o plug-in do CyberArk. Para todas as outras instalações, o valor de configuração está vazio por padrão.
Plugins.SecureStores.CyberArk.CLIPasswordSDKExePath
CLIPasswordSDK64.exe
em um caminho de instalação personalizado. Por exemplo, se D:\CustomFolder\
for o diretório de instalação do CyberArk, você precisará adicionar a seguinte chave: <add key="Plugins.SecureStores.CyberArk.CLIPasswordSDKExePath" value="D:\CustomFolder\CLIPasswordSDK64.exe"/>
. O valor padrão dessa configuração do aplicativo é C:\Program Files (x86)\CyberArk\ApplicationPasswordSdk\CLIPasswordSDK64.exe
.
Plugins.SecureStores.CyberArk.UsePowerShellCLI
false
. Adicione a seguinte chave para habilitá-la: <add key="Plugins.SecureStores.CyberArk.UsePowerShellCLI" value="true"/>
.
Plugins.SecureStores.CyberArkCCP.KeyStorageFlags
Habilita a escolha de onde armazenar e como importar a chave privada do certificado do cliente configurada para um armazenamento de credenciais do CyberArk CCP.
DefaultKeySet
sendo a opção padrão.
EphemeralKeySet
não funciona em máquinas do Windows. Em vez disso, recomendamos usar o MachineKeySet
.
A configuração para a autenticação do Azure AD foi movida para a página Provedores Externos do Identity Server.
A configuração para autenticação do Active Directory é realizada após a instalação a partir do portal de gerenciamento do Orchestrator.
Para obter instruções, consulte a página Configuração da integração do Active Directory.
Logs.RobotLogs.ReadTarget
database
ou robotelasticbuffer
).
RobotsLogs.Flush.Interval
UiPath.Orchestrator.dll.config
. A menos que haja outra especificação, seu valor é de 0 segundo. O exemplo a seguir mostra como definir um intervalo de descarga de 60 segundos, o que significa que o Robô envia logs para o servidor a cada 60 segundos.
<add key="RobotsLogs.Flush.Interval" value="60" />
<add key="RobotsLogs.Flush.Interval" value="60" />
RobotsLogs.Flush.BatchSize
UiPath.Orchestrator.dll.config
. A não ser que seja especificado de outra forma, seu valor é 100 entradas de mensagens de log, que se traduz como o Robô enviando lotes de 100 logs para o servidor.
<add key="RobotsLogs.Flush.BatchSize" value="100" />
<add key="RobotsLogs.Flush.BatchSize" value="100" />
Logs.RequestAbortedLogBehavior
Especifica o comportamento do registro em log para as exceções de cancelamento, que são geradas após o cancelamento de uma operação que estava sendo executada. Elas são geradas, por exemplo, quando você clica em um botão e, antes que a operação seja executada, você clica em um outro. Observe que esse parâmetro está oculto por padrão. Os seguintes valores estão disponíveis:
Ignore
- Todas as exceções de cancelamento serão ignoradas se as solicitações correspondentes forem canceladas. Esse é o valor padrão.Info
- As exceções de cancelamento são registradas com o nível de gravidade Info.None
- As exceções de cancelamento são registradas com o nível de gravidade Erro.
<add key="Logs.RequestAbortedLogBehavior" value="Ignore" />
no arquivo de configuração.
Logs.Elasticsearch.SharedIndex
index
no destino do NLog. Por exemplo, <add key="Logs.Elasticsearch.SharedIndex" value="robotlogs" />
. Para obter mais detalhes, consulte a seção Elasticsearch .
Esse parâmetro está oculto por padrão.
Logs.Elasticsearch.EnableFolderIdFilter
true
por padrão, o que significa que os logs estão ocultos. Defina-o como false
para exibi-los: <add key="Logs.Elasticsearch.EnableFolderIdFilter" value="false" />
Logs.Elasticsearch.Username
O nome de usuário necessário para ler logs no Elasticsearch. Observe que é necessário configurar esse parâmetro apenas se a autenticação do Elasticsearch estiver habilitada, e se você não usar um destino do NLog. Ao configurar o parâmetro, certifique-se de que o valor corresponda às configurações do servidor do Elasticsearch. Para obter mais detalhes, consulte Autenticação do X-Pack.
Logs.Elasticsearch.Password
O nome de usuário necessário para ler logs no Elasticsearch. Observe que é necessário configurar esse parâmetro apenas se a autenticação do Elasticsearch estiver habilitada, e se você não usar um destino do NLog. Ao configurar o parâmetro, certifique-se de que o valor corresponda às configurações do servidor do Elasticsearch. Para obter mais detalhes, consulte Autenticação do X-Pack.
Logs.Elasticsearch.OAuthEnabled
true
para habilitar o OAuth2 e usar um mecanismo de autenticação baseado em tokens para ler logs de robôs no Elasticsearch, como uma alternativa para o sistema de usuário e senha. Por padrão, este parâmetro é definido como false
.
Quando se habilita a autenticação OAuth, ainda é necessário fornecer o nome de usuário e a senha como no método de autenticação padrão. Isso é necessário porque o token inicial é gerado com base nessas credenciais.
Para obter instruções detalhadas sobre como configurar a autenticação OAuth2 para o Elasticsearch, consulte a seção Autenticação OAuth2 , parte da Autenticação do X-Pack.
Logs.Elasticsearch.OAuthExpireInSeconds
Permite que você defina o tempo (em segundos) antes que o token de acesso usado para ler logs de robôs no Elasticsearch expire e seja atualizado. Seu valor padrão e recomendado é de 1200 segundos (20 minutos), e seu valor máximo é de 3600 segundos (60 minutos). Para invalidar um token, você pode usar o botão dedicado disponível na IU do Orchestrator.
Logs.Elasticsearch.OAuthEnabled
esteja definido como true
e que você tenha configurado corretamente o servidor do Elasticsearch. Para obter mais detalhes, consulte Autenticação OAuth2.
Logs.Elasticsearch.DisableProductCheckStatus
true
.
false
.
disableProductCheckStatus
no arquivo Nlog, que também está oculto e false
por padrão. Ele também deve ser definido como true
para ativar o recurso.
Mais configurações de webhooks estão disponíveis no Webhooks AppSettings.json.
Webhooks.VerifyAvailability.Enabled
true
, o que significa que a funcionalidade está habilitada.
Scalability.Heartbeat.PeriodSeconds
30
segundos.
Scalability.Heartbeat.FailureThreshold
4
, o que significa que após 2 minutos de pulsações com falha (4 x 30 segundos = 2 minutos), um Robô é sinalizado como sem resposta.
Scalability.SignalR.Enabled
true
. Esse parâmetro é usado na geração inicial do banco de dados. Para fazer alterações após a instalação, use a página Configurações, no nível do tenant ou do host.
Scalability.SignalR.Transport
Especifica o protocolo de transporte usado para se conectar aos canais do SignalR do Orchestrator. Os seguintes valores podem ser atribuídos (qualquer combinação - operador binário OR):
- WebSocketTransport = 1
- ServerSentEventsTransport = 2
- LongPollingTransport = 4
- Valor padrão: 7 (WebSocketTransport | ServerSentEventsTransport | LongPollingTransport)
Esse parâmetro é usado na geração inicial do banco de dados. Para fazer alterações após a instalação, use a página Configurações, no nível do tenant ou do host.
Scalability.AzureSignalR.ConnectionString
Ajuda você a habilitar o serviço Azure SignalR, facilitando a comunicação direta entre sua frota de Robôs e o serviço SignalR
Scalability.AzureSignalR.ConnectionCount
. Esse parâmetro está habilitado em nossas Ofertas de nuvem. Ele não é exibido por padrão no arquivo UiPath.Orchestrator.dll.config
.
<add key="Scalability.AzureSignalR.ConnectionString" value="Endpoint=https://test.signalr.net;AccessKey=M1ug+sBu07hyyi12AgyJ52SEd4OgC2Mm6BvllVHCC9c=;Version=1.0;" />
.
Scalability.AzureSignalR.ConnectionCount
5
. Exemplo: <add key="Scalability.AzureSignalR.ConnectionCount" value="7" />
. Essa configuração não é exibida por padrão e não pode ser usada sem a chave Scalability.AzureSignalR.ConnectionString
.
Scalability.SignalR.RequireStickySessions
true
, todos os transportes estão habilitados e o Orchestrator supõe que sessões fixas estão habilitadas no balanceador de carga. Habilitar as sessões fixas em UiPath.Orchestrator.dll.config
sem habilitá-las no balanceador de carga resultará em conexões do SignalR com falha.
Telemetry.Enabled
Habilita ou desabilita a coleta de dados de uso e desempenho que a UiPath usa para ajudar a diagnosticar problemas e melhorar o Orchestrator. Para obter mais detalhes sobre as práticas de privacidade da UiPath, examine a declaração de privacidade. Os seguintes valores estão disponíveis:
true
- A funcionalidade de telemetria está habilitada. Esse é o valor padrão.false
- A funcionalidade de telemetria está desabilitada.
Também é possível optar por ativar ou desativar a coleta de dados de desempenho e uso quando você instalar ou atualizar sua instância do Orchestrator, conforme descrito na página Desativação da telemetria .
MediaRecording.Enabled
false
para desabilitar a funcionalidade de gravação. Por padrão, é definido como true
, o que significa que a funcionalidade está habilitada. O armazenamento de arquivos é configurado usando os parâmetros Storage.Type
e Storage.Location
.
Pagination.Limits.Enabled
true
por padrão para o Cloud Platform e apaga instalações de instâncias do On-Premises Orchestrator. Adiciona um valor $top
padrão a todas as chamadas para endpoints da API com parâmetros de paginação (por exemplo, odata/Users
).
Triggers.DisableWhenFailedCount
Triggers.DisableWhenFailedCount
permite que você ajuste o número de execuções com falha, enquanto que Triggers.DisableWhenFailingSinceDays
permite que você altere o número de dias. Por padrão, o valor de Triggers.DisableWhenFailedCount
é 10, e o valor de Triggers.DisableWhenFailingSinceDays
é 1, o que significa que o gatilho é desabilitado após 10 tentativas de inicialização mal-sucedidas, se não houver execuções bem-sucedidas no dia anterior.
Triggers.DisableWhenFailedCount
como 0.
Um gatilho é desabilitado automaticamente se experimentar 10 inicializações consecutivas com falha e não tiver sido iniciado com sucesso nas últimas 24 horas.
Triggers.JobsCountStrategy
Permite que você escolha a estratégia de contagem de trabalhos para trabalhos iniciados por meio de gatilhos. Oculto por padrão. As seguintes opções estão disponíveis:
PerProcess
- Um gatilho inicia o número necessário de trabalhos, levando em consideração quaisquer trabalhos pendentes para o processo especificado. Por exemplo, dois gatilhos definidos para o mesmo processo iniciam três e cinco trabalhos, respectivamente. Se o primeiro gatilho iniciar três trabalhos em um determinado momento, quando o segundo gatilho for acionado, dois trabalhos serão iniciados para atingir os cinco trabalhos necessários. Adicione a seguinte chave no arquivo de configuração para usar essa estratégia:<add key="Triggers.JobsCountStrategy" value="PerProcess" />
. Esse é o valor padrão.PerTrigger
- Um gatilho inicia o número necessário de trabalhos, levando em consideração quaisquer trabalhos existentes iniciados anteriormente pelo mesmo gatilho. Por exemplo, um gatilho é definido para iniciar nove trabalhos em um determinado momento. Se dois trabalhos tiverem sido concluídos com sucesso no momento em que esse gatilho for acionado novamente, o Orchestrator iniciará outros dois trabalhos, para atingir os nove trabalhos necessários. Adicione a seguinte chave no arquivo de configuração para usar essa estratégia:<add key="Triggers.JobsCountStrategy" value="PerTrigger" />
.NoLimit
- O gatilho inicia o número necessário de trabalhos, independentemente de quaisquer trabalhos existentes pendentes. Por exemplo, um gatilho é definido para iniciar cinco trabalhos em um determinado momento. Na segunda vez em que o gatilho for acionado, outros cinco trabalhos serão iniciados. Adicione a seguinte chave no arquivo de configuração para usar essa estratégia:<add key="Triggers.JobsCountStrategy" value="NoLimit" />
.
Features.QueueTriggers.PendingJobsStrategy
Permite que você escolha o método de computação para o número de trabalhos adicionais a serem acionados quando novos itens forem adicionados à fila. Isso é feito subtraindo o número de trabalhos em um determinado estado do número máximo de trabalhos a serem criados.
As seguintes opções estão disponíveis:
-
True
- Essa é a opção padrão. É mais adequado para casos nos quais você quer que o Orchestrator assuma que todos os trabalhos em execução já moveram itens de fila para fora do status Novo.O número é calculado da seguinte forma:
Máximo de trabalhos adicionais a serem criados com base em itens de fila disponibilizados recentemente = o número máximo de trabalhos pendentes e em execução permitidos simultaneamente menos o número de trabalhos em um estado Pendente.
-
False
- Esta opção é mais adequada para casos em que você quer que o Orchestrator suponha que todos os trabalhos em execução ainda não retiraram os itens de fila do status Novo.O número é calculado da seguinte forma:
Máximo de trabalhos adicionais a serem criados com base em itens de fila disponibilizados recentemente = o número máximo de trabalhos pendentes e em execução permitidos simultaneamente menos o número de trabalhos em um destes estados: Pendente, Retomado, Em execução, Parando, Encerrando.
PreventAutoRefresh.Enabled
<add key="PreventAutoRefresh.Enabled" value="true" />
pode ser adicionada para restringir a atualização automática da página quando houver trabalhos em execução. A chave não é exibida por padrão, e o valor padrão é false
, o que significa que o Orchestrator atualizará automaticamente a página para cada novo trabalho.
PreventAutoRefresh.Enabled
.
Features.ClassicFolders.Enabled
false
, o que significa que pastas clássicas estão desabilitadas, e apenas pastas modernas estão disponíveis. Esse parâmetro está oculto por padrão.
Jobs.TerminatingJobsTimeout
1440
, o que significa que os trabalhos não podem ser marcados como Falha a menos que estejam em um estado de Encerramento por pelo menos um dia. Esse parâmetro está oculto por padrão.
Jobs.TerminatingJobsCleanupCron
Jobs.TerminatingJobsTimeout
. Os valores padrão são 0 0 0/3 1/1 * ? *
para Jobs.TerminatingJobsCleanupCron
, e 1440
para Jobs.TerminatingJobsTimeout
, o que significa que o trabalho em segundo plano é executado uma vez a cada três horas, e apenas as transições para Falha nos trabalhos que estiveram em um estado de Encerramento por pelo menos um dia. Esse parâmetro está oculto por padrão.
PW.StopExploringCron
0 25 * ? * *
, o que significa que o trabalho em segundo plano é executado no minuto 25 de cada hora. Se não tiverem as permissões necessárias, as sessões de exploração serão encerradas. Esse parâmetro está oculto por padrão.
Features.LongRunning.Enabled
<add key="Features.LongRunning.Enabled" value="true" />
.
Tasks.ModuleEnabled
<add key="Tasks.ModuleEnabled" value="true" />
. Essa configuração disponibiliza a funcionalidade no nível da instância. Para configurá-la em uma base por tenant, siga as etapas aqui. O parâmetro Features.LongRunning.Enabled
precisa ser definido como true
para que essa configuração entre em vigor.
Features.SmartCardAuthentication.Enabled
<add key="Features.SmartCardAuthentication.Enabled" value="true" />
.
OData.BackwardsCompatible.Enabled
true
, caracteres especiais no corpo de solicitações e respostas serão analisados. Por padrão, esse parâmetro está oculto e definido como false
.
NotRespondingRobotsJobStartDelay
UiPath.Orchestrator.dll.config
.
Upload.Queues.MaxNumberOfItems
15000
. Observe que esse parâmetro não é exibido por padrão em UiPath.Orchestrator.dll.config
.
Processes.FilterOutDeleted
Permite que você otimize como o Orchestrator recupera processos. A otimização é alcançada removendo verificações desnecessárias para processos órfãos cujos pacotes associados foram excluídos. Isso melhora o desempenho geral da sua instância, especialmente se for uma grande implantação. Os seguintes valores estão disponíveis:
false
- A recuperação dos pacotes é otimizada; as verificações não são executadas para processos órfãos.true
- A recuperação do pacote não está otimizada.
true
por padrão, o que significa que a recuperação do processo não está otimizada.
CertificatesStoreLocation
<add key="CertificatesStoreLocation" value="LocalMachine" />
. Certifique-se de que o AzureKeyVaultCertificateStoreLocation
no appsettings.Production.json tenha valor igual.
ProxyIntegration.Enabled
UiPath.Orchestrator.dll.config
, e seu valor é definido como true
, o que significa que a integração do proxy está habilitada, a não se que haja outra especificação. Use <add key="ProxyIntegration.Enabled" value="false"/> para desabilitar a integração do proxy.
A chave de criptografia usada para proteger senhas em ativos de credenciais. Se você estiver usando um ambiente com um balanceador de carga de rede, essa chave deve ser igual para todas as máquinas.
EncryptionKeyPerTenant.Enabled
estiver definido como true
e EncryptionKeyPerTenant.KeyProvider
definido como AzureKeyVault
. Além disso, certifique-se de fornecer todas as permissões de chaves, segredos e certificados para sua instância do Orchestrator, nas políticas de acesso de seu Azure Key Vault. Para obter o procedimento completo, consulte a página Configuração de chave de criptografia por tenant .
ae11aa1a-1234-1234-a123-a12a12aaa1aa
. Essa configuração não é exibida por padrão no arquivo UiPath.Orchestrator.dll.config
. Exemplo: <add key="Azure.KeyVault.ClientId" value="ae11aa1a-1234-1234-a123-a12a12aaa1aa" />
.
UiPath.Orchestrator.dll.config
. Exemplo: <add key="Azure.KeyVault.CertificateThumbprint" value="1234123412341234123412341234124312341234" />
.
https://CustomVaultName.vault.azure.net/
. Essa configuração não é exibida por padrão no arquivo UiPath.Orchestrator.dll.config
. Exemplo: <add key="Azure.KeyVault.VaultAddress" value="https://CustomVaultName.vault.azure.net/" />
.
Esta seção contém definições para configurar tokens de acesso do S2S e tokens de acesso de provisionamento do Robô.
UiPath.Orchestrator.dll.config
:
IdentityServer.GroupMembershipCacheExpireHours
1
IdentityServer.Integration.Enabled
true
.
IdentityServer.Integration.Authority
https://Orchestrator/Identity
, onde Orchestrator
é o endereço de instalação de seu Orchestrator.
IdentityServer.Integration.ClientId
Permite que você defina o ID do aplicativo (ID do cliente) usado para gerar tokens de acesso do S2S registrados dentro do Identity Server. O valor é gerado no momento da instalação.
IdentityServer.Integration.ClientSecret
Permite que você defina o Segredo do cliente para que o aplicativo Orchestrator S2S seja reconhecido pelo Identity Server. O valor é gerado no momento da instalação.
IdentityServer.Integration.AccessTokenCacheBufferInSeconds
50
.
IdentityServer.Integration.UserOrchestratorApiAudience
OrchestratorApiUserAccess
.
<add key="IdentityServer.Integration.Enabled" value="true" />
<add key="IdentityServer.Integration.Authority" value="https://Orchestrator/Identity" />
<add key="IdentityServer.Integration.ClientId" value="orchestratorapiaccess" />
<add key="IdentityServer.Integration.ClientSecret" value="a5d57b1d-5b25-49ba-bff7-33aa57f96a58" />
<add key="IdentityServer.Integration.AccessTokenCacheBufferInSeconds" value="50" />
<add key="IdentityServer.Integration.UserOrchestratorApiAudience" value="OrchestratorApiUserAccess" />
<add key="IdentityServer.Integration.Enabled" value="true" />
<add key="IdentityServer.Integration.Authority" value="https://Orchestrator/Identity" />
<add key="IdentityServer.Integration.ClientId" value="orchestratorapiaccess" />
<add key="IdentityServer.Integration.ClientSecret" value="a5d57b1d-5b25-49ba-bff7-33aa57f96a58" />
<add key="IdentityServer.Integration.AccessTokenCacheBufferInSeconds" value="50" />
<add key="IdentityServer.Integration.UserOrchestratorApiAudience" value="OrchestratorApiUserAccess" />
UiPath.Orchestrator.dll.config
:
IdentityServer.Integration.S2SOrchestratorApiAudience
OrchestratorApiS2SAccess
.
UiPath.Orchestrator.dll.config
também contenha as seguintes chaves preexistentes, com seus valores definidos como true
:
MultiTenancy.AllowHostToAccessTenantApi
true
, permite que os usuários do host acessem dados específicos de outros tenants. Por padrão, o valor é definido como true
.
MultiTenancy.TenantResolvers.HttpGlobalIdHeaderEnabled
true
permite que o Orchestrator identifique o tenant ao ler o ID global do tenant do cabeçalho da solicitação do API.
<add key="IdentityServer.Integration.S2SOrchestratorApiAudience" value="OrchestratorApiS2SAccess" />
<add key="MultiTenancy.AllowHostToAccessTenantApi" value="true" />
<add key="MultiTenancy.TenantResolvers.HttpGlobalIdHeaderEnabled" value="true" />
<add key="IdentityServer.Integration.S2SOrchestratorApiAudience" value="OrchestratorApiS2SAccess" />
<add key="MultiTenancy.AllowHostToAccessTenantApi" value="true" />
<add key="MultiTenancy.TenantResolvers.HttpGlobalIdHeaderEnabled" value="true" />
O Orchestrator funciona como um gerador de tokens para Robôs. Os Robôs chamam o endpoint do Orchestrator para gerar um token de acesso. O token de acesso é passado para atividades que podem chamar diferentes recursos, como o AI Fabric. Com a integração do Identity Service com o Orchestrator, o Identity Server assume a geração de tokens de acesso.
Esta seção contém parâmetros para configurar o servidor de atualização.
Com que frequência o cliente verifica as atualizações. O valor padrão é 180 minutos.
Após quantos minutos, uma atualização forçada começa se a atualização tiver sido adiada. O valor padrão é 1440 minutos.
Após quantos minutos, uma atualização forçada começa se a atualização tiver sido adiada. Isso é específico para atualizações agendadas. O valor padrão é 10 minutos.
Quantas vezes uma falha de atualização é repetida. O valor padrão é 3.
Como a nova tentativa é realizada com base na série cronológica.
Exemplo:
- Primeira nova tentativa: após o valor configurado em minutos.
- Segunda nova tentativa: após duas vezes o valor configurado em minutos.
- Terceira nova tentativa: após quatro vezes o valor configurado em minutos.
UiPath.Orchestrator.dll.config
correspondente: <logger name="Robot.*" writeTo="database,robotElasticBuffer" final="true" />
. Ela é usada para configurar as mensagens de log geradas pelos Robôs. Os seguintes parâmetros devem ser configurados:
-
writeTo
- O local onde as mensagens de log geradas pelo Robot são gravadas. Os seguintes valores estão disponíveis:database
- Os logs são enviados para o banco de dados SQL do Orchestrator. Esse é um dos valores padrão.-
robotElasticBuffer
- Os logs são enviados para o Elasticsearch. Esse é o segundo valor padrão. Lembre-se de que isso requer configurações adicionais. Para obter mais detalhes, consulte a seção Elasticsearch .Ter logs enviados para o banco de dados SQL do Orchestrator e o Elasticsearch permite que você tenha logs de não repúdio. Exclua um dos valores para interromper o logon para esse local.
final
- Um sinalizador que indica o que fazer quando uma correspondência entre uma mensagem registrada e o nome do logger é encontrada. Quando definido comotrue
, ele não procura outra correspondência. Quando definido comofalse
, outras regras que correspondem à mesma origem são marcadas. Por padrão, é definido comotrue
.
UiPath.Orchestrator.dll.config
correspondente: <logger name="Monitoring.*" writeTo="monitoring" minlevel="Warn" final="true" />
. Ele é usado para configurar os logs de erro exibidos na página Monitoramento. Observe se você remover essa regra ou alterar a target
, nenhum log de erro será exibido na página Monitoramento.
UiPath.Orchestrator.dll.config
correspondente: <logger name="BusinessException.*" minlevel="Info" writeTo="businessExceptionEventLog" final="true" />
. É usada para configurar os logs para exceções de negócios geradas. Por exemplo, problemas de validação (por exemplo, Invalid username
) ou conflitos de negócios (por exemplo, License expired
).
UiPath.Orchestrator.dll.config
correspondente: <logger name="*" minlevel="Info" writeTo="eventLog" />
. É usada para configurar todos os outros logs além dos descritos acima, incluindo aqueles gerados pelo Orchestrator.
Saiba mais sobre as configurações adicionais.
O seguinte destino do NLog deve ser preenchido de acordo com sua configuração do Elasticsearch:
<target xsi:type="ElasticSearch" name="robotElastic" uri="<elasticSearch_url_1>,<elasticSearch_url_2>, <elasticSearch_url_3>" index="${event-properties:item=indexName}-${date:format=yyyy.MM}" documentType="logEvent" includeAllProperties="true" disablePing="true" layout="${message}" excludedProperties="agentSessionId,tenantId,organizationUnitId,indexName" />
<target xsi:type="ElasticSearch" name="robotElastic" uri="<elasticSearch_url_1>,<elasticSearch_url_2>, <elasticSearch_url_3>" index="${event-properties:item=indexName}-${date:format=yyyy.MM}" documentType="logEvent" includeAllProperties="true" disablePing="true" layout="${message}" excludedProperties="agentSessionId,tenantId,organizationUnitId,indexName" />
uri
- o URL do Elasticsearch; observe que você deve incluir o protocolo e porta, comohttp://elastic_server:9200
. Você pode remover a necessidade de um balanceador de carga preenchendo esse parâmetro com a URL do Elasticseach de cada nó, comouri="http://elastic-node1:9200,http://elastic-node2:9200,http://elastic-node3:9200"
.excludedProperties
- dados que você não deseja que sejam salvos no Elasticsearch.index
- o formato do índice de log que pode ser exclusivo por tenant ou compartilhado por todos os tenants. Detalhes abaixo.requireAuth
-defina comotrue
para habilitar a autenticação ao conectar o Orchestrator no Elasticsearch.username
- especifique o nome de usuário usado para fazer logon no Elasticsearch. Você precisa configurá-lo serequireAuth
estiver definido comotrue
eOAuthEnabled
estiver definido comofalse
.password
-especifique a senha usada para fazer logon no Elasticsearch. Você precisa configurá-lo serequireAuth
estiver definido comotrue
eOAuthEnabled
estiver definido comofalse
.OAuthEnabled
- defina esse parâmetro comotrue
para habilitar o OAuth 2 e usar um mecanismo de autenticação baseado em token para o destino do Nlog para o Elasticsearch. Ao habilitar isso pela primeira vez, você precisa fornecer seu nome de usuário e senha atuais para gerar o token inicial. Para esse parâmetro entrar em vigor, você precisa garantir queLogs.Elasticsearch.OAuthEnabled
também esteja definido comotrue
e que você configurou corretamente o servidor do Elasticsearch. Para obter mais detalhes, consulte a página de Autenticação do X-Packseção .
- Índice separado -
index="${event-properties:item=indexName}-${date:format=yyyy.MM}"
Um índice separado é usado para cada tenant, o que significa que os logs específicos a um tenant são gerados e recuperados com base em um identificador exclusivo do tenant, nesse casoindexName
, que assume como padrão o nome do tenant. Essa é a configuração padrão. Nesse caso, os logs são gerados por mês. -
Índice compartilhado -
index="robotlogs-${date:format=yyyy.MM.dd}"
Um índice é usado para todos os tenants, o que significa que todos os logs usam o mesmo índice independentemente do tenant. Neste caso, os logs são gerados por dia. Para usar um índice compartilhado, você também precisa adicionar a seguinte chave emUiPath.Orchestrator.dll.config
:<add key="Logs.Elasticsearch.SharedIndex" value="robotlogs" />
. Certifique-se de defini-lo com o mesmo valor do parâmetroindex
no destino do NLog.Importante: os logs gerados usando um índice individual serão mantidos se você mudar para um índice compartilhado. No entanto, os logs gerados usando um índice compartilhado serão perdidos se você mudar para um individual.
- A seção de configuração de destino do NLog
name="robotElastic" index="robot-logs-${date:format=yyyy-MM}"
deUiPath.Orchestrator.dll.config
. - O registro
LoggingIndex
da tabeladbo.Settings
do banco de dados do Orchestrator.Certifique-se de que o registro corresponda ao padrão de índice da configuração de destino do NLog (ou seja,robot-logs-${date:format=yyyy-MM}
).
Para armazenar os logs de eventos do sistema no banco de dados, ao invés do Visualizador de eventos, siga estas etapas:
-
Crie uma nova tabela do banco de dados, como por exemplo:
CREATE TABLE [dbo].[EventLogs]( [Id] [bigint] IDENTITY(1,1) NOT NULL, [Timestamp] [datetime] NOT NULL, [Level] [int] NOT NULL, [Message] [nvarchar](max) NULL, [Exception] [nvarchar](max) NULL)
CREATE TABLE [dbo].[EventLogs]( [Id] [bigint] IDENTITY(1,1) NOT NULL, [Timestamp] [datetime] NOT NULL, [Level] [int] NOT NULL, [Message] [nvarchar](max) NULL, [Exception] [nvarchar](max) NULL)Na consulta acima, criamos uma tabela chamadaEventLogs
com as seguintes colunas:Id
- para manter um número de ID para cada log, começando aqui com1
, e incrementar o valor com cada log adicionado;Timestamp
- para manter o horário em que cada evento foi registrado;Level
- para manter o nível de registros em log numéricos de cada evento;Message
- para manter a mensagem de cada evento, se aplicável;-
Exception
- para manter a exceção registrada para cada evento, se aplicável.Observação: você pode usar qualquer nome para sua tabela e remover quaisquer colunas da consulta acima ou adicionar outras para atender às suas necessidades.
-
No arquivo
UiPath.Orchestrator.dll.config
, adicione um novo destino do NLog:<target xsi:type="Database" connectionString="${ui-connection-strings:item=Default}" name="eventLogDatabase" keepConnection="true"> <commandText> INSERT INTO dbo.EventLogs (Timestamp, Level, Message, Exception) VALUES (@timestamp, @level, @message, @exception) </commandText> <parameter name="@timestamp" layout="${date:format=yyyy-MM-dd HH\:mm\:ss.fff}" /> <parameter name="@level" layout="${event-properties:item=levelOrdinal}" /> <parameter name="@message" layout="${message}" /> <parameter name="@exception" layout="${onexception:${exception:format=tostring:maxInnerExceptionLevel=5:innerFormat=tostring}}" /> </target>
<target xsi:type="Database" connectionString="${ui-connection-strings:item=Default}" name="eventLogDatabase" keepConnection="true"> <commandText> INSERT INTO dbo.EventLogs (Timestamp, Level, Message, Exception) VALUES (@timestamp, @level, @message, @exception) </commandText> <parameter name="@timestamp" layout="${date:format=yyyy-MM-dd HH\:mm\:ss.fff}" /> <parameter name="@level" layout="${event-properties:item=levelOrdinal}" /> <parameter name="@message" layout="${message}" /> <parameter name="@exception" layout="${onexception:${exception:format=tostring:maxInnerExceptionLevel=5:innerFormat=tostring}}" /> </target>Definição de umparameter
correspondente para que os dados sejam adicionados em cada coluna do banco de dados, neste exemplo,@timestamp
,@level
,@message
e@exception
. -
Por fim, associe o destino recém-criado com a classificação do logger do NLog para todas as mensagens acima do Orchestrator, adicionando:
<logger name="*" minlevel="Info" writeTo="eventLog,eventLogDatabase" />
<logger name="*" minlevel="Info" writeTo="eventLog,eventLogDatabase" />
O NLog é uma plataforma de registros em log de código-fonte aberto, facilmente configurável e extensível para uma variedade de plataformas .NET. Com o NLog, você pode armazenar ou passar dados do log para qualquer número de destinos predefinidos ou personalizados, como um arquivo local, um log de evento, e-mail ou banco de dados.
Trace
, Debug
, Info
, Warn
, Error
, Fatal
ou Off
. Para obter uma descrição dos níveis disponíveis no Orchestrator, consulte a página Níveis de registro em log.
Off
; ele é habilitado configurando a seguinte seção do arquivo UiPath.Orchestrator.dll.config
:
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true" throwExceptions="false" internalLogLevel="Off" internalLogFile="">
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true" throwExceptions="false" internalLogLevel="Off" internalLogFile="">
Os atributos que devem ser definidos são:
-
internalLogLevel
- o nível de registro em log desejado -
internalLogFile
- o local do arquivo de log
Por exemplo:
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true" throwExceptions="false" internalLogLevel="Debug" internalLogFile="C:\logs.txt">
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true" throwExceptions="false" internalLogLevel="Debug" internalLogFile="C:\logs.txt">
internalLogFile
.
Features.Queues.QueryUseReadOnlyReplica
true
se você quiser permitir a consulta da réplica somente leitura para itens de fila.
false
.
Monitoring.UseReadOnlyReplica
true
se você quiser recuperar dados de monitoramento da réplica somente leitura.
false
.
- Configurações de Aplicativo
- Configurações de instalação avançadas
- Filas
- Alertas
- Implantação
- Armazenar Buckets
- Autorização
- Load balancer
- Cofre de senhas
- Autenticação do Azure AD
- Autenticação do Active Directory
- Logs
- Webhooks
- Escalabilidade
- Análise
- Gravação de mídia
- Paginação
- Gatilhos
- Outros
- SecureAppSettings
Chave de encriptação
Azure.KeyVault.ClientId
Azure.KeyVault.CertificateThumbprint
Azure.KeyVault.VaultAddress
Azure.KeyVault.DirectoryId
- Configurações do Servidor de Identidade
- Integração
- Tokens de acesso de provisionamento do Robô
- Atualizar configurações do servidor
UpdateServer.CheckUpdates.PollingInterval
UpdateServer.CheckUpdates.DefaultForceInstallAfterMinutes
UpdateServer.CheckUpdates.ScheduledForceInstallAfterMinutes
UpdateServer.CheckUpdates.MaxRetries
UpdateServer.UpdateRequest.RetryStepMinutes
- Configuração de registro em log
- Logs do Robot
- Logs de monitoramento
- Logs de exceções de negócios
- Outros logs
- Configurações Adicionais
- Elasticsearch
- Configuração do índice
- Log de eventos no banco de dados
- Habilitar a depuração do NLog
- Réplica SomenteLeitura do Orchestrator