- Visão geral
- Requisitos
- Pré-instalação
- Preparação da instalação
- Baixando os pacotes de instalação
- Configuração do registro compatível com OCI
- Concessão de permissões de instalação
- Instalação e configuração do service mesh
- Instalando e configurando a ferramenta GitOps
- Instalando o operador de segredos externos no Kubernetes
- Aplicação de configurações diversas
- Executando o uipathctl
- Instalação
- Pós-instalação
- Migração e atualização
- Monitoramento e alertas
- Administração de cluster
- 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
- AI Trust Layer
- Solução de problemas
- Falha no provisionamento do AI Center após a atualização para a 2023.10 ou posterior
- Volumes do Insights criados em duas zonas diferentes após a migração
- Falha de atualização devido aos tamanhos de PVC do Insights substituídos
- Os componentes de backup do Velero permanecem após a atualização no AKS do Automation Suite 2024.10.x
- A configuração de backup não funciona devido a uma falha na conexão com o Azure Government
- Pods no namespace uipath travaram ao habilitar taints de nó personalizado
- Não é possível iniciar o Automation Hub e o Apps com configuração de proxy
- O backup do Velero falha com o erro FailedValidation
- Solução de problemas de segredos externos
- Solução de problemas de Temporal como um serviço
- Os pods do AI Center e do Document Understanding falham ao iniciar com a verificação do certificado TLS habilitada
- Erros de validação de certificado TLS
- O Fluentd não exporta logs em ambientes IPv6
- O Studio Desktop não pode carregar conectores e atividades do Integration Service
- Migreção manual do ArgoCD NetworkPolicy (GHSA-47m3-95c7-g2g8)
- Configuração de solicitações e limites de recursos para cargas de trabalho criadas pelo uipathctl
Configuração do NLog
Configure o registro em log do NLog para o Orchestrator no Automation Suite no EKS/AKS.
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 por meio do comando uipathctl config orchestrator upload :
uipathctl config orchestrator upload --nlog-extensions-directory /path/to/extensions/directory
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:uipathctl config orchestrator update-config --nlog-config nlog.config.jsonuipathctl config orchestrator update-config --nlog-config nlog.config.jsonImportante:Essa ação substitui a configuração personalizada existente do NLog. Você pode verificar qual é a configuração existente usando este comando:
uipathctl config orchestrator get-config --nlog-configuipathctl 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:
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.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:
uipathctl config orchestrator get-config --nlog-config > nlog.config.jsonuipathctl 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:
uipathctl config orchestrator update-config --nlog-config nlog.config.json orchestrator config updateduipathctl config orchestrator update-config --nlog-config nlog.config.json orchestrator config updated