orchestrator
2022.10
false
重要 :
请注意此内容已使用机器翻译进行了部分本地化。 新发布内容的本地化可能需要 1-2 周的时间才能完成。
UiPath logo, featuring letters U and I in white

Orchestrator 安装指南

Automation CloudAutomation Cloud Public SectorAutomation SuiteStandalone
上次更新日期 2024年12月9日

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

用于指示在哪个密钥管理应用程序中存储从 Orchestrator 生成的每个租户的加密密钥。 将其设置为 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

可设置的 SLA 的最大值,以分钟表示。默认情况下,该值为 129600 分钟(90 天),在 UiPath.Orchestrator.dll.config 中默认显示,包括处于更新状态的方案。

Queue.MaxSchemaFileSizeInKilobytes

JSON 架构的最大文件大小(以 KB 为单位),用于验证队列项目数据和输出。默认情况下,此设置不会显示在 UiPath.Orchestrator.dll.config 文件中。

Queue.SlaReadaheadTimeLimitHours

在进行 SLA 预测时,要考虑到队列项目截止日期的时间量。 默认值为 24 小时。 默认情况下,此参数不显示在 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

用于限制机器人无响应时发送的警示数。如果 Orchestrator 实例处理大量机器人,并且大多数机器人经常无响应,则此参数非常有用。请注意,它在配置文件中默认不显示。例如,如果要将机器人无响应时所收到的警示数限制为 10,则可将 <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" />

部署

Orchestrator 使用组合式存储库。包元数据将保存到 SQL 数据库,以便更快搜索和筛选。包将保存到通过 Storage.TypeStorage.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.TypeLegacy
  • 之前的 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

系统还将对每个租户文件夹创建其他三个子目录:

\ExecutionMedia

\Packages

\Libraries

文件保存在指定位置的专用文件夹中。默认情况下,它们存储在以下路径中: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" />
  • 要禁用对新创建的 Amazon S3 存储桶的公共访问权限,请将 BlockPublicAccess=true 添加到连接字符串中。请注意,这对现有存储桶没有影响。
示例:<add key="Storage.Location" value="EndpointRegion=eu-west-3;accessKey=AKIAZGUEIGXUJ3BBI4MW;secretKey=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;useHttp=false;BlockPublicAccess=true" />
  • 要使用默认的 Amazon S3 凭据,请删除 AccessKeySecretKey,然后另行添加 UseDefaultCredentials=true。这使您可以在 Amazon EC2 虚拟机上使用计算机的 IAM 角色。
示例:<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。
注意:使用此参数时,请确保向 Orchestrator 授予在外部存储中创建存储桶的适当权限。否则,安装将失败。
  • ContentPrefix - 可选。 指定 Orchestrator 数据在外部存储中的路径。 例如 orchestrator/data
注意: 这些参数适用于外部存储提供程序(即 Azure、Amazon 或 Minio)的连接字符串。 它们不适用于文件系统存储。

示例:将单个存储桶与您自己的外部存储提供程序一起使用

<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 帐户的许可证密钥。如果活动和包存储在相同的 NuGet 订阅源中,则此参数的值必须与 NuGet.Activities.ApiKey 的值相同。默认值用于数据库的初始种子设定。请注意,系统也会接受任意字符串。

NuGet.Activities.ApiKey

NuGet 帐户的许可证密钥。如果活动和包存储在相同的 NuGet 订阅源中,则此参数的值必须与 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

用于指示 Orchestrator 可以请求的受信任域以外的域。多个值可以输入为以逗号分隔的列表。此参数将覆盖与 Azure 和 AWS 相关的相应 Orchestrator 设置,因此同时请确保根据需要添加 Azure 和/或 AWS。此参数在 UiPath.Orchestrator.dll.config 文件中默认不显示。

Buckets.AvailableProviders

用于控制可用于创建存储桶的提供程序。可用的提供程序包括:Orchestrator、Amazon、Azure、Minio、与 S3 兼容的存储提供程序和文件系统。可以输入多个值,并用逗号分隔符隔开。

注意:默认情况下,此键不显示在 UiPath.Orchestrator.dll.config 文件中,并且仅选择以下提供程序:OrchestratorAmazonAzureMinioS3Compatible。默认行为特定于全新安装和升级。如果键可见,则可用的提供程序将限制为指定为 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),并且每个路径都表示允许用于任何存储桶的前缀。可以在该特定路径或任何子路径上创建存储桶。
重要提示: 通过 Buckets.FileSystem.Allowlist 设置创建文件系统允许列表会带来一系列安全隐患,因此强烈建议您在继续操作之前参阅 安全使用文件系统存储允许列表

授权

AcceptedRootUrls

使您能够添加受信任 URL 的列表。如果此设置没有任何值,则没有人可以访问 Orchestrator。如果要添加多个 URL,请不要使用空格,并用逗号 (,) 分隔项目,例如 "https://server1,https://server2"

Auth.Bearer.Robot.Expire

您的机器人持有者令牌过期后的时间量。默认情况下,设置为 30 分钟。

Auth.DisabledPermissions

使您能够配置权限,以便在使用 API 时从用户界面禁用权限并将其忽略。请注意,默认情况下,此参数已隐藏。在 API 中使用权限时需要添加这些权限,并且必须用逗号分隔权限。例如,如果要禁用库和计算机的删除权限,则需在添加如下键值:<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

允许您配置是否可以使用 Auth0 颁发的承载访问令牌对 Orchestrator 进行身份验证。此设置在 UiPath.Orchestrator.dll.config 文件中默认不显示。以下值可用:
  • true - 用户无法使用 Auth0 发布的访问令牌发出身份验证请求。仅当您为 ExternalAuth.AccessTokenAuth.Audience 参数设置有效受众时,才考虑这一点。
  • false - 用户无法使用 Auth0 发布的访问令牌发出身份验证请求。此为默认值。

ExternalAuth.AccessTokenAuth.Audience

用于控制访问令牌的目标受众。此参数需要设置为有效受众,用于核查 Auth0 令牌受众。例如,如果要将受众设置为 https://cloud.uipath.com,您需要添加添加以下键值:<add key="ExternalAuth.AccessTokenAuth.Audience" value="https://cloud.uipath.com" />。此设置在 UiPath.Orchestrator.dll.config 文件中默认不显示。

ExternalAuth.ShowPII

通过添加以下键,允许显示 Orchestrator PII:<add key="ExternalAuth.ShowPII" value="true" />。默认情况下,该键在 UiPath.Orchestrator.dll.config 中不显示,并且此默认行为即为不允许显示 PII。

RestrictBasicAuthentication

EnableBasicAuthenticationForHostTenant

Load balancer

仅当您使用负载均衡器时,才应修改这些设置。

LoadBalancer.UseRedis

使用 Redis 作为数据库,将消息和缓存在通过负载均衡器连接的所有计算机之间分发。默认情况下,它设置为 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

此设置应更新为包括您正在使用的任何凭据存储的插件。您可以从以下选项中进行选择:CyberArk、CyberArk CCP、Azure 密钥保险库、Thycotic Secret Server、BeyondTrust 和 HashiCorp 保险库。凭据存储插件位于安装目录的 \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

允许 CyberArk 插件在自定义安装路径中搜索 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

用于在使用路径身份验证时,从 CyberArk 保险库中检索凭据。默认情况下,该密钥是隐藏的。默认值为 false。添加以下密钥可将其启用:<add key="Plugins.SecureStores.CyberArk.UsePowerShellCLI" value="true"/>

Plugins.SecureStores.CyberArkCCP.KeyStorageFlags

允许选择存储位置以及如何导入为 CyberArk CCP 凭据存储配置的客户端证书私钥。

此处描述了可以为此参数设置的值,其中 DefaultKeySet 为默认选项。
请注意,EphemeralKeySet 不适用于 Windows 计算机上。我们建议改用 MachineKeySet

Azure AD 身份验证

Azure AD 身份验证的配置已移到 Identity Server 的外部提供程序页面。

Active Directory 身份验证

Active Directory 身份验证的配置是在安装后从 Orchestrator 的管理门户执行的。

配置 Active Directory 集成有关说明,请参阅页面。

日志

Logs.RobotLogs.ReadTarget

使您能够配置 Orchestrator 从中读取和填充日志的源(例如 databaserobotelasticbuffer)。

RobotsLogs.Flush.Interval

此设置允许您更改 SubmitLogs 端点的刷新间隔。请注意,默认情况下,它不会显示在 UiPath.Orchestrator.dll.config 中。除非另有说明,否则其值为 0 秒。以下示例显示了如何将刷新间隔设置为 60 秒,这意味着机器人每 60 秒将日志发送到服务器一次。
<add key="RobotsLogs.Flush.Interval" value="60" /><add key="RobotsLogs.Flush.Interval" value="60" />
重要提示:如果机器人在刷新间隔完成之前断开连接,则最后一批日志将在下次连接到 Orchestrator 时发送。

RobotsLogs.Flush.BatchSize

此设置的目的是调整 SubmitLogs端点的刷新大小。默认情况下,它不显示在 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

允许您登录到所有租户的相同索引。 必须将它设置为与用于 NLog 目标中的index参数相同的值。 例如<add key="Logs.Elasticsearch.SharedIndex" value="robotlogs" /> 。 有关更多详细信息,请查看Elasticsearch部分。
备注:

默认情况下,此参数已隐藏。

Logs.Elasticsearch.EnableFolderIdFilter

控制 2019.10 之前生成的日志的可见性,这些日志无法被日志页面上的包含文件夹筛选。默认情况下,该参数设置为 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

允许您选择 7.16.3 之前的 Elasticsearch 版本。 为此,必须将其设置为 true
此参数处于隐藏状态,其默认值为 false
它与 Nlog 文件中的 disableProductCheckStatus 一起使用,默认情况下该文件也是隐藏的 false 。 还必须将其设置为 true 才能启用该功能。

Webhooks

Webhooks AppSettings.json 中提供更多 Webhook 设置。

Webhooks.VerifyAvailability.Enabled

在用户界面中配置 Webhook 目标时,检查该目标是否可访问。默认情况下,它设置为 true,这意味着该功能已启用。

可扩展性

Scalability.Heartbeat.PeriodSeconds

时间间隔(以秒为单位),机器人将在此间隔内向 Orchestrator 发送心跳,让 Orchestrator 知道其状态。默认情况下,它设置为 30 秒。

Scalability.Heartbeat.FailureThreshold

机器人发送的连续失败的检测信号数,直到在 Orchestrator 中将其标记为无响应。默认情况下,它设置为 4,这意味着在检测信号失败 2 分钟(4 x 30 秒 = 2 分钟)后,机器人被标记为无响应。

Scalability.SignalR.Enabled

指定机器人服务是否应该订阅 Orchestrator 的 SignalR 通道。默认情况下,它设置为 true。此参数用于数据库的初始种子设定。若要在安装后进行更改,请使用“租户”或“主机”级别的“设置”页面。

Scalability.SignalR.Transport

指定用于连接到 Orchestrator 的 SignalR 通道的传输协议。以下值可以归为(任意组合 - 按位或):

  • WebSocket 传输 = 1
  • 服务器发送事件传输 = 2
  • 长轮询传输 = 4
  • 默认值:7 (WebSocketTransport | ServerSentEventsTransport | LongPollingTransport)

此参数用于数据库的初始种子设定。若要在安装后进行更改,请使用租户主机级别的“设置”页。

Scalability.AzureSignalR.ConnectionString

帮助您启用“Azure SignalR 服务”,方便您的机器人队列与 SignalR 服务之间建立直接通信

Orchestrator 不再充当中介。仅当您具有 Azure 托管的 Orchestrator 实例时,才应使用此选项。可与 Scalability.AzureSignalR.ConnectionCount 键一起使用。此参数在我们的云产品中启用。它在 UiPath.Orchestrator.dll.config 文件中默认不显示。
请注意,如果启用,版本低于 2019.2 的机器人将仅依靠心跳协议与 Orchestrator 通信,这意味着机器人只会每 30 秒拾取一次 Orchestrator 发出的任何命令。要启用此参数,请使用连接到 Azure 服务的连接字符串填充其值。示例:<add key="Scalability.AzureSignalR.ConnectionString" value="Endpoint=https://test.signalr.net;AccessKey=M1ug+sBu07hyyi12AgyJ52SEd4OgC2Mm6BvllVHCC9c=;Version=1.0;" />

Scalability.AzureSignalR.ConnectionCount

使您能够更改服务器和 Azure SignalR 服务之间的连接数(每个集线器)。默认值为 5。示例:<add key="Scalability.AzureSignalR.ConnectionCount" value="7" />。默认情况下不显示此设置,若没有 Scalability.AzureSignalR.ConnectionString 键,此设置将无法使用。

Scalability.SignalR.RequireStickySessions

启用粘滞会话。如果设为 true,则启用所有传输,并且 Orchestrator 假定负载均衡器已启用粘性会话。在 UiPath.Orchestrator.dll.config 中启用粘滞会话但不在负载均衡器上启用将导致 SignalR 连接失败。

Analytics

Telemetry.Enabled

启用或禁用 UiPath 用于帮助诊断问题和帮助改进 Orchestrator 的使用情况和性能数据收集功能。有关 UiPath 隐私惯例的更多详细信息,请查看隐私声明。提供以下值:

  • true - 遥测功能已启用。这是默认值。
  • false - 遥测功能已禁用。

也可以在安装或更新 Orchestrator 实例时选择加入或退出性能和使用情况数据收集,如“选择退出遥测”页面中所述。

介质记录

MediaRecording.Enabled

将它设置为 false 可禁用记录功能。默认情况下,它设置为 true,这意味着该功能已启用。文件存储使用 Storage.TypeStorage.Location 参数进行配置。

分页

Pagination.Limits.Enabled

对于 Cloud Platform 和内部部署 Orchestrator 实例的全新安装,设置默认情况下设置为 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

配置 cron 表达式,该表达式可控制将终止作业标记为“失败”的后台作业的频率。除非作业至少在 Jobs.TerminatingJobsTimeout 参数中设置的持续时间处于“终止”状态,否则无法将其标记为“失败”。Jobs.TerminatingJobsCleanupCronJobs.TerminatingJobsTimeout 的默认值分别为 0 0 0/3 1/1 * ? *1440,这意味着后台作业每三小时运行一次,并且只会将已经至少有一天时间一直处于“终止”状态的作业标记为“失败”。默认情况下,此参数处于隐藏状态。

PW.StopExploringCron

配置 cron 表达式,该表达式可控制检查浏览个人工作区的用户是否仍具有所需浏览权限(查看编辑文件夹)的后台作业的频率。默认值为 0 25 * ? * *,表示后台作业在每小时的第 25 分钟开始运行。如果他们没有所需的权限,则探索会话将终止。默认情况下,此参数已隐藏。

Features.LongRunning.Enabled

配置实例中是否支持长时间运行的工作流。添加以下键以启用它:<add key="Features.LongRunning.Enabled" value="true" />

Tasks.ModuleEnabled

配置在实例中是否启用了操作功能。添加以下键以启用它:<add key="Tasks.ModuleEnabled" value="true" />。此设置使该功能在实例级别可用。若要按租户配置它,请按照此处的步骤操作。需要将 Features.LongRunning.Enabled 参数设置为 true,以使此设置生效。

Features.SmartCardAuthentication.Enabled

配置是否在您的实例中启用智能卡身份验证。添加以下密钥将其启用:<add key="Features.SmartCardAuthentication.Enabled" value="true" />

OData.BackwardsCompatible.Enabled

允许您控制在 Orchestrator API 中解析特殊字符的方式。如果设置为 true,则分析请求和响应正文中的特殊字符。默认情况下,此参数是隐藏的,并设置为 false

NotRespondingRobotsJobStartDelay

使您能够设置升级后对机器人状态执行第一次检查的延迟时间(以秒为单位)。此参数在 UiPath.Orchestrator.dll.config 中默认不显示。

Upload.Queues.MaxNumberOfItems

使您能够使用批量上传功能减少一次可上传的最大项目数。默认值为 15000。请注意,默认情况下,此参数在 UiPath.Orchestrator.dll.config 中不显示。

Processes.FilterOutDeleted

使您能够优化 Orchestrator 检索流程的方式。优化是通过删除对孤立流程(其关联包已删除)的不必要验证实现的。这提高了实例的整体性能,尤其是在大型部署的情况下。以下值可用:

  • false - 已优化包检索,不会为孤立的流程执行验证。
  • true - 包检索优化。
请注意,此参数处于隐藏状态,默认情况下设置为 true ,这意味着流程检索 优化。

CertificatesStoreLocation

使用以下设置指定您的 Orchestrator 实例的证书已安装在本地计算机证书存储中:<add key="CertificatesStoreLocation" value="LocalMachine" />。确保 appsettings.Production.json 中的 AzureKeyVaultCertificateStoreLocation 具有相同的值。

ProxyIntegration.Enabled

提供控制代理集成的方法。默认情况下,参数不显示在 UiPath.Orchestrator.dll.config 中,并且其值设置为 true,这意味着除非另有说明,否则将启用代理集成。使用 <add key="ProxyIntegration.Enabled" value="false"/> 禁用代理集成。

安全应用程序设置

加密密钥

用于保护凭据资产密码的加密密钥。如果使用具有网络负载均衡器的环境,则此密钥在所有计算机上均应相同。

通过以下参数,您可以设置 Azure 密钥保管库,您可以在其中存储基于租户的加密密钥。 请注意,只有在EncryptionKeyPerTenant.Enabled设置为trueEncryptionKeyPerTenant.KeyProvider设置为AzureKeyVault时,才能使用这些参数。 此外,请确保在 Azure 密钥保管库的访问策略中向 Orchestrator 实例提供所有密钥、密码和证书权限。 有关完整过程,请查看 “为租户设置加密密钥” 页面。

Azure.KeyVault.ClientId

Orchestrator 实例的应用程序 ID。这可以在 Azure 的应用程序注册中找到,并且应具有 ae11aa1a-1234-1234-a123-a12a12aaa1aa 格式。此设置在 UiPath.Orchestrator.dll.config 文件中默认不显示。示例:<add key="Azure.KeyVault.ClientId" value="ae11aa1a-1234-1234-a123-a12a12aaa1aa" />

Azure.KeyVault.CertificateThumbprint

Azure 为 Orchestrator 证书生成的指纹。您可以在 Azure 中的“应用程序服务”>“您的实例”>“SSL 设置”>“私有证书”(或“公共证书”)中找到此值。此设置在 UiPath.Orchestrator.dll.config 文件中默认不显示。 示例:<add key="Azure.KeyVault.CertificateThumbprint" value="1234123412341234123412341234124312341234" />

Azure.KeyVault.VaultAddress

Azure 密钥保管库的 DNS 名称。这可以在保管库概述DNS 名称字段中找到,并且应具有 https://CustomVaultName.vault.azure.net/ 格式。此设置在 UiPath.Orchestrator.dll.config 文件中默认不显示。示例:<add key="Azure.KeyVault.VaultAddress" value="https://CustomVaultName.vault.azure.net/" />

Azure.KeyVault.DirectoryId

指示组织在 Azure 门户中显示的目录 ID。如果将每个租户加密密钥存储在 Azure 密钥库中,则必须提供。示例:<add key="Azure.KeyVault.DirectoryId" value="c9d0e174-684e-469e-84ea-d32c863ad534" />

身份服务器设置

本节包含用于配置 S2S 访问令牌和机器人配置访问令牌的设置。

集成

为了将数据安全地传播到 Identity Server,Orchestrator 需要一个访问令牌以进行令牌身份验证。此令牌通过客户端凭据流 (S2S) 从 Identity Server 中获取。应将以下键添加到 UiPath.Orchestrator.dll.config

IdentityServer.GroupMembershipCacheExpireHours

用于指定添加到 Orchestrator 的身份服务器组缓存过期的时间(以小时为单位)。默认情况下,此参数不可见,其默认值为 1

IdentityServer.Integration.Enabled

启用/禁用身份服务器与 Orchestrator 的集成。默认情况下,该值设置为 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

Identity Server 可以生成具有不同受众中的多个访问令牌。使用具有此受众的用户访问令牌可以授权 Orchestrator API 请求。默认情况下,该值设置为 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" />
为了使用由 Identity Server 生成的客户端凭据 (S2S) 访问令牌,Orchestrator 需要将以下键值添加到 UiPath.Orchestrator.dll.config

IdentityServer.Integration.S2SOrchestratorApiAudience

允许您设置 Orchestrator 在验证 S2S 访问令牌时将检查的受众。默认情况下,该值设置为 OrchestratorApiS2SAccess
请确保 UiPath.Orchestrator.dll.config 同时包含以下预先存在的键,且其值设置为 true

MultiTenancy.AllowHostToAccessTenantApi

当设置为 true 时,它允许主机用户访问其他租户的特定数据。默认情况下,该值设置为 true

MultiTenancy.TenantResolvers.HttpGlobalIdHeaderEnabled

当 Orchestrator 收到使用 S2S 访问令牌授权的 API 调用时,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" />

机器人配置访问令牌

Orchestrator 充当机器人的令牌生成器。机器人调用 Orchestrator 端点以生成访问令牌。然后,访问令牌将传递给可以调用不同资源的活动,如 AI Fabric。通过 Identity Service 与 Orchestrator 的集成,Identity Server 将接管访问令牌的生成。

更新服务器设置

本节包含用于配置更新服务器的参数。

UpdateServer.CheckUpdates.PollingInterval

客户端检查更新的频率。默认值为 180 分钟。

UpdateServer.CheckUpdates.DefaultForceInstallAfterMinutes

如果更新已推迟,则在多少分钟后开始强制更新。默认值为 1440 分钟。

UpdateServer.CheckUpdates.ScheduledForceInstallAfterMinutes

如果更新已推迟,则在多少分钟后开始强制更新。这特定于计划的更新。默认值为 10 分钟。

UpdateServer.CheckUpdates.MaxRetries

重试失败更新的次数。默认值为 3。

UpdateServer.UpdateRequest.RetryStepMinutes

如何根据时间序列执行重试。

示例:

  • 首次重试:在配置的值之后(以分钟为单位)。
  • 第二次重试:两次配置的值之后(以分钟为单位)。
  • 第三次重试:在四倍配置的值之后(以分钟为单位)。

日志记录配置

机器人日志

这是相应的 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)。

其他日志

这是相应的 UiPath.Orchestrator.dll.config 键: <logger name="*" minlevel="Info" writeTo="eventLog" />。 它用于配置除上述日志之外的所有其他日志,包括由 Orchestrator 生成的日志。
重要提示:如果您每周在 SQL 数据库中累积超过 200 万个机器人日志,则几个月后如果不清理较旧的日志,性能可能会下降。对于如此大量的日志,我们建议使用 Elasticsearch。

其他设置

了解其他设置。

Elasticsearch

必须根据您的 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 设置为 trueOAuthEnabled 设置为 false,则需要对其进行配置。
  • password - 指定用于登录 Elasticsearch 的密码。如果 requireAuth 设置为 trueOAuthEnabled 设置为 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 参数相同的值。
    重要提示: 如果您切换到共享索引,则会保留使用单个索引生成的日志。 但是,如果您切换到单个索引,则使用共享索引生成的日志将会丢失。
注意: Orchestrator 中的 Elastic Robot 日志索引名称模式必须与以下位置匹配:
  • 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})。

在数据库中记录事件

要将系统事件日志存储在数据库中而不是事件查看器中,请按照以下步骤操作:

  1. 创建一个新的数据库表,例如:

    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 - 保存为每个事件记录的异常(如果适用)。
      注意:您可以任意命名表,并从上述查询中删除任何列,或添加其他列以满足您的需求。
  2. 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
  3. 最后,通过添加以下内容,将上述新创建的目标与所有 Orchestrator 消息的 NLog 记录器分类相关联:

    <logger name="*" minlevel="Info" writeTo="eventLog,eventLogDatabase" /><logger name="*" minlevel="Info" writeTo="eventLog,eventLogDatabase" />

启用 NLog 调试

NLog 是一个开源、易于配置且可扩展的日志记录平台,适用于各种 .NET 平台。 使用 NLog,您可以将日志数据存储或传递到任意数量的预定义或自定义目标,例如本地文件、事件日志、电子邮件或数据库。

重要提示:自定义 NLog 目标不会在升级过程中自动迁移。 您必须手动将其迁移到 Identity Server 和 Webhook 服务。 有关更多详细信息,请查看 Identity Server 中的NLog文档。
虽然存在一些重叠,但 NLog 和 Orchestrator 具有几个不同的日志记录级别。 对于 NLog,您可以选择TraceDebugInfoWarnErrorFatalOff 。 有关 Orchestrator 中可用级别的说明,请查看“日志记录级别”页面。
您可以在 NLog 中启用调试,以确保其正常运行。 默认情况下,NLog 设置为 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"> 
备注:
运行 Orchestrator 的用户配置文件必须有权访问 internalLogFile 属性中指定的路径。

Orchestrator read-only replica

Features.Queues.QueryUseReadOnlyReplica

如果要允许在只读副本中查询队列项目,请将值设置为 true
默认值为 false

Monitoring.UseReadOnlyReplica

如果要从只读副本中检索监控数据,请将值设置为 true
默认值为 false

此页面有帮助吗?

获取您需要的帮助
了解 RPA - 自动化课程
UiPath Community 论坛
Uipath Logo White
信任与安全
© 2005-2024 UiPath。保留所有权利。