- Visão geral
- Requisitos
- Modelos de implantação
- Manual: preparando a instalação
- Manual: preparando a instalação
- Etapa 2: configuração do registro compatível com OCI para instalações offline
- Etapa 3: configuração do objectstore externo
- Etapa 4: configuração do High Availability Add-on
- Etapa 5: configuração de bancos de dados SQL
- Etapa 7: configuração do DNS
- Etapa 8: configuração dos discos
- Etapa 9: configuração dos ajustes do nível do kernel e do sistema operacional
- Etapa 10: configuração das portas do nó
- Etapa 11: aplicação de configurações diversas
- Etapa 12: validação e instalação dos pacotes RPM necessários
- Etapa 13: geração de cluster_config.json
- Amostra Cluster_config.json
- Configuração geral
- Configuração do perfil
- Configuração de Certificados
- Configuração do Banco de Dados
- Configuração externa do Objectstore
- Configuração de URL pré-assinada
- Configuração do ArgoCD
- Configuração da autenticação do Kerberos
- Configuração de registro externo compatível com OCI
- Disaster Recovery: configurações Ativo/Passivo e Ativo/Ativo
- Configuração do High Availability Add-on
- Configuração específica do Orchestrator
- Configuração específica do Insights
- Process Mining-specific configuration
- Configuração específica do Document Understanding
- Automation Suite Robots-specific configuration
- Configuração do monitoramento
- Opcional: configuração do servidor proxy
- Opcional: habilitação da resiliência a falhas zonais em um cluster de produção pronto para alta disponibilidade de vários nós
- Opcional: transmitindo resolv.conf personalizado
- Optional: Increasing fault tolerance
- Adicionando um nó de agente dedicado com suporte a GPU
- Adicionando um nó de agente dedicado para robôs do Automation Suite
- Etapa 15: configuração do registro temporário do Docker para instalações offline
- Etapa 16: validação dos pré-requisitos para a instalação
- Executando o uipathctl
- Manual: realizando a instalação
- Pós-instalação
- Administração de cluster
- Gerenciando produtos
- Introdução ao portal de administração do cluster
- Migração do Redis do High Availability Add-on no cluster para externo
- Migrating data between objectstores
- Migrating in-cluster objectstore to external objectstore
- Migração de um registro no cluster para um registro externo compatível com OCI
- Mudança para o cluster secundário manualmente em uma configuração Ativo/Passivo
- Disaster Recovery: executando operações pós-instalação
- Convertendo uma instalação existente para configuração multi-local
- Diretrizes sobre atualização de uma implantação Ativo/Passivo ou Ativo/Ativo
- Diretrizes sobre backup e restauração de uma implantação Ativo/Passivo ou Ativo/Ativo
- Escalando uma implantação de nó único (avaliação) para uma implantação de vários nós (HA)
- Monitoramento e alertas
- Migração e atualização
- Migração entre clusters do Automation Suite
- Atualizando o Automação Suite
- Download dos pacotes de instalação e obtenção de todos os arquivos no primeiro nó do servidor
- Recuperação da mais recente configuração aplicada do cluster
- Atualização da configuração de cluster
- Configuração do registro compatível com OCI para instalações offline
- Execução da atualização
- Realização de operações pós-atualização
- Configuração específica do produto
- Configuração avançada do Orchestrator
- Configuração de parâmetros do Orchestrator
- Configuração do AppSettings
- Configuração do tamanho máximo da solicitação
- Substituição da configuração de armazenamento no nível do cluster
- Configuração do NLog
- Salvando logs do robô no Elasticsearch
- Configuração dos repositórios de credenciais
- Configuração da chave de criptografia por tenant
- Limpeza do banco de dados do Orchestrator
- Ignorar a instalação da biblioteca do host
- Melhores práticas e manutenção
- Solução de problemas
- Como solucionar problemas dos serviços durante a instalação
- Como reduzir as permissões para um diretório de backup NFS
- Como desinstalar o cluster
- Como limpar os artefatos offline para melhorar o espaço em disco
- Como limpar os dados do Redis
- Como habilitar o registro em log do Istio
- Como limpar logs manualmente
- Alterando o modo somente leitura do Ceph
- Como limpar logs antigos armazenados no bucket do sf-logs
- Como desabilitar os logs de streaming para o AI Center
- Como depurar instalações do Automation Suite com falha
- Como excluir imagens do instalador antigo após a atualização
- Como desabilitar o descarregamento de soma de verificação do TX
- Como definir manualmente o nível de log do ArgoCD como Info
- Como expandir o armazenamento do AI Center
- Como gerar o pull_secret_value codificado para registros externos
- Como lidar com cifras fracas no TLS 1.2
- Como verificar a versão do TLS
- Como trabalhar com certificados
- Como agendar o backup e restaurar dados do Ceph
- Como coletar dados de uso de DU com objectstore (Ceph) no cluster
- Como instalar o RKE2 SELinux em ambientes air-gapped
- Como limpar backups diferenciados antigos em um servidor NFS
- Como implantar o Insights em um cluster habilitado para FIPS
- Como migrar para o Cgroup v2
- Como recuperar a autenticação do Kerberos após uma reinicialização da VM
- Como enviar uma imagem do Docker local para o registro no cluster
- Como excluir buckets do backup
- Erro ao baixar o pacote
- A instalação offline falha devido a um binário ausente
- Azure disk not marked as SSD
- Falha após a atualização do certificado
- Erros de validação de certificado TLS
- Antivírus causa problemas de instalação
- Automation Suite not working after OS upgrade
- O Automation Suite requer que backlog_wait_time seja definido como 0
- A instalação do registro temporário falha no RHEL 8.9
- Problema de reinício frequente em implantações de namespace uipath durante instalações offline
- Configurações de DNS não honradas pelo CoreDNS
- A geração de registros no cluster falha devido a memória insuficiente
- As verificações de pré-requisitos falham quando os projetos modernos do Document Understanding estão habilitados e o AI Center está desabilitado
- Upgrade fails due to unhealthy Ceph
- A atualização falha devido a objetos clássicos no banco de dados do Orchestrator
- Um cluster do Ceph foi encontrado em um estado degradado após atualização lado a lado
- A atualização do serviço falha para o Apps
- Tempos limite de atualização no local
- Falha de atualização em ambientes offline
- pod snapshot-controller-crds no estado CrashLoopBackOff após a atualização
- Falha de atualização devido aos tamanhos de PVC do Insights substituídos
- Falha de atualização devido ao nome de host em letra maiúscula
- Configurando um intervalo de tempo limite para os portais de gerenciamento
- Autenticação não funciona após migração
- kinit: não é possível encontrar o KDC para o realm <AD Domain> ao obter credenciais iniciais
- kinit: o Keytab não contém chaves adequadas para *** ao obter credenciais iniciais
- Falha na operação GSSAPI devido a código de status inválido
- Alarme recebido para trabalho com falha do Kerberos-tgt-update
- Provedor de SSPI: servidor não encontrado no banco de dados Kerberos
- Falha de login para usuário do AD devido a conta desabilitada
- ArgoCD login failed
- Falha ao obter a imagem do sandbox
- Os pods não são exibidos na UI do ArgoCD
- Falha de teste do Redis
- O servidor RKE2 falha ao iniciar
- O ArgoCD entra em estado Em andamento após a primeira instalação
- Pod de repositório do ArgoCD em CrashLoopBackOff
- Migreção manual do ArgoCD NetworkPolicy (GHSA-47m3-95c7-g2g8)
- Métricas Ceph-rook ausentes nos painéis de monitoramento
- Incompatibilidade em erros relatados durante as verificações de integridade do diagnóstico
- Configuração de solicitações e limites de recursos para cargas de trabalho criadas pelo uipathctl
- Nenhum problema upstream íntegro
- Inicialização do Redis bloqueada por antivírus
- Os pods do AI Center e do Document Understanding falham ao iniciar com a verificação do certificado TLS habilitada
- O Fluentd não exporta logs em ambientes IPv6
- O Studio Desktop não pode carregar conectores e atividades do Integration Service
- O Document Understanding não está no menu de navegação esquerdo do Automation Suite
- Status de Falha ao criar uma sessão de rotulagem de dados
- Status de Falha ao tentar implantar uma habilidade de ML
- Trabalho de migração falha no ArgoCD
- Reconhecimento de escrita com o Extrator de formulários inteligente não está funcionando
- Execução de alta disponibilidade com o Process Mining
- Falha na ingestão do Process Mining ao fazer logon usando o Kerberos
- Não é possível conectar-se ao banco de dados AutomationSuite_ProcessMining_Warehouse usando uma string de conexão em formato pyodbc.
- A instalação do Airflow falha com sqlalchemy.exc.ArgumentError: não foi possível analisar o URL rfc1738 da string ''
- Como adicionar uma regra de tabela de IP para usar a porta 1433 do SQL Server
- O certificado do Automation Suite não é confiável para o servidor em que o CData Sync está sendo executado
- Process Mining fails to load after disabling and re-enabling it
- Execução da ferramenta de diagnóstico
- Usando o pacote de suporte do Automation Suite
- Exploração de logs
Opções de configuração do NLog e extensões de registro compatíveis para o Orchestrator no Automation Suite.
Adição de extensões do NLog
O Orchestrator carrega as extensões a seguir por padrão, portanto, você não precisa incluí-las na pasta ou na configuração do NLog:
NLog.Targets.ElasticSearchUiPath.Orchestrator.Logs.ElasticsearchMicrosoft.ApplicationInsights.NLogTargetNLog.Extensions.AzureEventHub
Apenas extensões compatíveis com Linux podem ser usadas nesta configuração; portanto, certifique-se de que sua extensão de NLog escolhida obedeça a essa regra.
Para disponibilizar a extensão para uso, ela deve ser carregada no armazenamento do cluster. A ferramenta de linha de comando uipathctl pode fazer isso pelo 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
Se você usar uma configuração de armazenamento externo no nível do cluster, você deve indicar isso incluindo o parâmetro --is-external-storage.
Configuração avançada do NLog
Criação da configuração avançada do NLog
-
Crie o
nlog.config.jsonarquivo que contém as seções padrão: extensões, destinos e regras.A seção de extensões é uma matriz de itens que especificam os conjuntos de extensão, por meio de
assemblyFile, e o caminho da montagem.Se os plug-ins personalizados do Nlog tiverem sido carregados (conforme descrito na seção Adicionando extensões do NLog), serão referenciados na seção
extensions. -
Configure o destino e a regra no arquivo
nlog.config.json. -
Aplique o arquivo
nlog.config.jsonusando a ferramenta de linha de comandouipathctl:./bin/uipathctl config orchestrator update-config --nlog-config nlog.custom.json./bin/uipathctl config orchestrator update-config --nlog-config nlog.custom.jsonImportante:Essa ação substitui a configuração personalizada existente do NLog. Você pode verificar qual é a configuração existente usando este comando:
./bin/uipathctl config orchestrator get-config --nlog-config./bin/uipathctl config orchestrator get-config --nlog-configExemplo de arquivo
nlog.config.jsonque grava logs no 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" } } } }Exemplo de arquivo
nlog.config.jsonque grava logs de robôs no 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" } } } }
Dimensionamento do Splunk queueLimit
A fila absorve o backlog do Splunk durante desacelerações. Dimensione para sua taxa de transferência de pico, não para sua média:
queueLimit = peak_logs_per_sec × acceptable_backlog_seconds
queueLimit = peak_logs_per_sec × acceptable_backlog_seconds
| Implantação | Taxa de pico | Tolerância à lista de pendências | LimiteDeFila |
|---|---|---|---|
| Pequeno | ~10 logs/s | 60 s | 600 |
| Médio | ~35 logs/s | 300 s | 10000 |
| Grande | ~200 logs/s | 60 s | 12000 |
Melhores práticas para destinos do Splunk
-
overflowAction: Discardpara destinos secundários. Os destinos de log externos, como Splunk, são normalmente destinos de análise ou observabilidade, sendo que o banco de dados do Orchestrator é a fonte da verdade. Se o destino externo não puder acompanhar, é preferível soltar sua cópia a bloquear threads de aplicativos. - Reservar
overflowAction: Blockpara destinos em que a perda não é aceitável.Blockimpede a perda de eventos, mas não impede o bloqueio. Quando a fila é preenchida sob carga sustentada, ela é revertida para o mesmo comportamento de bloqueio de thread queBufferingWrapper. Use-o apenas quando o destino externo for um requisito de conformidade ou auditoria e dimensionequeueLimitgenerosamente para corresponder à taxa de transferência de pico. - Sempre mantenha
databasena regrawriteToao lado de qualquer destino externo. Isso garante que nenhum log do UiPath Robot seja perdido permanentemente, independentemente da disponibilidade ou desempenho do destino externo. - Limpar antes do desligamento.
AsyncWrappercontém eventos em uma fila na memória. Certifique-se de que os destinos do NLog sejam liberados no desligamento suave para evitar perder a parte final da fila quando o processo sair.
Atualização da configuração avançada do NLog
Os comandos uipathctl necessários para atualizar a configuração do NLog são:
./bin/uipathctl config orchestrator get-config --nlog-config- Exporta a configuração atual em um arquivo json de par de chave-valor, pronto para edição../bin/uipathctl config orchestrator update-config --nlog-config nlog.config.json- Atualiza a configuração com suas alterações.
-
Exporte a configuração personalizada atual do NLog para um arquivo json usando este comando:
./bin/uipathctl config orchestrator get-config --nlog-config > nlog.config.json./bin/uipathctl config orchestrator get-config --nlog-config > nlog.config.json -
Edite o arquivo
nlog.config.jsonexportado conforme necessário. Você pode adicionar, remover ou alterar qualquer uma de suas configurações.Observação:Você deve exportar o arquivo novamente toda vez que precisar fazer uma alteração, pois a atualização substitui todas as configurações do NLog.
-
Atualize a configuração do NLog usando 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