- Primeros pasos
- Mejores prácticas
- Tenant
- Acerca del contexto de tenant
- Buscar recursos en un tenant
- Gestionar robots
- Conexión de los robots a Orchestrator
- Almacenar credenciales de robots en CyberArk
- Almacenar contraseñas de robots desatendidos en Azure Key Vault (solo lectura)
- Almacenar las credenciales de robots desatendidos en HashiCorp Vault (solo lectura)
- Almacenamiento de credenciales de Unattended Robot en AWS Secrets Manager (solo lectura)
- Eliminar sesiones desconectadas y sin respuesta no atendidas
- Autenticación de Robot
- Autenticación de robots con credenciales de cliente
- Autenticación por SmartCard
- Configurar las capacidades de automatización
- Auditoría
- Configuración: a nivel de tenant
- Servicio de catálogo de recursos
- Contexto de carpetas
- Automatizaciones
- Procesos
- Trabajos
- Desencadenadores
- Registros
- Sobre los registros
- Gestión de Registros en Orchestrator
- Niveles de registro
- Registros de Orchestrator
- Supervisión
- Colas
- Activos
- Depósitos de almacenamiento
- Pruebas de Orchestrator
- Otras configuraciones
- Integraciones
- Administración de host
- Acerca del nivel del host
- Gestionar los administradores del sistema
- Gestión de tenants
- Configuración de las notificaciones por correo electrónico del sistema
- Registros de auditoría para el portal del host
- Modo de mantenimiento
- Administración de la organización
- Solución de problemas

Guía del usuario de Orchestrator
Registros de Orchestrator
Registros de diagnóstico de Orchestrator
Estos son registros de diagnóstico generados por UiPath® Orchestrator con respecto a su comportamiento.
Habilitar los registros de diagnóstico de UiPath Orchestrator
Los registros de diagnóstico de UiPath Orchestrator se activan una vez que UiPath Orchestrator se ha instalado correctamente. Dependen de la infraestructura NLog y su configuración se encuentra en el archivo UiPath.Orchestrator.dll.config, con la etiqueta <nlog>.
Ten en cuenta que tanto las excepciones del servidor de Orchestrator como el seguimiento de la pila en la ventana Detalles del trabajo se registran en inglés, independientemente del idioma elegido por el usuario.
Objetivos de los registros de diagnóstico de UiPath Orchestrator
Todos los registros de la aplicación se registran en el Visor de eventos con el nivel mínimo de registro de Información. Esto se especifica mediante las siguientes líneas en el archivo UiPath.Orchestrator.dll.config:
<target xsi:type="EventLog" name="eventLog" layout="${message}" source="Orchestrator" log="Application" />
<logger name="*" minlevel="Info" writeTo="eventLog" />
Los registros generados por el Planificador de trabajos tienen un objetivo y un registrador separados:
<target xsi:type="EventLog" name="eventLogQuartz" layout="[Quartz] ${message} ${onexception: ${exception:format=tostring}}" source="Orchestrator" log="Application" />
<logger name="Orchestrator.Quartz.*" minlevel="Info" writeTo="eventLogQuartz" />
Ejemplo:
Could not create Quartz Job
Los registros generados por negocio y otras reglas de validación tienen un objetivo y un registrador separados:
<target xsi:type="EventLog" name="businessExceptionEventLog" layout="${message}${onexception:${exception:format=tostring:maxInnerExceptionLevel=5:innerFormat=tostring}}" source="Orchestrator.BusinessException" log="Application" />
<logger name="BusinessException.*" minlevel="Info" writeTo="businessExceptionEventLog" final="true" />
Este tipo de mensajes de error se registran en el Visor de eventos en los siguientes casos:
- problemas de validación como:
Invalid username/email address or password.The machine name DOC is already taken
- conflictos empresariales como:
License expired!The floating robot's session is already active on machine ROQADOCS06!The robots already have pending jobs for this Process.
- no se han encontrado excepciones como:
QueueName1 does not exist.
Registros de ejecución de Orchestrator
Los registros de ejecución de Orchestrator los envían los robots conectados a él y se muestran en la sección Registros de las páginas Trabajos o Robots . La aplicación recibe los datos de los Robots, añade sus propios parámetros (TenantID, FolderID) y reenvía los mensajes a diferentes destinos, como se especifica en la sección <nlog> del archivo UiPath.Orchestrator.dll.config .
Objetivos de los registros de ejecución de Orchestrator
De forma predeterminada, todos los registros del robot se envían a la tabla Registros de la base de datos predeterminada de Orchestrator, donde UiPath Orchestrator también almacena otra información.
Sin embargo, puedes elegir enviar registros de robot a una base de datos diferente configurándola en la target xsi:type="Database" connectionString="..."sección del archivo UiPath.Orchestrator.dll.config.
La página Registros muestra la información de la tabla de registros de la Base de datos por defecto. Por lo tanto, si esta sección no existe, o los registros se guardan en una base de datos diferente, la página está vacía. Todos los parámetros deben estar de acuerdo con el esquema de la tabla, que tiene este aspecto:
<target xsi:type="Database" name="database" connectionString="${ui-connection-strings:item=Default}" keepConnection="true">
<commandText>
insert into dbo.Logs (OrganizationUnitId, TenantId, TimeStamp, Level, WindowsIdentity, ProcessName, JobKey, Message, RawMessage)
values (@organizationUnitId, @tenantId, @timeStamp, @level, @windowsIdentity, @processName, @jobId, @message, @rawMessage)
</commandText>
<parameter name="@organizationUnitId" layout="${event-properties:item=organizationUnitId}" />
<parameter name="@tenantId" layout="${event-properties:item=tenantId}" />
<parameter name="@timeStamp" layout="${date}" />
<parameter name="@level" layout="${event-properties:item=levelOrdinal}" />
<parameter name="@windowsIdentity" layout="${event-properties:item=windowsIdentity}" />
<parameter name="@processName" layout="${event-properties:item=processName}" />
<parameter name="@jobId" layout="${event-properties:item=jobId}" />
<parameter name="@message" layout="${message}" />
<parameter name="@rawMessage" layout="${event-properties:item=rawMessage}" />
</target>
<logger name="Robot.*" writeTo="database" final="true" />
<target xsi:type="Database" name="database" connectionString="${ui-connection-strings:item=Default}" keepConnection="true">
<commandText>
insert into dbo.Logs (OrganizationUnitId, TenantId, TimeStamp, Level, WindowsIdentity, ProcessName, JobKey, Message, RawMessage)
values (@organizationUnitId, @tenantId, @timeStamp, @level, @windowsIdentity, @processName, @jobId, @message, @rawMessage)
</commandText>
<parameter name="@organizationUnitId" layout="${event-properties:item=organizationUnitId}" />
<parameter name="@tenantId" layout="${event-properties:item=tenantId}" />
<parameter name="@timeStamp" layout="${date}" />
<parameter name="@level" layout="${event-properties:item=levelOrdinal}" />
<parameter name="@windowsIdentity" layout="${event-properties:item=windowsIdentity}" />
<parameter name="@processName" layout="${event-properties:item=processName}" />
<parameter name="@jobId" layout="${event-properties:item=jobId}" />
<parameter name="@message" layout="${message}" />
<parameter name="@rawMessage" layout="${event-properties:item=rawMessage}" />
</target>
<logger name="Robot.*" writeTo="database" final="true" />
Se pueden añadir otros destinos a los registros configurando el archivo UiPath.Orchestrator.dll.config . Puedes encontrar una lista de destinos disponibles aquí.
Al actualizar Orchestrator, los destinos de Nlog se eliminan y se vuelven a crear de la siguiente manera:
- Tras actualizar a 2022.4, los objetivos de la base de datos NLog vuelven a sus valores predeterminados.
- Al actualizar a 2022.10, Los objetivos de la base de datos Nlog se eliminan y se reemplazan por objetivos nuevos y mejorados. Esto cubre los objetivos
database,monitoringyinsightsRobotLogs.
Si el número de registros de UiPath Robot almacenados en la tabla es superior a 1 millón, recomendamos crear el siguiente índice para mejorar el rendimiento de la búsqueda:
CREATE NONCLUSTERED INDEX [IX_Search] ON [dbo].[Logs]
(
[TenantId] ASC,
[OrganizationUnitId] ASC,
[Level] ASC,
[TimeStamp] DESC
)WITH (STATISTICS_NORECOMPUTE = OFF, DROP_EXISTING = OFF, ONLINE = OFF, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_Search] ON [dbo].[Logs]
(
[TenantId] ASC,
[OrganizationUnitId] ASC,
[Level] ASC,
[TimeStamp] DESC
)WITH (STATISTICS_NORECOMPUTE = OFF, DROP_EXISTING = OFF, ONLINE = OFF, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
Servidor Elasticsearch
Por defecto, hay un destino de Elasticsearch configurado desde el script de instalación. El índice es diferente para cada tenant, pero puede configurarse desde el destino especificado en la sección <nlog>:
Para versiones de Elasticsearch anteriores a la 8.0:
<target name="robotElasticBuffer" xsi:type="BufferingWrapper" flushTimeout="5000">
<target xsi:type="ElasticSearch" name="robotElastic" uri="uritoelasticsearchnode" index="${event-properties:item=indexName}-${date:format=yyyy.MM}" documentType="logEvent" includeAllProperties="true" layout="${message}" excludedProperties="agentSessionId,tenantId,organizationId,indexName" />
</target>
</target>
<target name="robotElasticBuffer" xsi:type="BufferingWrapper" flushTimeout="5000">
<target xsi:type="ElasticSearch" name="robotElastic" uri="uritoelasticsearchnode" index="${event-properties:item=indexName}-${date:format=yyyy.MM}" documentType="logEvent" includeAllProperties="true" layout="${message}" excludedProperties="agentSessionId,tenantId,organizationId,indexName" />
</target>
</target>
Para versiones de Elasticsearch 8.0 y superiores:
<target name="robotElasticBuffer" xsi:type="BufferingWrapper" flushTimeout="5000">
<target xsi:type="ElasticSearch" name="robotElastic" uri="uritoelasticsearchnode" index="${event-properties:item=indexName}-${date:format=yyyy.MM}" documentType="" enableApiVersioningHeader="true" includeAllProperties="true" layout="${message}" excludedProperties="agentSessionId,tenantId,organizationId,indexName" />
</target>
</target>
<target name="robotElasticBuffer" xsi:type="BufferingWrapper" flushTimeout="5000">
<target xsi:type="ElasticSearch" name="robotElastic" uri="uritoelasticsearchnode" index="${event-properties:item=indexName}-${date:format=yyyy.MM}" documentType="" enableApiVersioningHeader="true" includeAllProperties="true" layout="${message}" excludedProperties="agentSessionId,tenantId,organizationId,indexName" />
</target>
</target>
Para que las versiones 8.0 y superiores de Elasticsearch funcionen correctamente, hay que establecer estos parámetros de la siguiente manera:
documentTypeestá vacío.enableApiVersioningHeaderse configura comotrue.Nota:La opción de guardar los registros del robot en un servidor de Elasticsearch solo se hace efectiva una vez que lo configuras y no se aplica de forma retroactiva. Esto significa que ya no tendrás acceso a ningún registro que ya estuviera en la base de datos en el momento en que configuraste la opción, porque los registros solo se pueden recuperar y mostrar desde un único destino.
Autenticación de X-PACK
Por defecto, las funciones de seguridad de Elasticsearch están deshabilitadas si tienes una licencia básica o de prueba. Recomendamos encarecidamente que los habilites.
Autenticación con nombre de usuario y contraseña
Para habilitar la autenticación a través de un nombre de usuario y una contraseña, es necesario seguir los siguientes pasos:
- Configura el servidor Elasticsearch de la siguiente manera:
- Añade la configuración
xpack.security.enabledal archivo de configuraciónelasticsearch.yml. - Establece un nombre de usuario y contraseña.
- Añade la configuración
Para más detalles, consulta la documentación de Elasticsearch.
- Configura el archivo
UiPath.Orchestrator.dll.configde Orchestrator como sigue:
- Opción 1: Si no utilizas un destino de NLog, deberás configurar los siguientes parámetros:
Logs.Elasticsearch.UsernameyLogs.Elasticsearch.Password. Asegúrate de que tus valores coinciden con la configuración de Elasticsearch del paso 1. - Opción 2: Si
Logs.RobotLogs.ReadTargetse establece en un destino de NLog (por ejemplorobotElasticBuffer, y no se especifica la configuraciónLogs.Elasticsearch.Nodes, el establece el destino añadiendo lo siguiente:requireAuth="true" username="XPACKuser" password="p@$$w0rd". Asegúrate de que los valores de estos parámetros coinciden con la configuración de Elasticsearch del paso 1.
Para obtener más información sobre estos parámetros, consulta la página UiPath.Orchestrator.dll.config . Para ver un ejemplo de configuración, consulta lo siguiente:
<target name="robotElasticBuffer" xsi:type="BufferingWrapper" flushTimeout="5000">
<target xsi:type="ElasticSearch" name="robotElastic" uri="" requireAuth="true" username="XPACKusername" password="p@$$w0rd" index="${event-properties:item=indexName}-${date:format=yyyy.MM}" documentType="logEvent" includeAllProperties="true" layout="${message}" excludedProperties="agentSessionId,tenantId,indexName" />
</target>
<target name="robotElasticBuffer" xsi:type="BufferingWrapper" flushTimeout="5000">
<target xsi:type="ElasticSearch" name="robotElastic" uri="" requireAuth="true" username="XPACKusername" password="p@$$w0rd" index="${event-properties:item=indexName}-${date:format=yyyy.MM}" documentType="logEvent" includeAllProperties="true" layout="${message}" excludedProperties="agentSessionId,tenantId,indexName" />
</target>
- Opción 3: si
Logs.RobotLogs.ReadTargetse establece a un destino NLog (por ejemplo,robotElasticBuffer), y un nodo Elasticsearch se especifica a través de la configuraciónLogs.Elasticsearch.Nodes, es necesario configurarlo explícitamente (ya que anula la configuración del destino NLog), y asegurarse de añadir también lo siguiente:requireAuth="true" username="XPACKuser" password="p@$$w0rd". Asegúrate de que los valores de estos parámetros coinciden con la configuración de Elasticsearch del paso 1.
Autenticación de OAuth 2
Para cambiar a OAuth2 como método de autenticación para Elasticsearch, debes seguir los siguientes pasos. Ten en cuenta que debes facilitar tus credenciales actuales para cambiar a este método de autenticación basado en tokens.
-
Configura el servidor Elasticsearch de la siguiente manera:
- Habilita TLS (HTTPS) para la capa de transporte.
- Actualiza la siguiente configuración en el archivo de configuración
elasticsearch.yml:
xpack.security.authc.token.enabled: truexpack.security.enabled: truexpack.security.authc.token.timeout- Esta configuración es opcional y controla el tiempo de validez de un token. Por defecto, su valor está establecido en 20 minutos.
Para más detalles, consulta la documentación de Elasticsearch.
- Actualiza los siguientes parámetros del archivo
UiPath.Orchestrator.dll.configde Orchestrator para que se refleje la configuración que elegiste en el Paso 1.Logs.Elasticsearch.TlsEnabled = ”true”- Por defecto, este parámetro está establecido entruey garantiza que TLC (HTTPS) está activado.Logs.Elasticsearch.OAuthEnabled = ”true”- Por defecto, este parámetro está establecido enfalse. Para obtener más información, consultaLogs.Elasticsearch.OAuthEnabled.Logs.Elasticsearch.OAuthExpireInSeconds = ”1200”: este parámetro es opcional, a menos que el valor por defecto de1200se cambie en la configuraciónxpack.security.authc.token.timeoutde Elasticsearch. Este parámetro debe tener el mismo valor que en la configuración de Elasticsearch. Para obtener más información, consultaLogs.Elasticsearch.OAuthExpireInSeconds.Nota:Los dos primeros pasos te ayudan a configurar un mecanismo de autenticación basado en tokens para leer los registros. Si usas NLog, es necesario un paso adicional.
- Para habilitar OAuth2 para Nlog, asegúrate de configurar el siguiente parámetro en el archivo
UiPath.Orchestrator.dll.configde Orchestrator. Ten en cuenta que debes rellenar el nombre de usuario y contraseña para la autenticación en Elasticsearch porque el token inicial se genera en base a esas credenciales.OAuthEnabled = “true”: de forma predeterminada, está establecido enfalse. Para más información, visita la página UiPath.Orchestrator.dll.config.Importante:Si
Logs.RobotLogs.ReadTargetestá configurado a un destino NLog (por ejemplo,robotElasticBuffer) y la configuraciónLogs.Elasticsearch.Nodesno se especifica,Logs.Elasticsearch.OAuthEnabledse rellena desde la configuración del destino NLog. Se aplica la misma lógica para el nombre de usuario y la contraseña.
Autenticación de clave API
Para habilitar la autenticación mediante la clave API, sigue los pasos que se indican a continuación.
- Genera la clave API siguiendo estos pasos.
- Almacena la clave API como un secreto en tu almacén de claves de Azure.
- Configura los siguientes parámetros de destino Nlog con tus datos, creando así una conexión entre Orchestrator y tu almacén de claves que permita recuperar la clave:
apiKeyEnabled="true" apiKeyProvider="AzureKeyVault" apiKeySecretName="<SecretName>" azureKeyVaultUri="<KeyVaultUri>" azureKeyVaultDirectoryId="<KeyVaultDirectoryId>" azureKeyVaultClientId="<KeyVaultClientId>" azureKeyVaultCertificateThumbprint="<KeyVaultCertificateThumbprint>" azureKeyVaultCertificateStoreLocation="CurrentUser/LocalMachine"apiKeyEnabled="true" apiKeyProvider="AzureKeyVault" apiKeySecretName="<SecretName>" azureKeyVaultUri="<KeyVaultUri>" azureKeyVaultDirectoryId="<KeyVaultDirectoryId>" azureKeyVaultClientId="<KeyVaultClientId>" azureKeyVaultCertificateThumbprint="<KeyVaultCertificateThumbprint>" azureKeyVaultCertificateStoreLocation="CurrentUser/LocalMachine"
Los siguientes parámetros deben editarse con sus valores:
<SecretName>: el nombre que establece para la clave de API en el almacén de claves<KeyVaultUri>: el URI de tu almacén de claves<KeyVaultDirectoryId>: tu ID del directorio de almacén de claves<KeyVaultClientId>: tu ID de cliente de almacén de claves<KeyVaultCertificateThumbprint>: la huella digital de tu certificado de almacén de clavesCurrentUser/LocalMachine: la ubicación donde se almacena el certificado
Caducidad de la clave API
De forma predeterminada, las claves de API no caducan, pero aún puedes elegir establecer una fecha de caducidad para ellas.
Si su clave de API va a caducar, debe generar una nueva y almacenarla en el almacén de claves antes de la fecha de caducidad, para asegurarse de que Orchestrator siempre pueda recuperar una clave válida.
Orchestrator lee las claves de API del almacén de claves cada 15 minutos, por lo que este es el retraso máximo que puede esperar antes de que se propague la clave nueva.
- Registros de diagnóstico de Orchestrator
- Habilitar los registros de diagnóstico de UiPath Orchestrator
- Objetivos de los registros de diagnóstico de UiPath Orchestrator
- Registros de ejecución de Orchestrator
- Objetivos de los registros de ejecución de Orchestrator
- Servidor Elasticsearch
- Autenticación de X-PACK