- Primeros pasos
- Requisitos
- Mejores prácticas
- Instalación
- Actualizando
- Servidor de identidad
- Complemento de alta disponibilidad
- Solución de problemas de errores de inicio
UiPath.Orchestrator.dll.config
UiPath.Orchestrator.dll.config
(C:\Program Files (x86)\UiPath\Orchestrator
) define los parámetros, la configuración y las preferencias aplicadas en tu implementación de Orchestrator.
-
Cualquier cambio a los parámetros de este archivo se sobrescribe al actualizar.
-
Solo los administradores deben cambiar los valores de estos parámetros.
-
Recomendamos que se restaure manualmente el sitio web tras realizar los cambios en
UiPath.Orchestrator.dll.config
. -
Los parámetros que no se documentan en esta página no deben cambiarse o tener homólogos en las páginas de Ajustes.
-
Todos los parámetros distinguen entre mayúsculas y minúsculas.
EncryptionKeyPerTenant.Enabled
Te permite utilizar diferentes claves de cifrado por tenant, en función de una cuenta de Microsoft Azure Key Vault. Pueden atribuirse los siguientes valores:
false
- utiliza una única clave de cifrado en toda la instancia de Orchestrator. Este es el valor predeterminado.true
: Utiliza una clave de cifrado diferente para cada tenant, lo que mejora la seguridad de tu tenant y ofrece una mejor segregación de los datos confidenciales.
EncryptionKeyPerTenant.KeyProvider
parámetro , así como los que se encuentran en la sección SecureAppSettings.
EncryptionKeyPerTenant.KeyProvider
AzureKeyVault
para utilizar una versión predeterminada de Microsoft Azure Key Vault. No proporcionamos licencias de Azure Key Vault. Ten en cuenta que también debes configurar los parámetros descritos en la sección SecureAppSettings. Si EncryptionKeyPerTenant.Enabled
está establecido en false
, este parámetro no se utiliza.
Los cambios aquí realizados a los ajustes de cifrado deben replicarse en el archivo appsettings.Production.json de Identity Server, de acuerdo con la siguiente equivalencia de campos:
Orchestrator UiPath.Orchestrator.dll.config |
Identity Server appsettings.Production.json |
---|---|
EncryptionKeyPerTenant.Enabled |
EncryptionKeyPerTenant |
Azure.KeyVault.VaultAddress |
AzureKeyVaultAddress |
Azure.KeyVault.CertificateThumbprint |
AzureKeyVaultCertificateThumbprint |
Azure.KeyVault.ClientId |
AzureKeyVaultClientId |
Azure.KeyVault.DirectoryId |
AzureKeyVaultDirectoryId |
EncryptionKeyPerTenant.KeyProvider |
MultiTenantEncryptionKeyProvider |
inProgressMaxNumberOfMinutes
La cantidad máxima de tiempo que los elementos en la cola pueden mostrar el estado En curso. Tras ese tiempo, el estado de los elementos en la cola cambia a Abandonados. De forma predeterminada, está fijado en 1440 minutos (24 horas).
QueuesStatisticsScheduleCron
La frecuencia de actualización de las estadísticas de los elementos en cola en las páginas Panel y Transacciones, y en la ventana Gráfico. Se actualizan cada minuto de forma predeterminada.
UpdateUncompletedItemsJobCron
La frecuencia de búsqueda en la base de datos de las colas que deban ser trasladadas a Abandonadas. De forma predeterminada, este parámetro está fijado en cada hora.
Queue.MaxSlaInMinutes
UiPath.Orchestrator.dll.config
, incluidos los casos de actualización.
Queue.MaxSchemaFileSizeInKilobytes
UiPath.Orchestrator.dll.config
.
Queue.SlaReadaheadTimeLimitHours
UiPath.Orchestrator.dll.config
de forma predeterminada.
Queue.MaxSpecificDataSizeInKiloBytes
El tamaño máximo del contenido de Datos específicos para los nuevos elementos en la cola, en kilobytes. En instalaciones de Orchestrator desde cero, este parámetro está oculto y tiene un valor predeterminado de 1024 (1 MB). En caso de actualización, este parámetro es visible y tiene un valor de 204 800 (200 MB).
Queue.ProcessActivationSchedule
La cantidad de tiempo entre la comprobación de los elementos de la cola no procesados. Por defecto, está establecido en 30 minutos. Para ajustar el intervalo de verificación, especifica un valor entre 0 y 59, reinicia el IIS y, a continuación, elimina el desencadenador de la cola existente y vuelve a crearlo.
DailyAlertMailJobCron
Permite configurar una expresión Cron que controla cuándo se envían alertas de correo electrónico diarias. Esto solo funciona si se habilitan las alertas de correo electrónico. El informe contiene todas las alertas de gravedad de tipo Fatal y Error generadas el día anterior. Por defecto, se envía todos los días a las 7:00.
Alerts.Email.Enabled
false
de forma predeterminada. Puedes establecerlo en true
para habilitar automáticamente las alertas de correo electrónico para el tenant que estás a punto de crear.
Sin embargo, una vez creado el tenant, los cambios en este parámetro dejan de tenerse en cuenta. En su lugar, la configuración se puede cambiar a través de la casilla de verificación Activar alertas por correo electrónico en la página Configuración. Detalles...
NotificationDistributerJobCron
La frecuencia con la que se envían notificaciones de alerta a la interfaz. Las alertas se envían, de forma predeterminada, cada 10 segundos.
PeriodicErrorMailJobCron
Permite configurar una expresión Cron que controla la frecuencia con la que se envían alertas de correo electrónico periódicas. Esto solo funciona si se habilitan las alertas de correo electrónico. El valor predeterminado es cada 10 minutos, por lo que el informe contiene las alertas de gravedad de tipo Fatal y Error generadas en los últimos 10 minutos. Si no se ha generado ninguna alerta, no se envía ningún informe.
PasswordComplexity
Controla las reglas de validación de la complejidad de la contraseña y se expresa mediante expresiones regulares. La complejidad se aplica a todas las contraseñas (incluida la contraseña del administrador del host) de forma predeterminada. No obstante, cada tenant puede personalizar la complejidad de su contraseña de inicio de sesión de usuario en la pestaña de Seguridad de la página de Ajustes. De forma predeterminada, las contraseñas deben contener un mínimo de 8 caracteres, y al menos una letra y un número.
SystemJobs.DetectNotRespondingRobots.MaxAlertCount
<add key="SystemJobs.DetectNotRespondingRobots.MaxAlertCount" value="10" />
al archivo UiPath.Orchestrator.dll.config
, debajo del resto de parámetros de alerta. Si aplicas esta configuración, ten en cuenta que, cuando el número total de alertas supere la cifra configurada, se producirá una advertencia en el visor de eventos, 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
, lo que significa que recibirás alertas por correo electrónico 6 veces: 180, 90, 30, 14, 7 y 1 día antes de que caduque tu licencia. Puedes definir un número menor de valores para reducir la frecuencia de las alertas por correo electrónico. Esto puede hacerse, por ejemplo, añadiendo la siguiente clave al archivo UiPath.Orchestrator.dll.config
: <add key="SystemJobs.LicenseExpirationAlert.DaysBefore" value="90,30,14" />
.
Storage.Type
y Storage.Location
.
Storage.Type
Define el destino donde se guardan los paquetes y los medios de ejecución. Puede completarse con los siguientes 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 la ubicación concreta donde se guardan los paquetes y los medios de ejecución.
Storage.Location
es obligatorio cuando:
- actualizar desde cualquier versión anterior a la 2020.10 de Orchestrator, y
- el anterior
NuGet.Repository.Type
eraLegacy
, y - el anterior
NuGet.Packages.Path
no utilizó el valor predeterminado.
Destino |
Ubicación |
---|---|
SistemaDeArchivos |
Proporciona una ruta absoluta utilizando el siguiente formato:
RootPath=C:\FolderName\AnotherFolderName .
Ejemplo:
<add key="Storage.Location" value="RootPath=C:\FolderName\AnotherFolderName" /> .
En la carpeta proporcionada, se creará la siguiente estructura de carpeta: Orchestrator-Host\Libraries : una carpeta dedicada a las bibliotecas almacenadas en la fuente del host.
Orchestrator-[tenantKey] - Una carpeta para cada tenant. La clave de tenant encontrada en la base de datos identifica al tenant. Por ejemplo Orchestrator-12ab1234-a567-456b-a12b-ab3456b123ab .
Por cada carpeta del tenant, se crean otros tres subdirectorios:
Los archivos se guardan en sus carpetas correspondientes en la ubicación especificada. De forma predeterminada, se almacenan en la siguiente ruta:
C:\Program Files (x86)\UiPath\Orchestrator\Storage .
|
Azure |
Proporcionar una cadena de conexión. Ejemplo:
<add key="Storage.Location" value="DefaultEndpointsProtocol=https;AccountName=usr;AccountKey=...;EndpointSuffix=core.windows.net" /> .
|
Amazon |
Ejemplo:
<add key="Storage.Location" value="EndpointRegion=eu-west-3;accessKey=AKIAZGUEIGXUJ3BBI4MW;secretKey=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;useHttp=false" /> .
Ejemplo:
<add key="Storage.Location" value="EndpointRegion=eu-west-3;accessKey=AKIAZGUEIGXUJ3BBI4MW;secretKey=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;useHttp=false;BlockPublicAccess=true" /> .
Ejemplo:
<add key="Storage.Location" value="EndpointRegion=eu-west-3;UseDefaultCredentials=true" /> .
|
MinIO |
Proporcionar una cadena de conexión. Ejemplo:
<add key="Storage.Location" value="host=localhost:9001;accessKey=YVKYFJ0ZY246KDKP0634;secretKey=bdBEk2ubhIFsTNPuQ80PjKL+oqZBj67HoSWBFnw1" /> .
|
Ejemplo
<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\" />
La configuración anterior da instrucciones a Orchestrator:
- para que almacene los metadatos del paquete en la base de datos SQL;
- para que conserve los propios archivos en el almacenamiento de Azure Blob en la ubicación indicada por la cadena de conexión
DefaultEndpointsProtocol=https;AccountName=usr;AccountKey=...;EndpointSuffix=core.windows.net
; -
para usar la convención de denominación predeterminada para el nombre del contenedor Azure -
Orchestrator-tenantKey
.Importante:Si tiene más de 99 tenants en Orchestrator, tiene dos opciones para evitar el límite de la cuenta del depósito de AWS S3.
- Almacena los datos en un solo depósito externo, como se indica en la sección siguiente.
- Aumenta el límite de cuentas del depósito AWS S3 predeterminado para que coincida con el número de tenants.
Esto es necesario porque se crea un depósito independiente para cada tenant.
Almacenamiento de datos de Orchestrator en un solo depósito externo
Para usar un único depósito con su propio proveedor de almacenamiento externo, añade los siguientes parámetros a la cadena de conexión correspondiente:
BucketName
- obligatorio. Permite que Orchestrator almacene todos los tenants en un único depósito. Requiere que el nombre de depósito sea como se ha establecido en el proveedor de almacenamiento. Para esto, el almacenamiento externo debe existir antes de instalar Orchestrator.CanCreateBucket
: Opcional. Si se establece como verdadero, permite que Orchestrator cree el depósito en el almacenamiento externo en tu nombre. El valor predeterminado es Falso.
ContentPrefix
: opcional. Especifica la ruta de los datos de Orchestrator dentro del almacenamiento externo. Por ejemplo,orchestrator/data
.
Ejemplo: uso de un depósito único con un proveedor de almacenamiento externo propio
<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
. El valor predeterminado se utiliza en la propagación inicial de la base de datos. Ten en cuenta que también se aceptan cadenas arbitrarias.
NuGet.Activities.ApiKey
NuGet.Packages.ApiKey
. Ten en cuenta que también se aceptan cadenas arbitrarias.
Se puede realizar la sincronización de paquetes entre múltiples nodos de Orchestrator y la interfaz supervisando el sistema de archivos o utilizando Redis. Esto se puede configurar utilizando la siguiente configuración. La forma recomendada es a través de Redis.
Processes.AllowUpdateWithRunningJobs
Especifica si puedes eliminar un proceso con trabajos en ejecución o pendientes asociados. Ten en cuenta que este parámetro está oculto de forma predeterminada. Están disponibles los siguientes valores:
true
- Los procesos se pueden eliminar con trabajos en ejecución o pendientes asociados.false
: Los procesos no se pueden eliminar con trabajos en ejecución o pendientes asociados. En esta instancia, al intentar eliminar un proceso se muestra el siguiente mensaje de error: "En estos momentos no se puede modificar este proceso porque hay trabajos activos asociados". (#1666)". Este es el valor predeterminado.
<add key="Processes.AllowUpdateWithRunningJobs" value="true" />
en el archivo UiPath.Orchestrator.dll.config
.
Deployment.Libraries.AllowTenantPublish
Permite especificar si los tenants que utilizan la fuente del host pueden o no subir bibliotecas a la fuente. Están disponibles los siguientes valores:
true
: las bibliotecas subidas en el nivel de tenant se propagan a la fuente del host. Este es el valor predeterminado.false
: las bibliotecas subidas en el nivel de tenant no se propagan a la fuente del host. No obstante, ten en cuenta que los usuarios tienen acceso a las bibliotecas existentes en la transmisión.
También se puede configurar desde la interfaz de usuario. La opción correspondiente, Permitir a los usuarios tenant subir a la fuente, se puede encontrar en el nivel de host, en la página de Ajustes.
Buckets.ContentSecurityPolicy
UiPath.Orchestrator.dll.config
.
Buckets.AvailableProviders
Se utiliza para controlar los proveedores que pueden utilizarse al crear depósitos de almacenamiento. Los proveedores disponibles son: Orchestrator, Amazon, Azure, Minio, proveedores de almacenamiento compatibles con S3 y Sistema de archivos. Se pueden introducir varios valores separados por comas.
UiPath.Orchestrator.dll.config
, y solo se seleccionan los siguientes proveedores: Orchestrator
, Amazon
, Azure
, Minio
y S3Compatible
. El comportamiento por defecto es específico tanto para instalaciones limpias como actualizaciones. Si la clave es visible, los proveedores disponibles se limitan a los especificados como valores Buckets.AvailableProviders
.
Ejemplo: para utilizar solamente Orchestrator, Amazon y Azure como proveedores de depósito de almacenamiento, añade la siguiente clave:
<add key="Buckets.AvailableProviders" value="Orchestrator,Amazon,Azure" />
<add key="Buckets.AvailableProviders" value="Orchestrator,Amazon,Azure" />
Buckets.FileSystem.Allowlist
Buckets.FileSystem.Allowlist
.
|
. Tenga en cuenta que las rutas deben estar completamente cualificadas, ya sea con una unidad de disco o una ruta UNC (p. ej. c:\
, c: est
, \\servershare\shared
), y cada uno de ellos representa un prefijo permitido para cualquier depósito. Puede crearse un depósito en esa ruta particular o en cualquier subtrazo.
Buckets.FileSystem.Allowlist
configuración tiene una serie de implicaciones de seguridad, se recomienda encarecidamente que consultes Utilizar la lista de permisos de almacenamiento de FileSystem de forma segura antes de continuar.
AcceptedRootUrls
,
), como en "https://server1,https://server2"
.
Auth.Bearer.Robot.Expire
La cantidad de tiempo tras la que caduca el token al portador de tu Robot. De forma predeterminada, está establecido en 30 minutos.
Auth.DisabledPermissions
<add key="Auth.DisabledPermissions" value="Machines.Delete,Libraries.Delete" />
.
Auth.RememberMe.Enabled
true
, de forma predeterminada, lo que significa que se muestra la casilla de verificación. Ajústalo a false
para ocultarlo. Esta configuración no se muestra por defecto en el archivo UiPath.Orchestrator.dll.config
.
Auth.AllowChangePassword
Te permite configurar si un usuario puede cambiar su contraseña a través de la API. Esta configuración no se muestra de manera predeterminada en el archivo UiPath.Orchestrator.dll.config
. Los valores disponibles son true
(valor predeterminado) y false
.
Auth.AllowSelfEmailUpdate
true
, lo que significa que se puede actualizar. Establece el parámetro como false
para que el campo solo sea de lectura. Esta configuración no se muestra en el archivo UiPath.Orchestrator.dll.config
de forma predeterminada.
ExternalAuth.AccessTokenAuth.Enabled
UiPath.Orchestrator.dll.config
de forma predeterminada. Están disponibles los siguientes valores:
true
: el usuario puede realizar solicitudes autenticadas utilizando un token de acceso emitido por Auth0. Esto solo se tiene en cuenta si se establece una audiencia válida para el parámetroExternalAuth.AccessTokenAuth.Audience
.false
: El usuario no puede realizar solicitudes autenticadas utilizando un token de acceso emitido por Auth0. Este es el valor predeterminado.
ExternalAuth.AccessTokenAuth.Audience
<add key="ExternalAuth.AccessTokenAuth.Audience" value="https://cloud.uipath.com" />
. Esta configuración no se muestra en el archivo UiPath.Orchestrator.dll.config
de forma predeterminada.
ExternalAuth.ShowPII
<add key="ExternalAuth.ShowPII" value="true" />
. La clave no se muestra de forma predeterminada en UiPath.Orchestrator.dll.config
, y el comportamiento predeterminado no permite que se muestre la PII.
RestrictBasicAuthentication
Trasladado a appsettings.json de Identity Server.
EnableBasicAuthenticationForHostTenant
Trasladado a appsettings.json de Identity Server.
Estos ajustes solo deben modificarse si utilizas un equilibrador de carga.
LoadBalancer.UseRedis
false
.
LoadBalancer.Redis.ConnectionString
LoadBalancer.UseRedis
está establecido en true
. Una cadena de conexión que te permite configurar tu servidor Redis, que contiene la URL del servidor, la contraseña y el puerto utilizado con Redis. Todos los nodos del clúster HAA deben añadirse en la cadena de conexión.
También es posible habilitar las conexiones cifradas de SSL entre los nodos de Orchestrator y el servicio Redis. Para obtener más información, haz clic aquí. Ejemplos:
- con SSL habilitado:n
<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" />
- sin 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
de tu directorio de instalación. Por ejemplo:
- Almacén único:
<add key="Plugins.SecureStores" value="UiPath.Orchestrator.CyberArk.dll"/>
-
Almacenes múltiples:
<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" />
Cuando se actualiza una instancia de Orchestrator con una integración existente de CyberArk, este ajuste se rellena automáticamente con el complemento CyberArk. En todas las demás instalaciones, el valor está vacío de forma predeterminada.
Plugins.SecureStores.CyberArk.CLIPasswordSDKExePath
CLIPasswordSDK64.exe
en una ruta de instalación personalizada. Por ejemplo, si el directorio de instalación de CyberArk es D:\CustomFolder\
, debes añadir la siguiente clave: <add key="Plugins.SecureStores.CyberArk.CLIPasswordSDKExePath" value="D:\CustomFolder\CLIPasswordSDK64.exe"/>
. El valor predeterminado de esta configuración de la aplicación es C:\Program Files (x86)\CyberArk\ApplicationPasswordSdk\CLIPasswordSDK64.exe
.
Plugins.SecureStores.CyberArk.UsePowerShellCLI
false
. Añade la siguiente clave para habilitarlo: <add key="Plugins.SecureStores.CyberArk.UsePowerShellCLI" value="true"/>
.
Plugins.SecureStores.CyberArkCCP.KeyStorageFlags
Habilita la posibilidad de elegir dónde almacenar y cómo importar la clave privada del certificado de cliente configurado para un almacén de credenciales CyberArk CCP.
DefaultKeySet
la opción predeterminada.
EphemeralKeySet
no funcionará en máquinas Windows. Recomendamos utilizar MachineKeySet
en su lugar.
Plugins.SecureStores.CyberArkCCP.EnableOsUserAuthentication
<add key="Plugins.SecureStores.CyberArkCCP.EnableOsUserAuthentication" value="true"/>.
La configuración de la autenticación de Azure AD se ha trasladado a la página de proveedores externos de Identity Server.
La configuración para la autenticación de Active Directory se realiza después de la instalación desde el portal de administración de Orchestrator.
Para ver las instrucciones, consulta la página Configuración de la integración de Active Directory.
Logs.RobotLogs.ReadTarget
database
o robotelasticbuffer
).
RobotsLogs.Flush.Interval
UiPath.Orchestrator.dll.config
. A menos que se especifique lo contrario, su valor es de 0 segundos. El siguiente ejemplo muestra cómo establecer un intervalo de descarga de 60 segundos, por lo que el UiPath Robot enviará registros al servidor 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 menos que se especifique lo contrario, su valor es de 100 entradas de mensajes de registro, lo que se traduce en que el UiPath Robot envía lotes de 100 registros al servidor.
<add key="RobotsLogs.Flush.BatchSize" value="100" />
<add key="RobotsLogs.Flush.BatchSize" value="100" />
Logs.RequestAbortedLogBehavior
Especifica el comportamiento de registro para las excepciones de cancelación que se lanzan al cancelar una operación en ejecución. Se generan, por ejemplo, al hacer clic en un botón y, antes de que se ejecute la operación, se hace clic en otro diferente. Ten en cuenta que este parámetro está oculto de forma predeterminada. Están disponibles los siguientes valores:
Ignore
: todas las excepciones de cancelación se ignoran si se han anulado las solicitudes correspondientes. Este es el valor predeterminado.Info
: las excepciones de cancelación se registran con el nivel de gravedad de Información.None
: las excepciones de cancelación se registran con el nivel de gravedad del Error.
<add key="Logs.RequestAbortedLogBehavior" value="Ignore" />
en el archivo de configuración.
Logs.Elasticsearch.SharedIndex
index
en el NLog de destino. Por ejemplo, <add key="Logs.Elasticsearch.SharedIndex" value="robotlogs" />
. Más detalles aquí. Ten en cuenta que este parámetro está oculto por defecto.
Logs.Elasticsearch.EnableFolderIdFilter
true
de forma predeterminada, por lo que los registros están ocultos. Establece el parámetro como false
para que se muestren: <add key="Logs.Elasticsearch.EnableFolderIdFilter" value="false" />
Logs.Elasticsearch.Username
El nombre de usuario requerido para leer los registros en Elasticsearch. Ten en cuenta que solo debes configurar este parámetro si la autenticación de Elasticsearch está habilitada y no usas un objetivo de NLog. Al configurar el parámetro, asegúrate de que su valor coincide con la configuración del servidor de Elasticsearch. Para obtener más información, consulta la Autenticación de X-Pack.
Logs.Elasticsearch.Password
El nombre de usuario requerido para leer los registros en Elasticsearch. Ten en cuenta que solo debes configurar este parámetro si la autenticación de Elasticsearch está habilitada y no usas un objetivo de NLog. Al configurar el parámetro, asegúrate de que su valor coincide con la configuración del servidor de Elasticsearch. Para obtener más información, consulta la Autenticación de X-Pack.
Logs.Elasticsearch.OAuthEnabled
true
para habilitar OAuth2 y utilizar un mecanismo de autenticación basado en tokens para leer los registros de los robots en Elasticsearch, como alternativa al sistema de usuario y contraseña. Por defecto, este parámetro está establecido en false
.
Cuando se habilita la autenticación OAuth, sigue siendo necesario proporcionar el nombre de usuario y la contraseña como en el método de autenticación predeterminado. Esto es necesario porque el token inicial se genera en base a esas credenciales.
Consulta Autenticación OAuth2 para obtener instrucciones detalladas sobre cómo configurar la autenticación OAuth2 para Elasticsearch.
Logs.Elasticsearch.OAuthExpireInSeconds
Permite establecer el tiempo (en segundos) antes de que el token de acceso utilizado para leer los registros del robot en Elasticsearch caduque y se actualice. Su valor por defecto y recomendado es de 1200 segundos (20 minutos), y su valor máximo es de 3600 segundos (60 minutos). Para invalidar un token, puedes usar el botón dedicado disponible en la interfaz de usuario de Orchestrator.
Logs.Elasticsearch.OAuthEnabled
está establecido como true
y de que has configurado correctamente el servidor de Elasticsearch. Para obtener más información, consulta Autenticación OAuth2.
Logs.Elasticsearch.DisableProductCheckStatus
true
.
false
.
disableProductCheckStatus
en el archivo Nlog, que también está oculto y false
de forma predeterminada. También debe establecerse en true
para habilitar la función.
Hay más configuración de webhooks disponible en Webhooks AppSettings.json.
Webhooks.VerifyAvailability.Enabled
true
, lo que significa que la función está habilitada.
Scalability.Heartbeat.PeriodSeconds
30
segundos.
Scalability.Heartbeat.FailureThreshold
4
, lo que significa que después de 2 minutos de latidos fallidos (4 x 30 segundos = 2 minutos), se marca que ese UiPath Robot no responde.
Scalability.SignalR.Enabled
true
. Este parámetro se utiliza en la propagación inicial de la base de datos. Para realizar cambios tras la instalación, utiliza la página Ajustes con permisos de tenant o de host.
Scalability.SignalR.Transport
Especifica el protocolo de transporte utilizado para conectarse a los canales SignalR de Orchestrator. Se pueden atribuir los siguientes valores (cualquier combinación bitwise OR):
- WebSocketTransport = 1
- ServerSentEventsTransport = 2
- LongPollingTransport = 4
- Valor por defecto: 7 (WebSocketTransport | ServerSentEventsTransport | LongPollingTransport)
Este parámetro se utiliza en la propagación inicial de la base de datos. Para realizar cambios tras la instalación, utiliza la página Ajustes con permisos de tenant o de host.
Scalability.AzureSignalR.ConnectionString
Ayuda a habilitar el servicio de Azure SignalR, lo que facilita la comunicación directa entre tu flota de UiPath Robots y el servicio SignalR
Scalability.AzureSignalR.ConnectionCount
. Este parámetro está habilitado en nuestra oferta de Cloud. No se muestra por defecto en el archivo 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
. Ejemplo: <add key="Scalability.AzureSignalR.ConnectionCount" value="7" />
. Esta configuración no se muestra por defecto y no se puede utilizar sin la clave Scalability.AzureSignalR.ConnectionString
.
Scalability.SignalR.RequireStickySessions
true
, se habilitan todos los transportes y Orchestrator supone que las sesiones sticky del equilibrador de carga están habilitadas. Habilitar las sesiones sticky en UiPath.Orchestrator.dll.config
, sin habilitarlas en el equilibrador de carga, dará como resultado conexiones de SignalR fallidas.
Telemetry.Enabled
Habilita o deshabilita la recopilación de datos de uso y rendimiento que UiPath utiliza para ayudar a diagnosticar problemas y mejorar Orchestrator. Para obtener más detalles sobre las prácticas de privacidad de UiPath, consulta la declaración de privacidad. Están disponibles los siguientes valores:
true
- La función de telemetría está habilitada. Este es el valor predeterminado.false
- La función de telemetría está deshabilitada.
También es posible deshabilitar la recopilación de datos de rendimiento o uso al instalar o actualizar tu instancia de Orchestrator, como se describe aquí.
MediaRecording.Enabled
false
para deshabilitar la función de grabación. Por defecto, está establecido en true
, lo que significa que la función está habilitada. El almacenamiento de archivos se configura mediante los parámetros Storage.Type
y Storage.Location
.
VideoRecording.MaxDurationSeconds.Default
Te permite cambiar la duración predeterminada de una grabación de vídeo, que es de 3 minutos.
Solo se puede cambiar a través de una llamada a la API, no desde la interfaz.
VideoRecording.MaxDurationSeconds.Limit
Te permite cambiar la duración máxima de una grabación de vídeo.
Solo se puede cambiar a través de una llamada a la API, no desde la interfaz.
Pagination.Limits.Enabled
true
de forma predeterminada en Cloud Platform y en las instalaciones desde cero de instancias de Orchestrator en las propias instalaciones. Añade un valor $top
predeterminado para todas las llamadas a los puntos finales de la API con parámetros de paginación (p. ej. odata/Users
).
Triggers.DisableWhenFailedCount
Triggers.DisableWhenFailedCount
te permite ajustar el número de ejecuciones fallidas, mientras que Triggers.DisableWhenFailingSinceDays
permite cambiar el número de días. Por defecto, el valor Triggers.DisableWhenFailedCount
es de 10, y el valor Triggers.DisableWhenFailingSinceDays
es de 1, por lo que el desencadenador se deshabilita tras 10 intentos de ejecución sin éxito si no se han producido ejecuciones con éxito durante el último día.
Triggers.DisableWhenFailedCount
como 0.
Un desencadenador se deshabilita automáticamente si experimenta 10 lanzamientos fallidos consecutivos y no se ha lanzado correctamente en las últimas 24 horas.
Triggers.JobsCountStrategy
Permite elegir la estrategia de recuento de trabajos para los que se inician mediante desencadenadores. Oculto por defecto. Las siguientes opciones están disponibles:
PerProcess
: un desencadenador inicia el número de trabajos requerido teniendo en cuenta cualquier trabajo pendiente del proceso especificado. Por ejemplo, dos desencadenadores definidos para el mismo proceso inician 3 y 5 trabajos respectivamente. Si el primer desencadenador inicia 3 trabajos en un momento dado, cuando se activa el segundo desencadenador se lanzan 2 trabajos para llegar a los 5 trabajos necesarios. Añade la siguiente clave en el archivo de configuración para utilizar esta estrategia:<add key="Triggers.JobsCountStrategy" value="PerProcess" />
. Este es el valor predeterminado.PerTrigger
: un desencadenador inicia el número de trabajos requerido teniendo en cuenta cualquier trabajo existente iniciado previamente por ese mismo desencadenador. Por ejemplo, se define un desencadenador para iniciar 9 trabajos en un momento dado. Si se han completado 2 trabajos correctamente en el momento en que se desactiva este desencadenador de nuevo, Orchestrator inicia otros 2 trabajos para llegar a los 9 trabajos necesarios. Añade la siguiente clave en el archivo de configuración para utilizar esta estrategia:<add key="Triggers.JobsCountStrategy" value="PerTrigger" />
.NoLimit
: el desencadenador inicia el número de trabajos requerido independientemente de cualquier trabajo existente y pendiente. Por ejemplo, se define un desencadenador para iniciar 5 trabajos en un momento dado. La segunda vez que se desactiva el desencadenador, se inician otros 5 trabajos. Añade la siguiente clave en el archivo de configuración para utilizar esta estrategia:<add key="Triggers.JobsCountStrategy" value="NoLimit" />
.
Features.QueueTriggers.PendingJobsStrategy
Te permite elegir el método de cálculo para el número de trabajos adicionales que se desencadenarán cuando se añadan los nuevos artículos a una cola. Esto se hace restando el número de trabajos en un estado determinado de la cantidad máxima de trabajos dirigidos que se van a crear.
Las siguientes opciones están disponibles:
-
True
: esta es la opción predeterminada. Se adapta mejor para casos en los que quieres que Orchestrator asuma que todos los trabajos en ejecución ya han migrado artículos en cola fuera del estado Nuevo.El número se calcula así:
Máximo de trabajos adicionales a crear en función de los artículos en cola disponibles nuevamente = número máximo de trabajos pendientes y en ejecución permitidos de forma simultánea menos número de trabajos en estado Pendiente.
-
False
: esta opción es la más adecuada para casos en los que quieres que Orchestrator asuma que todos los trabajos en ejecución aún tienen que mover artículos en cola fuera del estado Nuevo.El número se calcula así:
Máximo de trabajos adicionales a crear en función de los artículos en cola disponibles nuevamente = número máximo de trabajos pendientes y en ejecución permitidos de forma simultánea menos el número de trabajos en uno de estos estados: Pendiente,Reanudado,En ejecución, Detenido,Terminado.
PreventAutoRefresh.Enabled
<add key="PreventAutoRefresh.Enabled" value="true" />
se puede añadir para restringir la actualización automática de la página cuando se ejecutan trabajos. La clave no se muestra de forma predeterminada, y el valor predeterminado es false
, por lo que Orchestrator actualiza la página automáticamente por cada nuevo trabajo.
PreventAutoRefresh.Enabled
.
Features.ClassicFolders.Enabled
false
lo que significa que las carpetas clásicas están deshabilitadas y solo están disponibles las carpetas modernas. Este parámetro está oculto de forma predeterminada.
Jobs.TerminatingJobsTimeout
1440
, lo que significa que los trabajos no pueden marcarse como Fallidos hasta que hayan pasado en estado de Terminación al menos un día. Este parámetro está oculto de forma predeterminada.
Jobs.TerminatingJobsCleanupCron
Jobs.TerminatingJobsTimeout
. Los valores predeterminados son 0 0 0/3 1/1 * ? *
para Jobs.TerminatingJobsCleanupCron
, y 1440
para Jobs.TerminatingJobsTimeout
, lo que significa que el trabajo en segundo plano se ejecuta cada tres horas y solo pasan a Fallido los trabajos que hayan pasado en estado de Terminación al menos un día. Este parámetro está oculto de forma predeterminada.
PW.StopExploringCron
0 25 * ? * *
, lo que significa que el trabajo en segundo plano se ejecuta en el minuto 25 de cada hora. Si no tienen los permisos necesarios, se finalizan sus sesiones de exploración. Este parámetro está oculto de forma predeterminada.
Features.LongRunning.Enabled
<add key="Features.LongRunning.Enabled" value="true" />
.
Tasks.ModuleEnabled
<add key="Tasks.ModuleEnabled" value="true" />
. Este ajuste hace que la característica esté disponible a nivel de instancia. Para configurarlo en una base tenant, sigue estos pasos. El parámetro Features.LongRunning.Enabled
debe establecerse como true
para que este ajuste surta efecto.
Features.SmartCardAuthentication.Enabled
<add key="Features.SmartCardAuthentication.Enabled" value="true" />
.
OData.BackwardsCompatible.Enabled
true
, se analizan los caracteres especiales en el cuerpo de las solicitudes y respuestas. De forma predeterminada, este parámetro está oculto y establecido como false
.
NotRespondingRobotsJobStartDelay
UiPath.Orchestrator.dll.config
de forma predeterminada.
Upload.Queues.MaxNumberOfItems
15000
. Ten en cuenta que este parámetro no se muestra por defecto en UiPath.Orchestrator.dll.config
.
Processes.FilterOutDeleted
Permite optimizar la forma en que Orchestrator recupera los procesos. La optimización se consigue eliminando las verificaciones innecesarias de los procesos huérfanos cuyos paquetes asociados fueron eliminados. Esto mejora el rendimiento general de tu instancia, especialmente si se trata de una implementación grande. Están disponibles los siguientes valores:
false
: la recuperación de paquetes está optimizada; no se realizan verificaciones para los procesos huérfanos.true
: La recuperación de paquetes no está optimizada.
true
de forma predeterminada, por lo que la recuperación de procesos no está optimizada.
CertificatesStoreLocation
<add key="CertificatesStoreLocation" value="LocalMachine" />
. Asegúrate de que AzureKeyVaultCertificateStoreLocation
en appsettings.Production.json tiene el mismo valor.
La clave de cifrado utilizada para proteger las contraseñas en los activos de credenciales. Si utilizas un entorno con un equilibrador de carga de red, esta clave debe ser la misma para todas las máquinas.
EncryptionKeyPerTenant.Enabled
tiene la opción true
establecida, y EncryptionKeyPerTenant.KeyProvider
tiene la opción AzureKeyVault
establecida. Además, asegúrate de proporcionar todos los permisos de clave, secreto y certificado para tu instancia de Orchestrator en las Políticas de acceso de tu Azure Key Vault. Para conocer el procedimiento completo, consulta esta página.
ae11aa1a-1234-1234-a123-a12a12aaa1aa
. Esta configuración no se muestra de manera predeterminada en el archivo UiPath.Orchestrator.dll.config
. <add key="Azure.KeyVault.ClientId" value="ae11aa1a-1234-1234-a123-a12a12aaa1aa" />
Ejemplo: .
UiPath.Orchestrator.dll.config
. <add key="Azure.KeyVault.CertificateThumbprint" value="1234123412341234123412341234124312341234" />
Ejemplo: .
https://CustomVaultName.vault.azure.net/
. Esta configuración no se muestra de manera predeterminada en el archivo UiPath.Orchestrator.dll.config
. Ejemplo: <add key="Azure.KeyVault.VaultAddress" value="https://CustomVaultName.vault.azure.net/" />
.
Esta sección contiene los ajustes para configurar los tokens de acceso S2S y los tokens de acceso de aprovisionamiento de UiPath Robot.
UiPath.Orchestrator.dll.config
:
IdentityServer.GroupMembershipCacheExpireHours
1
IdentityServer.Integration.Enabled
true
de forma predeterminada.
IdentityServer.Integration.Authority
https://Orchestrator/Identity
, donde Orchestrator
es la dirección de instalación de tu Orchestrator.
IdentityServer.Integration.ClientId
Te permite establecer el ID de aplicación (ID de cliente) utilizado para generar tokens de acceso S2S registrados en Identity Server. El valor se genera en el momento de la instalación.
IdentityServer.Integration.ClientSecret
Te permite establecer el Secreto de cliente para que Identity Server reconozca la aplicación S2S de Orchestrator. El valor se genera en el momento de la instalación.
IdentityServer.Integration.AccessTokenCacheBufferInSeconds
50
de forma predeterminada.
IdentityServer.Integration.UserOrchestratorApiAudience
OrchestratorApiUserAccess
de forma predeterminada.
<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
de forma predeterminada.
UiPath.Orchestrator.dll.config
también contenga las siguientes claves preexistentes con sus valores establecidos en true
:
MultiTenancy.AllowHostToAccessTenantApi
true
, permite a los usuarios host acceder a datos específicos de otros tenants. El valor está establecido como true
de forma predeterminada.
MultiTenancy.TenantResolvers.HttpGlobalIdHeaderEnabled
true
permite identificar al tenant leyendo la ID global del tenant en el encabezado de la solicitud de la 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" />
Orchestrator actúa como generador de tokens para UiPath Robots. Los UiPath Robots utilizan el punto final de Orchestrator para generar un token de acceso. El token de acceso se envía a las actividades que pueden utilizar diferentes recursos, como AI Fabric. Con la integración de Identity Service con Orchestrator, Identity Server se encarga de la generación de tokens de acceso.
Esta sección contiene parámetros para configurar el servidor de actualización.
Con qué frecuencia comprueba si hay actualizaciones el cliente. El valor por defecto es de 180 minutos.
Después de cuántos minutos se inicia una actualización forzada si se ha pospuesto la actualización. El valor predeterminado es de 1440 minutos.
Después de cuántos minutos se inicia una actualización forzada si se ha pospuesto la actualización. Esto es específico para las actualizaciones programadas. El valor predeterminado es de 10 minutos.
Cuántas veces se vuelve a intentar una actualización fallida. El valor predeterminado es 3.
Cómo se realiza el reintento en función de la serie temporal.
Ejemplo:
- Primer reintento: después del valor configurado en minutos.
- Segundo reintento: después de dos veces el valor configurado en minutos.
- Tercer reintento: después de cuatro veces el valor configurado en minutos.
UiPath.Orchestrator.dll.config
correspondiente: <logger name="Robot.*" writeTo="database,robotElasticBuffer" final="true" />
. Se utiliza para configurar los mensajes de registro generados por los Robots. Hay que configurar los siguientes parámetros:
-
writeTo
: la ubicación en la que se escriben los mensajes de registro generados por el UiPath Robot.Están disponibles los siguientes valores:database
: los registros se envían a la base de datos SQL de Orchestrator. Este es uno de los valores por defecto.-
robotElasticBuffer
: los registros se envían a Elasticsearch. Este es el segundo valor por defecto. Recuerda que esto requiere una configuración adicional. Más detalles aquí.Al tener registros enviados tanto a la base de datos SQL de Orchestrator como la de Elasticsearch, puedes tener registros no rechazados. Elimina uno de los valores para dejar de registrar en esa ubicación.
final
: un marcador que indica que se debe realizar cuando se encuentra una coincidencia entre un mensaje registrado y el nombre del registrador. Cuando se fija entrue
, no busca otra coincidencia. Cuando se establece comofalse
, se marcan otras reglas que coinciden con la misma fuente de origen. De forma predeterminada, está establecido entrue
.
UiPath.Orchestrator.dll.config
correspondiente: <logger name="Monitoring.*" writeTo="monitoring" minlevel="Warn" final="true" />
. Se utiliza para configurar los registros de error que se muestran en la página de Supervisión. Ten en cuenta que si eliminas esta regla o se altera target
, no se mostrarán los registros de error en la página de Supervisión.
UiPath.Orchestrator.dll.config
correspondiente: <logger name="BusinessException.*" minlevel="Info" writeTo="businessExceptionEventLog" final="true" />
. Se utiliza para configurar los registros de las excepciones empresariales lanzadas. Por ejemplo, los problemas de validación (p. ej. Invalid username
) o los conflictos empresariales (p. ej. License expired
).
UiPath.Orchestrator.dll.config
correspondiente: <logger name="*" minlevel="Info" writeTo="eventLog" />
. Se utiliza para configurar todos los demás registros aparte de los descritos anteriormente, incluidos los generados por Orchestrator.
Más información sobre ajustes adicionales.
El siguiente destino de NLog debe rellenarse según tu configuración de 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
: la URL de Elasticsearch; ten en cuenta que debes incluir el protocolo y el puerto, comohttp://elastic_server:9200
. Puedes eliminar la necesidad de un equilibrador de carga cumplimentando este parámetro con la URL de Elasticseach de cada nodo, comouri="http://elastic-node1:9200,http://elastic-node2:9200,http://elastic-node3:9200"
.excludedProperties
: los datos que no quieres guardar en Elasticsearch.index
: el formato del índice de registro, que puede ser exclusivo de cada tenant o común para todos los tenants. Detalles a continuación.requireAuth
: establecido comotrue
para habilitar la autenticación cuando Orchestrator se vincula a Elasticsearch.username
: especifica el nombre de usuario utilizado para iniciar sesión en Elasticsearch. Es necesario configurarla sirequireAuth
está establecido comotrue
yOAuthEnabled
está establecido comofalse
.password
: especifica la contraseña utilizada para iniciar sesión en Elasticsearch. Es necesario configurarla sirequireAuth
está establecido comotrue
yOAuthEnabled
está establecido comofalse
.OAuthEnabled
: establece este parámetro entrue
para habilitar OAuth2 y usar un mecanismo de autenticación basado en tokens para el objetivo de Nlog de Elasticsearch. Al habilitarlo por primera vez, debes proporcionar tu nombre de usuario y contraseña actuales para generar el token inicial. Para que este parámetro surta efecto, debes asegurarte de queLogs.Elasticsearch.OAuthEnabled
también esté configurado comotrue
y que hayas configurado correctamente el servidor de Elasticsearch. Para obtener más información, consulta Autenticación de X-Pack.
- Índice
index="${event-properties:item=indexName}-${date:format=yyyy.MM}"
individual: se utiliza un índice separado para cada tenant, por lo que los registros específicos de un tenant se generan y se recuperan en función de un identificador único de tenant. En este caso,indexName
, que se atribuye al nombre del tenant. Esta es la configuración predeterminada. En este caso, los registros se generan por mes. -
Índice compartido: se utiliza
index="robotlogs-${date:format=yyyy.MM.dd}"
un índice para todos los tenants, por lo que todos los registros utilizan el mismo índice independientemente del tenant. En este caso, los registros se generan por día. Para utilizar un índice compartido, también debes añadir la siguiente clave enUiPath.Orchestrator.dll.config
:<add key="Logs.Elasticsearch.SharedIndex" value="robotlogs" />
. Asegúrate de establecer el mismo valor que el obtenido en el parámetroindex
del NLog de destino.Los registros que se generen utilizando un índice individual se conservan si se cambia a un índice compartido. No obstante, los registros que se generen utilizando un índice compartido se perderán al elegir uno individual.
- La sección de configuración de destino de NLog
name="robotElastic" index="robot-logs-${date:format=yyyy-MM}"
deUiPath.Orchestrator.dll.config
. - El registro
LoggingIndex
de la tabladbo.Settings
de la base de datos de Orchestrator. Asegúrese de que el registro coincida con el patrón de índice de la configuración de destino de NLog (es decir,robot-logs-${date:format=yyyy-MM}
).
Para almacenar registros de eventos del sistema en la base de datos en lugar de en el visor de eventos, sigue estos pasos:
-
Crea una nueva tabla de base de datos, por ejemplo:
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)En la consulta anterior, creamos una tabla llamadaEventLogs
con las siguientes columnas:Id
: poner en espera un número de identificación para cada registro, aquí comenzando con1
e incrementando el valor con cada registro añadido;Timestamp
: poner en espera la hora en la que se registró cada evento;Level
: poner en espera el nivel de registro numérico de cada evento;Message
: poner en espera el mensaje de cada evento, si corresponde;-
Exception
: poner en espera la excepción registrada para cada evento, si corresponde.Nota: puedes utilizar cualquier nombre para tu tabla y eliminar cualquier columna de la consulta anterior o añadir otras que se adapten a tus necesidades.
-
En el archivo
UiPath.Orchestrator.dll.config
, añade un nuevo destino de 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>Se pueden definirparameter
correspondientes para que los datos se añadan en cada columna de la base de datos, en este ejemplo@timestamp
,@level
,@message
y@exception
. -
Por último, asocia el destino creado recientemente con la clasificación de registros NLog de todos los mensajes de Orchestrator, desde arriba, añadiendo lo siguiente:
<logger name="*" minlevel="Info" writeTo="eventLog,eventLogDatabase" />
<logger name="*" minlevel="Info" writeTo="eventLog,eventLogDatabase" />
NLog es una plataforma ampliable de código abierto que se configura fácilmente para una gran variedad de plataformas .NET. Con NLog, puedes almacenar o transferir datos de registros a cualquier número de destinos predeterminados o personalizados, como un archivo local, un registro de eventos, un correo electrónico o una base de datos.
Trace
, Debug
, Info
, Warn
, Error
, Fatal
o Off
. Consulta Niveles de registro para obtener una descripción de los niveles disponibles en Orchestrator.
Off
. Se habilita configurando la siguiente sección del archivo 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="">
Los atributos que se deben establecer son:
-
internalLogLevel
: el nivel de registro deseado -
internalLogFile
: la ubicación del archivo de registro
Por ejemplo:
<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
.
VideoRecording.RetentionJobEnabled
en true
.
Features.Queues.QueryUseReadOnlyReplica
true
si desea permitir la consulta de la réplica de solo lectura para los artículos en cola.
false
.
Monitoring.UseReadOnlyReplica
true
si desea recuperar los datos de supervisión de la réplica de solo lectura.
false
.
Features.Jobs.QueryUseReadOnlyReplica
true
si quieres permitir la consulta de datos de trabajos en la réplica de solo lectura.
false
.
- Ajustes de la aplicación
- Configuración avanzada de la instalación
- Colas
- Alertas
- Implementación
- Depósitos de almacenamiento
- Autorización
- Load balancer
- Almacén de contraseñas
- Autenticación de Azure AD
- Autenticación de Active Directory
- Registros
- Webhooks
- Adaptabilidad
- Análisis
- Grabación multimedia
- Paginación
- Desencadenadores
- Otros
- SecureAppSettings
Clave de cifrado
Azure.KeyVault.ClientId
Azure.KeyVault.CertificateThumbprint
Azure.KeyVault.VaultAddress
Azure.KeyVault.DirectoryId
- Configuración del servidor de identidad
- Integración
- Tokens de acceso de aprovisionamiento de UiPath Robots
- Actualización de la configuración del servidor
UpdateServer.CheckUpdates.PollingInterval
UpdateServer.CheckUpdates.DefaultForceInstallAfterMinutes
UpdateServer.CheckUpdates.ScheduledForceInstallAfterMinutes
UpdateServer.CheckUpdates.MaxRetries
UpdateServer.UpdateRequest.RetryStepMinutes
- Configuración de registro
- Registros de robot
- Registros de supervisión
- Registros de excepciones empresariales
- Otros registros
- Ajustes adicionales
- Búsqueda elástica
- Configuración del índice
- Registrar eventos en la base de datos
- Habilitar la depuración de NLog
- Retención de vídeos grabados
- Réplica de solo lectura de Orchestrator