- Información general
- Requisitos
- Plantillas de implementación
- Manual: preparar la instalación
- Manual: preparar la instalación
- Paso 2: configurar el registro compatible con OCI para las instalaciones sin conexión
- Paso 3: configurar el almacén de objetos externo
- Paso 4: configurar High Availability Add-on
- Paso 5: configurar las bases de datos SQL
- Paso 7: configurar el DNS
- Paso 8: configurar los discos
- Paso 9: configurar los ajustes a nivel de kernel y sistema operativo
- Paso 10: configurar los puertos de nodo
- Paso 11: aplicar ajustes varios
- Paso 12: Validar e instalar los paquetes RPM necesarios
- Paso 13: Generar cluster_config.json
- Ejemplo de Clúster_config.json
- Configuración general
- Configuración del perfil
- Configuración de certificados
- Configuración de la base de datos
- Configuración del almacén de objetos externo
- Configuración de URL prefirmada
- Configuración de ArgoCD
- Configuración de la autenticación Kerberos
- Configuración de registro externo compatible con OCI
- Disaster recovery: configuraciones activas/pasivas y activas/activas
- Configuración de High Availability Add-on
- Configuración específica de Orchestrator
- Configuración específica de Insights
- Process Mining-specific configuration
- Configuración específica de Document Understanding
- Automation Suite Robots-specific configuration
- Configuración de la supervisión
- Opcional: configurar el servidor proxy
- Opcional: habilitación de la resistencia a fallos de zona en un clúster multinodo de producción preparada para alta disponibilidad
- Opcional: pasar resolv.conf personalizado
- Optional: Increasing fault tolerance
- Inclusión de un nodo agente dedicado compatible con GPU
- Añadir un nodo agente dedicado a Automation Suite Robots
- Paso 15: configurar el registro temporal de Docker para las instalaciones sin conexión
- Paso 16: validar los requisitos previos para la instalación
- Ejecutar uipathctl
- Manual: realizar la instalación
- Después de la instalación
- Administración de clústeres
- Gestionar los productos
- Primeros pasos con el Portal de administración del clúster
- Migración de Redis desde un clúster a un High Availability Add-on externo
- Migrating in-cluster objectstore to external objectstore
- Migrar del registro en clúster a un registro externo compatible con OCI
- Cambiar manualmente al clúster secundario en una configuración activa/pasiva
- Disaster Recovery: realizar operaciones posteriores a la instalación
- Convertir una instalación existente en una configuración en varios sitios
- Directrices sobre la actualización de una implementación activa/pasiva o activa/activa
- Directrices sobre la copia de seguridad y restauración de una implementación activa/pasiva o activa/activa
- Escalar una implementación de nodo único (evaluación) a una implementación multinodo (HA)
- Supervisión y alertas
- Migración y actualización
- Migrar entre clústeres de Automation Suite
- Actualizar Automation Suite
- Descargar los paquetes de instalación y obtener todos los archivos del primer nodo del servidor
- Recuperar la última configuración aplicada del clúster
- Actualizar la configuración del clúster
- Configurar el registro compatible con OCI para las instalaciones sin conexión
- Ejecutar la actualización
- Realizar operaciones posteriores a la actualización
- Configuración específica del producto
- Configuración avanzada de Orchestrator
- Configurar parámetros de Orchestrator
- Configurar AppSettings
- Configurar el tamaño máximo de la solicitud
- Anular la configuración de almacenamiento a nivel de clúster
- Configurar NLog
- Guardar los registros del robot en Elasticsearch
- Configurar almacenes de credenciales
- Configurar clave de cifrado por tenant
- Limpiar la base de datos de Orchestrator
- Omitir la instalación de la biblioteca de host
- Buenas prácticas y mantenimiento
- Solución de problemas
- Cómo solucionar los problemas de los servicios durante la instalación
- Cómo reducir los permisos para un directorio de copia de seguridad NFS
- Cómo desinstalar el clúster
- Cómo limpiar los artefactos sin conexión para mejorar el espacio en disco
- Cómo borrar datos de Redis
- Cómo habilitar el registro de Istio
- Cómo limpiar manualmente los registros
- Sacar a Ceph del modo solo lectura
- Cómo limpiar los registros antiguos almacenados en el depósito sf-logs
- Cómo deshabilitar los registros de transmisión para AI Center
- Cómo depurar instalaciones de Automation Suite fallidas
- Cómo eliminar imágenes del instalador antiguo después de la actualización
- Cómo deshabilitar la descarga de la suma de comprobación TX
- Cómo establecer manualmente el nivel de registro de ArgoCD en Info
- Cómo expandir el almacenamiento de AI Center
- Cómo generar el pull_secret_value codificado para registros externos
- Cómo abordar los cifrados débiles en TLS 1.2
- Cómo comprobar la versión de TLS
- Cómo trabajar con certificados
- Cómo programar la copia de seguridad y la restauración de datos de Ceph
- Cómo recopilar datos de uso de DU con el almacén de objetos en el clúster (Ceph)
- Cómo instalar RKE2 SELinux en entornos aislados
- Cómo limpiar copias de seguridad diferenciales antiguas en un servidor NFS
- Cómo implementar Insights en un clúster habilitado para FIPS
- Cómo migrar a cgroup v2
- Cómo recuperar la autenticación Kerberos después de reiniciar una máquina virtual
- Cómo enviar una imagen de Docker local al registro en el clúster
- Cómo excluir depósitos de la copia de seguridad
- Error al descargar el paquete
- La instalación sin conexión falla porque falta un binario
- Azure disk not marked as SSD
- Fallo tras la actualización del certificado
- Errores de validación del certificado TLS
- El antivirus causa problemas de instalación
- Automation Suite not working after OS upgrade
- Automation Suite requiere que backlog_wait_time se establezca en 0
- La instalación del registro temporal falla en RHEL 8.9
- Problema de reinicio frecuente en las implementaciones del espacio de nombres de uipath durante las instalaciones sin conexión
- Configuración de DNS no respetada por CoreDNS
- La propagación del registro en el clúster falla debido a la memoria insuficiente
- Las comprobaciones de requisitos previos fallan cuando los proyectos modernos de Document Understanding están habilitados y AI Center está deshabilitado
- Pods atascados en estado Init debido a un fallo de montaje del volumen XFS en nodos RHEL 8.x
- Los datos del clúster parecen perdidos después de un reinicio debido a un orden incorrecto de montaje del disco de Rancher y etcd
- Upgrade fails due to unhealthy Ceph
- La actualización falla debido a objetos clásicos en la base de datos de Orchestrator
- El clúster de Ceph se encuentra en un estado degradado tras una actualización en paralelo.
- La actualización del servicio falla para Apps
- Tiempos de actualización in situ
- La actualización falla en entornos sin conexión
- pod de snapshot-controller-crds en estado CrashLoopBackOff después de la actualización
- La actualización falla debido a los tamaños de PVC de Insights anulados
- Error de actualización debido a un nombre de host en mayúsculas
- Establecer un intervalo de tiempo de espera para los portales de gestión
- La autenticación no funciona tras la migración
- kinit: no se puede encontrar la KDC para el territorio <AD Domain> mientras se obtienen las credenciales iniciales
- kinit: keytab no contiene claves adecuadas para *** mientras se obtienen las credenciales iniciales
- Error en la operación GSSAPI debido a un código de estado no válido
- Alarma recibida por un error en el trabajo de Kerberos-tgt-update
- Proveedor de SSPI: servidor no encontrado en la base de datos de Kerberos
- Error en inicio de sesión de un usuario AD debido a una cuenta deshabilitada
- ArgoCD login failed
- Fallo en la obtención de la imagen de Sandbox
- Los pods no se muestran en la interfaz de usuario de ArgoCD
- Fallo de la sonda Redis
- El servidor RKE2 no se inicia
- ArgoCD entra en estado de progreso tras la primera instalación
- Pod del servidor de repositorio de ArgoCD en CrashLoopBackOff
- Mitigación manual de Política de red de ArgoCD (GHSA-47m3-95c7-g2g8)
- Faltan métricas de Ceph-rook en los paneles de supervisión
- Falta de coincidencia en los errores informados durante las comprobaciones de estado de diagnóstico
- Configurar solicitudes de recursos y límites para cargas de trabajo creadas por uipathctl
- No hay problema ascendente en buen estado
- Inicio de Redis bloqueado por antivirus
- Los pods de AI Center y Document Understanding no se inician con la verificación del certificado TLS habilitada
- Fluentd no exporta registros en entornos IPv6
- Studio Desktop no puede cargar conectores y actividades de Integration Service
- Document Understanding no se encuentra en la barra izquierda de Automation Suite
- Estado fallido al crear una sesión de etiquetado de datos
- Estado fallido al intentar implementar una habilidad ML
- El trabajo de migración falla en ArgoCD
- El reconocimiento de la escritura manual con el extractor de formularios inteligente no funciona
- Ejecutar alta disponibilidad con Process Mining
- La ingestión de Process Mining falló al iniciar sesión con Kerberos
- No se puede conectar a la base de datos AutomationSuite_ProcessMining_Warehouse utilizando una cadena de conexión en formato pyodbc
- La instalación de Airflow falla con sqlalchemy.exc.ArgumentError: no se pudo analizar la URL rfc1738 de la cadena ''
- Cómo añadir una regla de tabla de IP para utilizar el puerto 1433 de SQL Server
- El certificado de Automation Suite no es de confianza desde el servidor donde se ejecuta CData Sync
- Process Mining no se carga después de deshabilitarlo y volver a habilitarlo
- Ejecutar la herramienta de diagnóstico
- Uso del paquete de soporte de Automation Suite
- Explorar registros
Configurar NLog
Opciones de configuración de NLog y extensiones de registro compatibles para Orchestrator en Automation Suite.
Agregar extensiones NLog
Orchestrator carga las siguientes extensiones de forma predeterminada, por lo que no es necesario incluirlas en la carpeta o en la configuración de NLog:
NLog.Targets.ElasticSearchUiPath.Orchestrator.Logs.ElasticsearchMicrosoft.ApplicationInsights.NLogTargetNLog.Extensions.AzureEventHub
Solo se pueden usar extensiones compatibles con Linux en esta configuración, así que asegúrate de que la extensión NLog elegida cumple esta regla.
Para que la extensión esté disponible para su uso, debe cargarse en el almacenamiento del clúster. La herramienta de línea de comandos uipathctl puede hacerlo a través del comando uipathctl config orchestrator upload :
./bin/uipathctl config orchestrator upload --nlog-extensions-directory /path/to/extensions/directory
./bin/uipathctl config orchestrator upload --nlog-extensions-directory /path/to/extensions/directory
Si utilizas una configuración de almacenamiento externo en el nivel del clúster, debes indicarlo incluyendo el parámetro --is-external-storage.
Configuración avanzada de NLog
Crear la configuración avanzada de NLog
-
Cree el archivo
nlog.config.jsonque contiene las secciones las extensiones, los objetivos y las reglas estándar.La sección de extensiones es una matriz de elementos que especifica los ensamblados de extensión, a través de
assemblyFile, y la ruta del ensamblado.Si se cargaron complementos NLog personalizados (como se describe en la sección Añadir extensiones NLog ), se hará referencia a ellos en la sección
extensions. -
Configura el destino y la regla en el archivo
nlog.config.json. -
Aplica el archivo
nlog.config.jsonutilizando la herramienta de línea de comandosuipathctl:./bin/uipathctl config orchestrator update-config --nlog-config nlog.config.json./bin/uipathctl config orchestrator update-config --nlog-config nlog.config.jsonImportante:Esta acción sobrescribe la configuración de NLog personalizada existente. Puedes comprobar cuál es la configuración existente utilizando este comando:
./bin/uipathctl config orchestrator get-config --nlog-config./bin/uipathctl config orchestrator get-config --nlog-configArchivo
nlog.config.jsonde ejemplo que escribe registros en Azure Blob:{ "NLog": { "extensions": [ { "assemblyFile": "NLog.Extensions.AzureBlobStorage.dll" } ], "targets": { "azureBlob": { "type": "AzureBlobStorage", "connectionString": "DefaultEndpointsProtocol=https;AccountName=test;AccountKey=key;EndpointSuffix=core.windows.net", "container": "orchestratorlogs", "blobName": "${date:format=yyyy-MM-dd hh.mm}", "layout": { "type": "JsonLayout", "includeAllProperties": true, "Attributes": [ {"name": "ts","layout": "${longdate}"}, {"name": "level","layout": "${level:upperCase=true}"}, {"name": "logger","layout": "${logger}"}, {"name": "message","layout": "${message}"}, {"name": "exception","layout": "${onexception:${ui-pretty-exception}}"} ] } } }, "rules": { "70_Final": { "writeTo": "stdout,azureBlob" } } } }{ "NLog": { "extensions": [ { "assemblyFile": "NLog.Extensions.AzureBlobStorage.dll" } ], "targets": { "azureBlob": { "type": "AzureBlobStorage", "connectionString": "DefaultEndpointsProtocol=https;AccountName=test;AccountKey=key;EndpointSuffix=core.windows.net", "container": "orchestratorlogs", "blobName": "${date:format=yyyy-MM-dd hh.mm}", "layout": { "type": "JsonLayout", "includeAllProperties": true, "Attributes": [ {"name": "ts","layout": "${longdate}"}, {"name": "level","layout": "${level:upperCase=true}"}, {"name": "logger","layout": "${logger}"}, {"name": "message","layout": "${message}"}, {"name": "exception","layout": "${onexception:${ui-pretty-exception}}"} ] } } }, "rules": { "70_Final": { "writeTo": "stdout,azureBlob" } } } }Archivo
nlog.config.jsonde ejemplo que escribe registros de UiPath Robots en Splunk:{ "Nlog": { "extensions": [ { "assemblyFile": "NLog.Targets.Splunk.dll" }, { "assembly": "UiPath.Orchestrator.Logs.DatabaseBulk.NLogTarget" } ], "targets": { "Splunk": { "type": "AsyncWrapper", "overflowAction": "Discard", "queueLimit": 10000, "batchSize": 200, "timeToSleepBetweenBatches": 1, "target": { "type": "SplunkHttpEventCollector", "serverUrl": "http://splunk.example.com", "token": "splunk-token", "channel": "", "source": "${logger}", "sourceType": "_json", "index": "uipath", "retriesOnError": "0", "batchSizeBytes": "0", "batchSizeCount": "0", "includeEventProperties": "true", "includePositionalParameters": "true", "includeMdlc": "true", "maxConnectionsPerServer": "10", "ignoreSslErrors": "false", "useProxy": "false", "proxyUrl": "", "proxyPassword": "" } } }, "rules": { "20_Robot_Primary": { "writeTo": "Splunk,database,insightsRobotLogs" } } } }{ "Nlog": { "extensions": [ { "assemblyFile": "NLog.Targets.Splunk.dll" }, { "assembly": "UiPath.Orchestrator.Logs.DatabaseBulk.NLogTarget" } ], "targets": { "Splunk": { "type": "AsyncWrapper", "overflowAction": "Discard", "queueLimit": 10000, "batchSize": 200, "timeToSleepBetweenBatches": 1, "target": { "type": "SplunkHttpEventCollector", "serverUrl": "http://splunk.example.com", "token": "splunk-token", "channel": "", "source": "${logger}", "sourceType": "_json", "index": "uipath", "retriesOnError": "0", "batchSizeBytes": "0", "batchSizeCount": "0", "includeEventProperties": "true", "includePositionalParameters": "true", "includeMdlc": "true", "maxConnectionsPerServer": "10", "ignoreSslErrors": "false", "useProxy": "false", "proxyUrl": "", "proxyPassword": "" } } }, "rules": { "20_Robot_Primary": { "writeTo": "Splunk,database,insightsRobotLogs" } } } }
Dimensionar el queueLimitde Slunk
La cola absorbe la acumulación de Splunk durante las ralentizaciones. Ajusta el tamaño a tu rendimiento máximo, no a tu promedio:
queueLimit = peak_logs_per_sec × acceptable_backlog_seconds
queueLimit = peak_logs_per_sec × acceptable_backlog_seconds
| Implementación | Tasa máxima | Tolerancia a la acumulación | Límite de cola |
|---|---|---|---|
| Pequeño | ~10 registros/s | 60 s | 600 |
| Medio | ~35 registros/s | 300 s | 10000 |
| Grande | ~200 registros/s | 60 s | 12000 |
Mejores prácticas para objetivos de Splunk
- Usa
overflowAction: Discardpara objetivos secundarios. Los destinos de registro externos como Splunk suelen ser destinos de análisis u observabilidad, la base de datos de Orchestrator es la fuente de la verdad. Si el destino externo no puede seguir el ritmo, es preferible soltar su copia que bloquear los hilos de la aplicación. - Reserve
overflowAction: Blockpara destinos en los que la pérdida no sea aceptable.Blockevita la pérdida de eventos, pero no evita el bloqueo. Cuando la cola se llena bajo carga sostenida, vuelve al mismo comportamiento de bloqueo de hilos queBufferingWrapper. Úsalo solo cuando el destino externo sea un requisito de cumplimiento o de auditoría, y dimensionaqueueLimitgenerosamente para que coincida con el rendimiento máximo. - Mantén siempre
databaseen la reglawriteTojunto con cualquier destino externo. Esto garantiza que ningún registro del robot se pierda de forma permanente, independientemente de la disponibilidad o el rendimiento del destino externo. - Lavar antes de apagar.
AsyncWrappermantiene eventos en una cola en memoria. Asegúrate de que los destinos de NLog se vacíen en un apagado ordenado para evitar perder la cola de la cola cuando finaliza el proceso.
Actualizar la configuración avanzada de NLog
Los comandos uipathctl necesarios para actualizar la configuración de NLog son:
./bin/uipathctl config orchestrator get-config --nlog-config: exporta la configuración actual en un archivo json de par clave-valor, listo para editar../bin/uipathctl config orchestrator update-config --nlog-config nlog.config.json: actualiza la configuración con tus cambios.
-
Exporta la configuración de NLog personalizada actual a un archivo json utilizando este comando:
./bin/uipathctl config orchestrator get-config --nlog-config > nlog.config.json./bin/uipathctl config orchestrator get-config --nlog-config > nlog.config.json -
Edita el archivo
nlog.config.jsonexportado según sea necesario. Puedes añadir, eliminar o cambiar cualquiera de sus ajustes.Nota:Debes exportar el archivo de nuevo cada vez que necesites realizar un cambio, ya que la actualización sobrescribe toda la configuración de NLog.
-
Actualiza la configuración de NLog utilizando este comando:
./bin/uipathctl config orchestrator update-config --nlog-config nlog.config.json orchestrator config updated./bin/uipathctl config orchestrator update-config --nlog-config nlog.config.json orchestrator config updated