- 入门指南
- 要求
- 最佳实践
- 安装
- 正在更新
- 身份服务器
- 对启动错误进行故障排除
Orchestrator 安装指南
UiPath.Orchestrator.dll.config
UiPath.Orchestrator.dll.config
文件 (C:\Program Files (x86)\UiPath\Orchestrator
) 定义应用于 Orchestrator 部署的参数、设置和首选项。
-
升级后,系统会覆盖此文件中参数的所有更改。
-
只有管理员才能更改这些参数的值。
-
推荐在对
UiPath.Orchestrator.dll.config
进行更改后,手动重新启动网站。 -
此页面中未记录的参数不应更改,也不应在设置页面中具有对应的参数。
-
所有参数都区分大小写。
EncryptionKeyPerTenant.Enabled
允许您根据 Microsoft Azure 密钥保管库帐户对每个租户使用不同的加密密钥。以下值可以归为:
false
- 在整个 Orchestrator 实例上使用单个加密密钥。这是默认值。true
- 对每个租户使用不同的加密密钥,增强租户安全性,并提供更好的敏感数据隔离。
EncryptionKeyPerTenant.KeyProvider
参数,以及 SecureAppSettings 部分中的参数。
EncryptionKeyPerTenant.KeyProvider
AzureKeyVault
可使用预配置的 Microsoft Azure 密钥保管库。 我们不提供 Azure 密钥保险库许可证。 请注意,您还必须配置安全应用程序设置部分中描述的 参数 。 如果 EncryptionKeyPerTenant.Enabled
设置为 false
,则不使用此参数。
此处对加密设置所做的更改需要根据以下字段等效性,在身份服务器 appsettings.Production.json 文件中进行镜像:
Orchestrator UiPath.Orchestrator.dll.config |
Identity Server appsettings.Production.json |
---|---|
EncryptionKeyPerTenant.Enabled |
EncryptionKeyPerTenant |
Azure.KeyVault.VaultAddress |
Azure 密钥保管库地址 |
Azure.KeyVault.CertificateThumbprint |
AzureKeyVaultCertificateThumbprint |
Azure.KeyVault.ClientId |
AzureKeyVaultClientId |
Azure.KeyVault.DirectoryId |
AzureKeyVaultDirectoryId |
EncryptionKeyPerTenant.KeyProvider |
MultiTenantEncryptionKeyProvider |
inProgressMaxNumberOfMinutes
队列项目可以处于进行中状态的最大时间。在此时间之后,队列项目的状态将更改为“已放弃”。默认情况下,设置为 1440 分钟(24 小时)。
QueuesStatisticsScheduleCron
在仪表板和事务页面以及图表窗口中更新队列项统计信息的频率。默认情况下,它们每分钟更新一次。
UpdateUncompletedItemsJobCron
在数据库中查找需要移动到“已放弃”的队列的频率。默认情况下,此参数设置为每小时。
Queue.MaxSlaInMinutes
UiPath.Orchestrator.dll.config
中默认显示,包括处于更新状态的方案。
Queue.MaxSchemaFileSizeInKilobytes
UiPath.Orchestrator.dll.config
文件中。
Queue.SlaReadaheadTimeLimitHours
UiPath.Orchestrator.dll.config
中。
Queue.MaxSpecificDataSizeInKiloBytes
新队列项目特定数据内容的大小上限,以千字节为单位。对于干净的 Orchestrator 安装,此参数处于隐藏状态,默认值为 1024 (1MB)。在升级方案中,此参数可见,且值为 204800 (200MB)。
Queue.ProcessActivationSchedule
检查未处理的队列项目之间的时间间隔。默认情况下,它设置为 30 分钟。要调整检查间隔,请指定 0 到 59 之间的值,重新启动 IIS,然后删除现有队列触发器并重新创建它。
DailyAlertMailJobCron
使您能够配置 cron 表达式,以控制何时发送每日电子邮件警示。 这仅适用于启用 电子邮件警示 的情况。 该报告包含前一天生成的所有“ 致命 ”和“ 错误 ”严重性警示。 默认情况下,每天早上 7 点发送
Alerts.Email.Enabled
false
。您可以将其设置为 true
,以自动为即将创建的租户启用电子邮件警示。
但是,创建租户后,对此参数进行的任何更改都将不再有效。 但您可以通过“设置”页面中的“启用警示电子邮件”复选框来切换设置。 有关更多详细信息,请查看 “启用警示电子邮件”页面。
NotificationDistributerJobCron
向接口发送警示通知的频率。默认情况下,警示每 10 秒发送一次。
PeriodicErrorMailJobCron
使您能够配置 cron 表达式,以控制发送定期电子邮件警示的频率。 这仅适用于启用 电子邮件警示 的情况。 默认值为每 10 分钟一次,这意味着报告包含过去 10 分钟内生成的“ 致命 ”和“ 错误 ”严重性警示。 如果未生成警示,则不发送任何报告。
PasswordComplexity
控制密码复杂性的验证规则,并使用正则表达式表示。默认情况下,复杂性适用于所有密码(包括主机管理员密码),但每个租户都可以在“设置”页面的“安全”选项卡上自定义其用户登录密码复杂性。默认情况下,密码必须至少包含 8 个字符,且必须至少包含一个字母和一个数字。
SystemJobs.DetectNotRespondingRobots.MaxAlertCount
<add key="SystemJobs.DetectNotRespondingRobots.MaxAlertCount" value="10" />
添加到 UiPath.Orchestrator.dll.config
文件的所有其他警示参数下。请注意,如果应用此设置,当警示总数高于配置的警示总数时,事件查看器中会引发警告,例如: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
,这意味着您收到电子邮件警报 6 次:许可证到期前 180、90、30、14、7 和 1 天。您可以定义较少的值,以减少电子邮件警示的发送频率。例如,可以通过在 UiPath.Orchestrator.dll.config
文件中添加以下键实现:<add key="SystemJobs.LicenseExpirationAlert.DaysBefore" value="90,30,14" />
。
Storage.Type
和 Storage.Location
参数指定的位置。
Storage.Type
定义包和执行媒体保存到的目标。它可以使用以下目标填充:
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
定义包和执行媒体保存到的实际位置。
Storage.Location
参数是必需的:
- 从任何 2020.10 之前版本的 Orchestrator 升级;
- 前一个
NuGet.Repository.Type
是Legacy
, - 之前的
NuGet.Packages.Path
没有使用默认值。
目标 |
位置 |
---|---|
文件系统 |
使用以下格式提供绝对路径:
RootPath=C:\FolderName\AnotherFolderName 。
示例:
<add key="Storage.Location" value="RootPath=C:\FolderName\AnotherFolderName" /> 。
系统将在提供的文件夹中创建以下文件夹结构: Orchestrator-Host\Libraries - 一个专用于主机订阅源中存储的库的文件夹。
Orchestrator-[tenantKey] - 每个租户一个文件夹。租户由在数据库中找到的租户密钥标识。例如 Orchestrator-12ab1234-a567-456b-a12b-ab3456b123ab 。
系统还将对每个租户文件夹创建其他三个子目录:
文件保存在指定位置的专用文件夹中。默认情况下,它们存储在以下路径中:
C:\Program Files (x86)\UiPath\Orchestrator\Storage 。
|
Azure |
提供一个连接字符串。 示例:
<add key="Storage.Location" value="DefaultEndpointsProtocol=https;AccountName=usr;AccountKey=...;EndpointSuffix=core.windows.net" /> 。
|
亚马逊 |
示例:
<add key="Storage.Location" value="EndpointRegion=eu-west-3;accessKey=AKIAZGUEIGXUJ3BBI4MW;secretKey=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;useHttp=false" /> 。
示例:
<add key="Storage.Location" value="EndpointRegion=eu-west-3;accessKey=AKIAZGUEIGXUJ3BBI4MW;secretKey=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;useHttp=false;BlockPublicAccess=true" /> 。
示例:
<add key="Storage.Location" value="EndpointRegion=eu-west-3;UseDefaultCredentials=true" /> 。
|
Minio |
提供一个连接字符串。 示例:
<add key="Storage.Location" value="host=localhost:9001;accessKey=YVKYFJ0ZY246KDKP0634;secretKey=bdBEk2ubhIFsTNPuQ80PjKL+oqZBj67HoSWBFnw1" /> 。
|
示例
<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\" />
上述配置指示 Orchestrator:
- 将包元数据存储在 SQL 数据库中;
- 将 Azure Blob 存储中的实际文件保存在
DefaultEndpointsProtocol=https;AccountName=usr;AccountKey=...;EndpointSuffix=core.windows.net
连接字符串指示的位置; -
使用 Azure 容器名称的默认命名约定 -
Orchestrator-tenantKey
。重要提示:如果 Orchestrator 中的租户超过 99 个,则有两个选项可以避免 AWS S3 存储桶帐户限制。
- 按照下节中的说明,将数据存储在单个外部存储桶中。
- 增加默认的 AWS S3 存储桶帐户限制,以匹配租户数量。
这是必需的,因为系统会为每个租户创建一个单独的存储桶。
将 Orchestrator 数据存储在单个外部存储桶中
要将单个存储桶与您自己的外部存储提供程序一起使用,请将以下参数添加到相应的连接字符串中:
BucketName
- 必填。使 Orchestrator 能够将所有租户存储在单个存储桶中。它需要在存储提供程序中设置的存储桶名称。为此,在安装 Orchestrator 之前,您必须有外部存储。CanCreateBucket
- 可选。如果设置为 True,则它允许 Orchestrator 代表您在外部存储中创建存储桶。默认值为 False。
ContentPrefix
- 可选。 指定 Orchestrator 数据在外部存储中的路径。 例如orchestrator/data
。
示例:将单个存储桶与您自己的外部存储提供程序一起使用
<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
的值相同。默认值用于数据库的初始种子设定。请注意,系统也会接受任意字符串。
NuGet.Activities.ApiKey
NuGet.Packages.ApiKey
的值相同。请注意,也接受任意字符串。
可以通过监视文件系统或使用 Redis 实现多个 Orchestrator 节点和接口之间的包同步。这可以使用以下配置进行配置。推荐的方式是通过 Redis。
Processes.AllowUpdateWithRunningJobs
指定是否可以删除运行中或待处理的作业相关联的流程。请注意,默认情况下,此参数是隐藏的。以下值可用:
true
- 在具有正在运行或挂起的关联作业时,可以删除流程。false
- 在具有正在运行或挂起的关联作业时,无法删除流程。若尝试删除某个流程(本例中),则将显示以下错误消息:“目前无法修改此流程,因为存在与其关联的活动作业。(#1666)”。这是默认值。
UiPath.Orchestrator.dll.config
文件中添加 <add key="Processes.AllowUpdateWithRunningJobs" value="true" />
。
Deployment.Libraries.AllowTenantPublish
允许您指定使用主机订阅源的租户是否能够将库上传到订阅源中。以下值可用:
true
- 在租户级别上传的库会传播到主机订阅源。这是默认值。false
- 在租户级别上载的库不会传播到主机订阅源。但是,请注意,用户确实有权访问订阅源中的现有库。
您也可以从用户界面配置此功能。在主机级别的设置页面上可以找到相应选项允许租户用户上传到订阅源。
Buckets.ContentSecurityPolicy
UiPath.Orchestrator.dll.config
文件中默认不显示。
Buckets.AvailableProviders
用于控制可用于创建存储桶的提供程序。可用的提供程序包括:Orchestrator、Amazon、Azure、Minio、与 S3 兼容的存储提供程序和文件系统。可以输入多个值,并用逗号分隔符隔开。
UiPath.Orchestrator.dll.config
文件中,并且仅选择以下提供程序:Orchestrator
、Amazon
、Azure
、Minio
和 S3Compatible
。默认行为特定于全新安装和升级。如果键可见,则可用的提供程序将限制为指定为 Buckets.AvailableProviders
值的提供程序。
示例:要仅使用 Orchestrator、Amazon 和 Azure 作为存储桶提供程序,请添加以下键:
<add key="Buckets.AvailableProviders" value="Orchestrator,Amazon,Azure" />
<add key="Buckets.AvailableProviders" value="Orchestrator,Amazon,Azure" />
Buckets.FileSystem.Allowlist
Buckets.FileSystem.Allowlist
来明确允许访问一系列文件夹或网络共享。
|
字符分隔的多个值。请注意,路径必须完全限定,以驱动器或 UNC 路径为根(例如 c:\
、c: est
、\\servershare\shared
),并且每个路径都表示允许用于任何存储桶的前缀。可以在该特定路径或任何子路径上创建存储桶。
AcceptedRootUrls
,
) 分隔项目,例如 "https://server1,https://server2"
。
Auth.Bearer.Robot.Expire
您的机器人持有者令牌过期后的时间量。默认情况下,设置为 30 分钟。
Auth.DisabledPermissions
<add key="Auth.DisabledPermissions" value="Machines.Delete,Libraries.Delete" />
。
Auth.AllowChangePassword
使您能够配置用户是否可以通过 API 更改其密码。此设置在 UiPath.Orchestrator.dll.config
文件中默认不显示。可用值为 true
(默认值)和 false
。
Auth.AllowSelfEmailUpdate
true
,这意味着您可以更新它。将参数设置为 false
即可使字段只读。此设置在 UiPath.Orchestrator.dll.config
文件中默认不显示。
ExternalAuth.AccessTokenAuth.Enabled
UiPath.Orchestrator.dll.config
文件中默认不显示。以下值可用:
true
- 用户无法使用 Auth0 发布的访问令牌发出身份验证请求。仅当您为ExternalAuth.AccessTokenAuth.Audience
参数设置有效受众时,才考虑这一点。false
- 用户无法使用 Auth0 发布的访问令牌发出身份验证请求。此为默认值。
ExternalAuth.AccessTokenAuth.Audience
<add key="ExternalAuth.AccessTokenAuth.Audience" value="https://cloud.uipath.com" />
。此设置在 UiPath.Orchestrator.dll.config
文件中默认不显示。
ExternalAuth.ShowPII
<add key="ExternalAuth.ShowPII" value="true" />
。默认情况下,该键在 UiPath.Orchestrator.dll.config
中不显示,并且此默认行为即为不允许显示 PII。
RestrictBasicAuthentication
EnableBasicAuthenticationForHostTenant
仅当您使用负载均衡器时,才应修改这些设置。
LoadBalancer.UseRedis
false
。
LoadBalancer.Redis.ConnectionString
LoadBalancer.UseRedis
设置为 true
时才能使用。一个连接字符串,允许您设置 Redis 服务器,其中包含服务器的 URL、密码和与 Redis 一起使用的端口。应将所有 HAA 集群节点添加到连接字符串中。
也可以在 Orchestrator 节点和 Redis 服务之间启用 SSL 加密连接。 有关详细信息,请查看StackExchange.Redis 配置页面。 示例:
- 启用 SSL -
<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" />
- 未启用 SSL -
<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
文件夹中。例如:
- 单一存储:
<add key="Plugins.SecureStores" value="UiPath.Orchestrator.CyberArk.dll"/>
-
多存储:
<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" />
注意:使用现有的 CyberArk 集成升级 Orchestrator 实例时,此设置会预先填充 CyberCrk 插件。对于所有其他安装,默认情况下该设置值为空。
Plugins.SecureStores.CyberArk.CLIPasswordSDKExePath
CLIPasswordSDK64.exe
。例如,如果 D:\CustomFolder\
是 CyberArk 的安装目录,则需要添加以下键值:<add key="Plugins.SecureStores.CyberArk.CLIPasswordSDKExePath" value="D:\CustomFolder\CLIPasswordSDK64.exe"/>
。此应用程序设置的默认值为 C:\Program Files (x86)\CyberArk\ApplicationPasswordSdk\CLIPasswordSDK64.exe
。
Plugins.SecureStores.CyberArk.UsePowerShellCLI
false
。添加以下密钥可将其启用:<add key="Plugins.SecureStores.CyberArk.UsePowerShellCLI" value="true"/>
。
Plugins.SecureStores.CyberArkCCP.KeyStorageFlags
允许选择存储位置以及如何导入为 CyberArk CCP 凭据存储配置的客户端证书私钥。
DefaultKeySet
为默认选项。
EphemeralKeySet
不适用于 Windows 计算机上。我们建议改用 MachineKeySet
。
Azure AD 身份验证的配置已移到 Identity Server 的外部提供程序页面。
Active Directory 身份验证的配置是在安装后从 Orchestrator 的管理门户执行的。
配置 Active Directory 集成有关说明,请参阅页面。
Logs.RobotLogs.ReadTarget
database
或 robotelasticbuffer
)。
RobotsLogs.Flush.Interval
UiPath.Orchestrator.dll.config
中。除非另有说明,否则其值为 0 秒。以下示例显示了如何将刷新间隔设置为 60 秒,这意味着机器人每 60 秒将日志发送到服务器一次。
<add key="RobotsLogs.Flush.Interval" value="60" />
<add key="RobotsLogs.Flush.Interval" value="60" />
RobotsLogs.Flush.BatchSize
UiPath.Orchestrator.dll.config
中。除非另有说明,否则它的值是 100 条日志消息条目,表示机器人每批次将 100 条日志发送到服务器。
<add key="RobotsLogs.Flush.BatchSize" value="100" />
<add key="RobotsLogs.Flush.BatchSize" value="100" />
Logs.RequestAbortedLogBehavior
针对在取消正在执行的操作时引发的取消异常指定日志记录行为。例如,当您单击某个按钮,并在系统执行操作前又单击另一个按钮时,便会产生此类异常。请注意,默认情况下,此参数是隐藏的。以下值可用:
Ignore
- 如果相应的请求已中止,则忽略所有取消异常。这是默认值。Info
- 取消异常的严重性级别记录为 Info。None
- 取消异常的严重性级别记录为 Error。
<add key="Logs.RequestAbortedLogBehavior" value="Ignore" />
。
Logs.Elasticsearch.SharedIndex
index
参数相同的值。 例如<add key="Logs.Elasticsearch.SharedIndex" value="robotlogs" />
。 有关更多详细信息,请查看Elasticsearch部分。
默认情况下,此参数已隐藏。
Logs.Elasticsearch.EnableFolderIdFilter
true
,这意味着日志是隐藏的。将其设置为 false
后就可以显示日志:<add key="Logs.Elasticsearch.EnableFolderIdFilter" value="false" />
Logs.Elasticsearch.Username
在 Elasticsearch 中读取日志所需的用户名。 请注意,只有在启用 Elasticsearch 身份验证且您不使用 NLog 目标时,才需要配置此参数。 在配置参数时,请确保其值与 Elasticsearch 服务器设置相匹配。 有关更多详细信息,请查看X-Pack 身份验证。
Logs.Elasticsearch.Password
在 Elasticsearch 中读取日志所需的用户名。 请注意,只有在启用 Elasticsearch 身份验证且您不使用 NLog 目标时,才需要配置此参数。 在配置参数时,请确保其值与 Elasticsearch 服务器设置相匹配。 有关更多详细信息,请查看X-Pack 身份验证。
Logs.Elasticsearch.OAuthEnabled
true
以启用 OAuth2,并使用基于令牌的身份验证机制在 Elasticsearch 中读取机器人日志,作为用户和密码系统的替代方案。默认情况下,此参数设置为 false
。
启用 OAuth 身份验证时,您仍需要提供用户名和密码,就像在默认身份验证方法中一样。这是必需的,因为初始令牌是根据这些凭据生成的。
有关如何为 Elasticsearch 配置 OAuth2 身份验证的详细说明,请查看 X-Pack 身份 验证部分的 OAuth2 身份验证 部分。
Logs.Elasticsearch.OAuthExpireInSeconds
使您能够在用于读取 Elasticsearch 中机器人日志的访问令牌过期并刷新前设置时间(以秒为单位)。其默认值和建议值为 1200 秒(20 分钟),最大值为 3600 秒(60 分钟)。要使令牌无效,您可以使用 Orchestrator 用户界面中的专用按钮。
Logs.Elasticsearch.OAuthEnabled
设置为true
,并且您已正确配置 Elasticsearch 服务器。 有关更多详细信息,请查看OAuth2 身份验证。
Logs.Elasticsearch.DisableProductCheckStatus
true
。
false
。
disableProductCheckStatus
一起使用,默认情况下该文件也是隐藏的 false
。 还必须将其设置为 true
才能启用该功能。
Webhooks AppSettings.json 中提供更多 Webhook 设置。
Webhooks.VerifyAvailability.Enabled
true
,这意味着该功能已启用。
Scalability.Heartbeat.PeriodSeconds
30
秒。
Scalability.Heartbeat.FailureThreshold
4
,这意味着在检测信号失败 2 分钟(4 x 30 秒 = 2 分钟)后,机器人被标记为无响应。
Scalability.SignalR.Enabled
true
。此参数用于数据库的初始种子设定。若要在安装后进行更改,请使用“租户”或“主机”级别的“设置”页面。
Scalability.SignalR.Transport
指定用于连接到 Orchestrator 的 SignalR 通道的传输协议。以下值可以归为(任意组合 - 按位或):
- WebSocket 传输 = 1
- 服务器发送事件传输 = 2
- 长轮询传输 = 4
- 默认值:7 (WebSocketTransport | ServerSentEventsTransport | LongPollingTransport)
此参数用于数据库的初始种子设定。若要在安装后进行更改,请使用租户或主机级别的“设置”页。
Scalability.AzureSignalR.ConnectionString
帮助您启用“Azure SignalR 服务”,方便您的机器人队列与 SignalR 服务之间建立直接通信
Scalability.AzureSignalR.ConnectionCount
键一起使用。此参数在我们的云产品中启用。它在 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
。示例:<add key="Scalability.AzureSignalR.ConnectionCount" value="7" />
。默认情况下不显示此设置,若没有 Scalability.AzureSignalR.ConnectionString
键,此设置将无法使用。
Scalability.SignalR.RequireStickySessions
true
,则启用所有传输,并且 Orchestrator 假定负载均衡器已启用粘性会话。在 UiPath.Orchestrator.dll.config
中启用粘滞会话但不在负载均衡器上启用将导致 SignalR 连接失败。
MediaRecording.Enabled
false
可禁用记录功能。默认情况下,它设置为 true
,这意味着该功能已启用。文件存储使用 Storage.Type
和 Storage.Location
参数进行配置。
Pagination.Limits.Enabled
true
。为具有分页参数的 API 端点的所有调用添加默认 $top
值(例如,分页参数可为 odata/Users
)。
Triggers.DisableWhenFailedCount
Triggers.DisableWhenFailedCount
允许您调整失败运行的次数,而Triggers.DisableWhenFailingSinceDays
允许您更改天数。默认情况下,Triggers.DisableWhenFailedCount
值为 10,Triggers.DisableWhenFailingSinceDays
值为 1,这意味着如果在过去一天中没有成功运行,则在尝试启动 10 次失败后,将禁用触发器。
Triggers.DisableWhenFailedCount
设置为 0。
如果触发器连续 10 次启动失败且在过去 24 小时内未成功启动,则该触发器将被自动禁用。
Triggers.JobsCountStrategy
用于为通过触发器启动的作业选择作业计数策略。默认隐藏。提供以下选项:
PerProcess
- 触发器启动指定数量的作业,同时考虑到指定流程的所有待处理作业。例如,为同一流程定义的两个触发器分别启动 3 个和 5 个作业。如果第一个触发器在给定的时间点启动了 3 个作业,则当第二个触发器触发时,将启动 2 个作业,以达到 5 个所需的作业。在配置文件中添加以下密钥以使用此策略:<add key="Triggers.JobsCountStrategy" value="PerProcess" />
。这是默认值。PerTrigger
- 触发器启动指定数量的作业,同时考虑到该触发器先前启动的任何现有作业。例如,定义了一个触发器以在给定的时间点启动 9 个作业。如果再次触发此触发器之前已成功完成 2 个作业,则 Orchestrator 将启动另外 2 个作业,以达到 9 个所需的作业。在配置文件中添加以下密钥以使用此策略<add key="Triggers.JobsCountStrategy" value="PerTrigger" />
。NoLimit
- 触发器将启动指定数量的作业,而与任何现有的待处理作业无关。例如,定义了一个触发器以在给定的时间点启动 5 个作业。第二次触发触发器时,将启动另外 5 个作业。在配置文件中添加以下密钥以使用此策略:<add key="Triggers.JobsCountStrategy" value="NoLimit" />
。
Features.QueueTriggers.PendingJobsStrategy
用于选择在将新项目添加到队列时要触发的其他作业数量的计算方法。这是通过从要创建的最大目标作业数中减去处于特定状态的作业数来完成的。
可用的选项如下:
-
True
- 这是默认选项。此选项最适合您希望 Orchestrator 假定所有正在运行的作业已将队列项目移出状态“新建”的情况。该数字的计算方式如下:
根据新可用的队列项目创建的最大附加作业数 = 允许同时挂起和运行的最大作业数减去处于“挂起”状态的作业数。
-
False
- 此选项最适合您希望 Orchestrator 假定所有正在运行的作业尚未将队列项目移出状态“新建”的情况。该数字的计算方式如下:
根据新可用的队列项目创建的最大附加作业数 = 允许同时挂起和运行的最大作业数减去处于以下状态之一的作业数:“ 待定”、“已恢复”、“正在运行”、“正在停止”、“正在终止”。
PreventAutoRefresh.Enabled
<add key="PreventAutoRefresh.Enabled" value="true" />
密钥后就可以限制作业运行时页面的自动刷新。该密钥默认情况下不显示,默认值为 false
,表示 Orchestrator 自动刷新每个新作业的页面。
PreventAutoRefresh.Enabled
参数,当应用筛选或作业状态更改时,页面都会更新。
Features.ClassicFolders.Enabled
false
,这意味着传统文件夹已禁用,并且仅新式文件夹可用。默认情况下,此参数已隐藏。
Jobs.TerminatingJobsTimeout
1440
,这意味着除非作业至少有一天时间一直处于“终止”状态,否则无法将其标记为“失败”。默认情况下,此参数处于隐藏状态。
Jobs.TerminatingJobsCleanupCron
Jobs.TerminatingJobsTimeout
参数中设置的持续时间处于“终止”状态,否则无法将其标记为“失败”。Jobs.TerminatingJobsCleanupCron
和 Jobs.TerminatingJobsTimeout
的默认值分别为 0 0 0/3 1/1 * ? *
和 1440
,这意味着后台作业每三小时运行一次,并且只会将已经至少有一天时间一直处于“终止”状态的作业标记为“失败”。默认情况下,此参数处于隐藏状态。
PW.StopExploringCron
0 25 * ? * *
,表示后台作业在每小时的第 25 分钟开始运行。如果他们没有所需的权限,则探索会话将终止。默认情况下,此参数已隐藏。
Features.LongRunning.Enabled
<add key="Features.LongRunning.Enabled" value="true" />
。
Tasks.ModuleEnabled
Features.SmartCardAuthentication.Enabled
<add key="Features.SmartCardAuthentication.Enabled" value="true" />
。
OData.BackwardsCompatible.Enabled
true
,则分析请求和响应正文中的特殊字符。默认情况下,此参数是隐藏的,并设置为 false
。
NotRespondingRobotsJobStartDelay
UiPath.Orchestrator.dll.config
中默认不显示。
Upload.Queues.MaxNumberOfItems
15000
。请注意,默认情况下,此参数在 UiPath.Orchestrator.dll.config
中不显示。
Processes.FilterOutDeleted
使您能够优化 Orchestrator 检索流程的方式。优化是通过删除对孤立流程(其关联包已删除)的不必要验证实现的。这提高了实例的整体性能,尤其是在大型部署的情况下。以下值可用:
false
- 已优化包检索,不会为孤立的流程执行验证。true
- 包检索未优化。
true
,这意味着流程检索 未 优化。
CertificatesStoreLocation
<add key="CertificatesStoreLocation" value="LocalMachine" />
。确保 appsettings.Production.json 中的 AzureKeyVaultCertificateStoreLocation
具有相同的值。
ProxyIntegration.Enabled
UiPath.Orchestrator.dll.config
中,并且其值设置为 true
,这意味着除非另有说明,否则将启用代理集成。使用 <add key="ProxyIntegration.Enabled" value="false"/> 禁用代理集成。
用于保护凭据资产密码的加密密钥。如果使用具有网络负载均衡器的环境,则此密钥在所有计算机上均应相同。
EncryptionKeyPerTenant.Enabled
设置为true
且EncryptionKeyPerTenant.KeyProvider
设置为AzureKeyVault
时,才能使用这些参数。 此外,请确保在 Azure 密钥保管库的访问策略中向 Orchestrator 实例提供所有密钥、密码和证书权限。 有关完整过程,请查看 “为租户设置加密密钥” 页面。
ae11aa1a-1234-1234-a123-a12a12aaa1aa
格式。此设置在 UiPath.Orchestrator.dll.config
文件中默认不显示。示例:<add key="Azure.KeyVault.ClientId" value="ae11aa1a-1234-1234-a123-a12a12aaa1aa" />
。
UiPath.Orchestrator.dll.config
文件中默认不显示。 示例:<add key="Azure.KeyVault.CertificateThumbprint" value="1234123412341234123412341234124312341234" />
。
https://CustomVaultName.vault.azure.net/
格式。此设置在 UiPath.Orchestrator.dll.config
文件中默认不显示。示例:<add key="Azure.KeyVault.VaultAddress" value="https://CustomVaultName.vault.azure.net/" />
。
本节包含用于配置 S2S 访问令牌和机器人配置访问令牌的设置。
UiPath.Orchestrator.dll.config
:
IdentityServer.GroupMembershipCacheExpireHours
1
IdentityServer.Integration.Enabled
true
。
IdentityServer.Integration.Authority
https://Orchestrator/Identity
,其中 Orchestrator
是 Orchestrator 的安装地址。
IdentityServer.Integration.ClientId
允许您设置用于生成 S2S 访问令牌的应用程序 ID(客户端 ID),这些令牌在 Identity Server 中注册。该值在安装时生成。
IdentityServer.Integration.ClientSecret
使您能为 Orchestrator S2S 应用程序设置客户端密码,以由身份服务器识别。该值在安装时生成。
IdentityServer.Integration.AccessTokenCacheBufferInSeconds
50
。
IdentityServer.Integration.UserOrchestratorApiAudience
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" />
<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
。
UiPath.Orchestrator.dll.config
同时包含以下预先存在的键,且其值设置为 true
:
MultiTenancy.AllowHostToAccessTenantApi
true
时,它允许主机用户访问其他租户的特定数据。默认情况下,该值设置为 true
。
MultiTenancy.TenantResolvers.HttpGlobalIdHeaderEnabled
true
设置允许 Orchestrator 通过从 API 的请求标头读取租户全局 ID 来标识租户。
<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" />
本节包含用于配置更新服务器的参数。
如果更新已推迟,则在多少分钟后开始强制更新。这特定于计划的更新。默认值为 10 分钟。
UiPath.Orchestrator.dll.config
键: <logger name="Robot.*" writeTo="database,robotElasticBuffer" final="true" />
。 它用于配置机器人生成的日志消息。 必须配置以下参数:
-
writeTo
- 用于写入机器人生成的日志消息的位置。以下值可用:database
- 日志发送到 Orchestrator 的 SQL 数据库。这是默认值之一。-
robotElasticBuffer
- 日志将发送到 Elasticsearch。 这是第二个默认值。 请记住,这需要其他设置。 有关更多详细信息,请参阅Elasticsearch部分。将日志同时发送到 Orchestrator 的 SQL 数据库和 Elasticsearch 使您能够具有不可否认的日志。删除其中一个值即可停止记录到该位置。
final
- 一个标志,指示在找到记录的消息和记录器名称之间的匹配项时应做些什么。当设置为true
时,它不会查找其他匹配项。当设置为false
时,将检查与相同源匹配的其他规则。默认情况下,它设置为true
。
UiPath.Orchestrator.dll.config
键:<logger name="Monitoring.*" writeTo="monitoring" minlevel="Warn" final="true" />
。它用于配置监视页上显示的错误日志。请注意,如果您删除此规则或更改 target
,则“监视”页上不会显示任何错误日志。
UiPath.Orchestrator.dll.config
键: <logger name="BusinessException.*" minlevel="Info" writeTo="businessExceptionEventLog" final="true" />
。 它用于配置引发的业务异常的日志。 例如验证问题(例如 Invalid username
)或业务冲突(例如 License expired
)。
了解其他设置。
必须根据您的 ElasticSearch 配置填充以下 NLog 目标:
<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
- Elasticsearch URL;请注意,您必须添加协议和端口,例如http://elastic_server:9200
。您可以将此参数填充为每个节点的 Elasticseach URL,以消除对负载均衡器的需求,例如uri="http://elastic-node1:9200,http://elastic-node2:9200,http://elastic-node3:9200"
。excludedProperties
- 不希望保存到 Elasticsearch 的数据。index
- 日志记录索引的格式,它可以是每个租户唯一的,也可以在所有租户之间共享。详情如下。requireAuth
- 设置为true
以在将 Orchestrator 连接到 Elasticsearch 时启用身份验证。username
- 指定用于登录 Elasticsearch 的用户名。如果requireAuth
设置为true
且OAuthEnabled
设置为false
,则需要对其进行配置。password
- 指定用于登录 Elasticsearch 的密码。如果requireAuth
设置为true
且OAuthEnabled
设置为false
,则需要对其进行配置。OAuthEnabled
- 将此参数设置为true
以启用 OAuth2 并为 Elasticsearch 的 Nlog 目标使用基于令牌的身份验证机制。 首次启用此功能时,您需要提供当前的用户名和密码以生成初始令牌。 为了使此参数生效,您需要确保将Logs.Elasticsearch.OAuthEnabled
也设置为true
,并且您已正确配置 Elasticsearch 服务器。 有关更多详细信息,请查看X-Pack 身份验证部分所述。
- 个人索引 -
index="${event-properties:item=indexName}-${date:format=yyyy.MM}"
- 每个租户都使用一个单独的索引,这意味着将根据唯一的租户标识符(在此情况下为indexName
,默认为租户的名称)生成并检索特定于一个租户的日志。这是默认配置。在这种情况下,每月会生成日志。 -
共享索引 -
index="robotlogs-${date:format=yyyy.MM.dd}"
一个索引用于所有租户,这意味着所有日志,无论租户如何,都使用相同的索引。在这种情况下,每天都会生成日志。要使用共享索引,还需要在UiPath.Orchestrator.dll.config
中添加以下键:<add key="Logs.Elasticsearch.SharedIndex" value="robotlogs" />
。确保将其设置为与 NLog 目标中的index
参数相同的值。重要提示: 如果您切换到共享索引,则会保留使用单个索引生成的日志。 但是,如果您切换到单个索引,则使用共享索引生成的日志将会丢失。
UiPath.Orchestrator.dll.config
中的 NLog 目标配置部分name="robotElastic" index="robot-logs-${date:format=yyyy-MM}"
。- Orchestrator 数据库的
dbo.Settings
表中的LoggingIndex
记录。确保记录与 NLog 目标配置中的索引模式匹配(即robot-logs-${date:format=yyyy-MM}
)。
要将系统事件日志存储在数据库中而不是事件查看器中,请按照以下步骤操作:
-
创建一个新的数据库表,例如:
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)在上述查询中,我们创建了一个名为EventLogs
的表,其中包含以下列:Id
- 保存每个日志的 ID 号,此处从1
开始,并在添加每个日志时增加值;Timestamp
- 保存每个事件的记录时间;Level
- 保存每个事件的数字日志级别;Message
- 保存每个事件的消息(如果适用);-
Exception
- 保存为每个事件记录的异常(如果适用)。注意:您可以任意命名表,并从上述查询中删除任何列,或添加其他列以满足您的需求。
-
在
UiPath.Orchestrator.dll.config
文件中,添加新的 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>为要添加到每个数据库列中的数据定义相应的parameter
,在本例中为@timestamp
、@level
、@message
和@exception
。 -
最后,通过添加以下内容,将上述新创建的目标与所有 Orchestrator 消息的 NLog 记录器分类相关联:
<logger name="*" minlevel="Info" writeTo="eventLog,eventLogDatabase" />
<logger name="*" minlevel="Info" writeTo="eventLog,eventLogDatabase" />
NLog 是一个开源、易于配置且可扩展的日志记录平台,适用于各种 .NET 平台。 使用 NLog,您可以将日志数据存储或传递到任意数量的预定义或自定义目标,例如本地文件、事件日志、电子邮件或数据库。
Trace
、 Debug
、 Info
、 Warn
、 Error
、 Fatal
或Off
。 有关 Orchestrator 中可用级别的说明,请查看“日志记录级别”页面。
Off
,可通过配置 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="">
必须设置的属性包括:
-
internalLogLevel
- 所需的日志记录级别 -
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="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
属性中指定的路径。
- 应用程序设置
- 高级安装设置
- 队列
- 警示
- 部署
- 存储桶
- 授权
- Load balancer
- 密码保险库
- Azure AD 身份验证
- Active Directory 身份验证
- 日志
- Webhooks
- 可扩展性
- Analytics
- 介质记录
- 分页
- 触发器
- 其他
- 安全应用程序设置
加密密钥
Azure.KeyVault.ClientId
Azure.KeyVault.CertificateThumbprint
Azure.KeyVault.VaultAddress
Azure.KeyVault.DirectoryId
- 身份服务器设置
- 集成
- 机器人配置访问令牌
- 更新服务器设置
UpdateServer.CheckUpdates.PollingInterval
UpdateServer.CheckUpdates.DefaultForceInstallAfterMinutes
UpdateServer.CheckUpdates.ScheduledForceInstallAfterMinutes
UpdateServer.CheckUpdates.MaxRetries
UpdateServer.UpdateRequest.RetryStepMinutes
- 日志记录配置
- 机器人日志
- 监控日志
- 业务异常日志
- 其他日志
- 其他设置
- Elasticsearch
- 索引配置
- 在数据库中记录事件
- 启用 NLog 调试
- Orchestrator read-only replica