orchestrator
2020.10
false
重要 :
请注意此内容已使用机器翻译进行了部分本地化。
UiPath logo, featuring letters U and I in white
不在支持范围内
Orchestrator 安装指南
Automation CloudAutomation Cloud Public SectorAutomation SuiteStandalone
Last updated 2023年12月12日

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

EncryptionKeyPerTenant.KeyProvider

MultiTenantEncryptionKeyProvider

队列

注意:为了使有关 cron 作业的更改生效,必须将 Database.EnableAutomaticMigrations 参数预先设置为 true

autogenerateStatistics

自动生成事务图表。默认情况下,此参数设置为 true

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。 要使其正常工作,您还必须从“ 设置” 页面配置与电子邮件相关的设置。 在数据库的初始种子设定中使用默认值。 之后更改该值不会切换电子邮件警示。

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

定义包和执行媒体保存到的目标。它可以使用以下目标填充:

  • FileSystem - <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" />

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 存储桶帐户限制,以匹配租户数量。 这是必需的,因为系统会为每个租户创建一个单独的存储桶。

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

用于控制可用于创建存储桶的提供程序。可用的提供程序包括:OrchestratorAmazonAzureMinioS3Compatible 解决方案和 FileSystem。可以输入多个值,并用逗号分隔符隔开。
注意:默认情况下,此键不显示在 UiPath.Orchestrator.dll.config 文件中,并且仅选择以下提供程序:OrchestratorAmazonAzureMinio。默认行为特定于全新安装和升级。如果键可见,则可用的提供程序将限制为指定为 Buckets.AvailableProviders 值的提供程序。
示例:要限制使用 MinioFileSystem,请添加以下键值:
<add key="Buckets.AvailableProviders" value="Orchestrator,Amazon,Azure,S3Compatible" /><add key="Buckets.AvailableProviders" value="Orchestrator,Amazon,Azure,S3Compatible" />

Buckets.FileSystem.Allowlist

提供一种控制文件系统存储桶使用的方法。该设置默认没有配置任何值。这以及在新安装和升级中默认都禁用文件系统的事实,意味着最初不能使用文件系统路径。出于安全原因,为了使用文件系统功能,管理员必须首先启用文件系统,然后通过将值归于 Buckets.FileSystem.Allowlist 来明确允许访问一系列文件夹或网络共享。
可以输入以 | 字符分隔的多个值。请注意,路径必须完全限定,以驱动器或 UNC 路径为根(例如 c:\c: est\\servershare\shared),并且每个路径都表示允许用于任何存储桶的前缀。可以在该特定路径或任何子路径上创建存储桶。
重要提示: 通过 Buckets.FileSystem.Allowlist 设置创建文件系统允许列表会带来一系列安全隐患,因此强烈建议您在继续操作之前参阅 安全使用文件系统存储允许列表

授权

外部身份验证提供程序的配置已移到身份服务器的外部提供程序页面。

注意: 必须先配置 WindowsAuth.EnabledWindowsAuth.DomainAcceptedRootUrls 参数,然后才能导入 Active Directory 组。

WindowsAuth.Enabled

启用或禁用 Windows Active Directory 的用户导入功能。 要使用 Windows Active Directory 启用身份验证,请在 Identity Server 中配置外部提供程序。

WindowsAuth.Domain

添加 AD 用户/组时,使用此处指定的域双向信任的林中的所有域和子域都可用。您只能在此参数中指定一个域。

WindowsAuth.GroupMembershipCacheExpireHours

添加到 Orchestrator 的 AD 组缓存过期前的时间量(以小时为单位)。默认情况下,此设置不会显示在 UiPath.Orchestrator.dll.config 文件中,默认值设置为 1 小时。

WindowsAuth.ConvertUsersAtLogin

如果设置为 true,则在首次使用 AD 凭据登录后,它会将每个具有 AD 凭据的本地 AD 用户转化为目录用户。或者,您可以使用此处记录的脚本将使用 AD 凭据登录的所有本地 AD 用户转化为目录用户。此参数在 UiPath.Orchestrator.dll.config 文件中默认不显示。默认情况下,其设置为 false

AcceptedRootUrls

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

Auth.Cookie.Expire

自动注销的时间量(以分钟为单位)。默认情况下,这设置为 30 分钟。

Auth.Bearer.Robot.Expire

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

Auth.Cookie.ValidateInterval

密码重置后或检测到新会话后,直到注销之前的时间量(以秒为单位)。默认情况下,这设置为 60 秒。默认情况下,此参数不会显示在 UiPath.Orchestrator.dll.config 文件中。例如,如果要将其设置为 20 秒,请添加以下键值:<add key="Auth.Cookie.ValidateInterval" value="20"/>

Auth.DisabledPermissions

使您能够配置权限,以便在使用 API 时从用户界面禁用权限并将其忽略。请注意,默认情况下,此参数已隐藏。在 API 中使用权限时需要添加这些权限,并且必须用逗号分隔权限。例如,如果要禁用库和计算机的删除权限,则需在添加如下键值:<add key="Auth.DisabledPermissions" value="Machines.Delete,Libraries.Delete" />

Auth.RememberMe.Enabled

使您能够配置是否显示登录页面的记住我复选框。默认情况下,参数设置为 true,表示将显示复选框。设置为 false 即可将其隐藏。默认情况下,此设置在 UiPath.Orchestrator.dll.config 文件中不显示。

Auth.AllowChangePassword

允许您配置用户是否可以在配置文件页面的安全部分更改其密码。此设置在 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。

WindowsAuth.GroupMembershipCacheExpireHours

用于配置 AD 组成员身份缓存。默认值为 1,这意味着对 AD 组成员身份所做的更改每小时与 Orchestrator 同步一次,用于活动用户会话。

RestrictBasicAuthentication

EnableBasicAuthenticationForHostTenant

Load balancer

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

LoadBalancer.UseRedis

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

LoadBalancer.Redis.ConnectionString

只有在将 LoadBalancer.UseRedis 设置为 true 时才能使用。一个连接字符串,允许您设置 Redis 服务器,其中包含服务器的 URL、密码和与 Redis 一起使用的端口。也可以在 Orchestrator 节点和 Redis 服务之间启用 SSL 加密连接。有关详细信息,请单击此处。示例:
  • 启用 SSL - <add key="LoadBalancer.Redis.ConnectionString" value="DOCWREDIS02:6379,password=12345678,ssl=true" />
  • 未启用 SSL - <add key="LoadBalancer.Redis.ConnectionString" value="DOCWREDIS02:6379,password=12345678" />

密码保险库

Plugins.SecureStores

此设置应更新为包括您正在使用的任何凭据存储的插件,例如 CyberArk CCP 或 Azure Key Vault。凭据存储插件位于安装目录的 \Orchestrator\Plugins 文件夹中。例如:
  • 单一存储:<add key="Plugins.SecureStores" value="UiPath.Orchestrator.CyberArk.dll"/>
  • 多存储:<add key="Plugins.SecureStores" value="UiPath.Orchestrator.CyberArk.dll,UiPath.Orchestrator.SecureStore.CyberArkCCP.dll,UiPath.Orchestrator.AzureKeyVault.SecureStore.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"/>

Azure AD 身份验证

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

日志

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" />。请访问此处,了解详细信息。请注意,默认情况下,此参数已隐藏。

Logs.Elasticsearch.EnableFolderIdFilter

控制 2019.10 之前生成的日志的可见性,这些日志无法被日志页面上的包含文件夹筛选。默认情况下,该参数设置为 true,这意味着日志是隐藏的。将其设置为 false 后就可以显示日志:<add key="Logs.Elasticsearch.EnableFolderIdFilter" value="false" />

Webhooks

Webhooks 设置已移至 Webhooks 服务的 appsettings.json 文件中。

可扩展性

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 连接失败。

Insights

Insights.TableCreationRetryCount

使您能够设置新表创建的最大重试次数。默认情况下,该值设置为 3
注意:此设置是可选的,在 UiPath.Orchestrator.dll.config 文件中默认不显示。

Insights.TableCreationRetryBackoffSeconds

重试尝试之间相隔的时间量(以秒为单位)。默认情况下,该值设置为 60
注意:此设置是可选的,在 UiPath.Orchestrator.dll.config 文件中默认不显示。

Analytics

Telemetry.Enabled

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

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

也可以在安装或更新 Orchestrator 实例时选择加入或退出性能和使用情况数据收集,如此处所述。

介质记录

MediaRecording.Enabled

将它设置为 true 以启用记录功能。默认情况下,它设置为 false,这意味着该功能已禁用。文件存储受 NuGet.Repository.Type 参数的影响;当 NuGet.Repository.Type 设置为 Composite 时,文件存储将通过 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.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" />

其他

PreventAutoRefresh.Enabled

控制监控菜单下的作业页面是否为每个新创建的作业自动刷新。添加 <add key="PreventAutoRefresh.Enabled" value="true" /> 密钥后就可以限制作业运行时页面的自动刷新。该密钥默认情况下不显示,默认值为 false,表示 Orchestrator 自动刷新每个新作业的页面。
不管是什么 PreventAutoRefresh.Enabled 参数,当应用筛选或作业状态更改时,页面都会更新。

QueueActivation.TriggerCache.Expiration.Minutes

控制如何为带有关联队列触发器的队列生成简单的 Quartz 触发器。

  • 如果设为 0,则会为队列中添加的每个项目生成 Quartz 触发器。
  • 如果设置为大于 0 的值,系统将检查是否已为该队列创建 Quartz 触发器,并阻止它创建另一个。当满足队列触发器条件时,将删除此限制。如果队列触发器无法执行此操作,则系统将根据为 QueueActivation.TriggerCache.Expiration.Minutes 参数设置的值删除限制。默认值为 5

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" />

ActiveDirectory.SearchInputMinimumLength

触发搜索的最小查询大小。默认值为 2,这意味着在填写至少 2 个字符后执行搜索。默认情况下,此参数在 UiPath.Orchestrator.dll.config 文件中不显示。示例:<add key="ActiveDirectory.SearchInputMinimumLength" value="4" />

ActiveDirectory.SearchResultsSizeLimit

搜索 AD 用户或组时返回的最大结果数。默认情况下,它设置为 20。默认情况下,此参数在 UiPath.Orchestrator.dll.config 文件中不显示。示例:<add key="ActiveDirectory.SearchResultsSizeLimit" value="30" />

ActiveDirectory.SearchResultsTimeLimitSeconds

查询的最大允许搜索时间,这意味着每当超过此限制时,搜索都会中断,并返回在此之前找到的结果。默认情况下,它设置为 30 秒。默认情况下,此参数在 UiPath.Orchestrator.dll.config 文件中不显示。示例:<add key="ActiveDirectory.SearchResultsSizeLimit" value="40" />

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 具有相同的值。

安全应用程序设置

加密密钥

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

通过以下参数,您可以设置 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/" />

身份服务器设置

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

单点登录

以下参数允许您通过身份服务器配置 SSO 登录:

ExternalAuth.System.OpenIdConnect.Enabled

启用/禁用 Orchestrator 与外部身份验证系统的连接。默认情况下,该值设置为 true

ExternalAuth.System.OpenIdConnect.Authority

允许您设置外部身份验证系统的位置。默认情况下,该值设置为 https://Orchestrator/Identity,其中 Orchestrator 是 Orchestrator 的安装地址。

ExternalAuth.System.OpenIdConnect.ClientId

使您能够设置在身份服务器中注册的 Orchestrator 应用程序 ID (clientId)。该值在安装时生成并保存在身份服务器中。

ExternalAuth.System.OpenIdConnect.ClientSecret

使您能为 Orchestrator 应用程序设置客户端密码,以由外部身份验证系统识别。该值在安装时生成并保存在身份服务器中。

ExternalAuth.System.OpenIdConnect.RedirectUri

在对 Identity Server 进行身份验证后,指定到 Orchestrator 的重定向 URL。此 URL 在 Identity Server 和 Orchestrator 中自动预配置,您不应更改它。其默认值为 http://Orchestrator/signinsystemopenidconnect

ExternalAuth.System.OpenIdConnect.PostLogoutRedirectUri

用户注销 Orchestrator 后,身份服务器重定向到的地址。此值会自动填充为您的 Orchestrator URL。

例如,UiPath.Orchestrator.dll.config 应包含以下键:
<add key="ExternalAuth.System.OpenIdConnect.Enabled" value="true" />
<add key="ExternalAuth.System.OpenIdConnect.Authority" value="https://Orchestrator/Identity" />
<add key="ExternalAuth.System.OpenIdConnect.ClientId" value="orchestrator" />
<add key="ExternalAuth.System.OpenIdConnect.ClientSecret" value="49C1A7E1-0C79-4A89-A3D6-A37998FB86B0" />
<add key="ExternalAuth.System.OpenIdConnect.RedirectUri" value="https://Orchestrator/signinsystemopenidconnect" />
<add key="ExternalAuth.System.OpenIdConnect.PostLogoutRedirectUri" value="https://Orchestrator/" /><add key="ExternalAuth.System.OpenIdConnect.Enabled" value="true" />
<add key="ExternalAuth.System.OpenIdConnect.Authority" value="https://Orchestrator/Identity" />
<add key="ExternalAuth.System.OpenIdConnect.ClientId" value="orchestrator" />
<add key="ExternalAuth.System.OpenIdConnect.ClientSecret" value="49C1A7E1-0C79-4A89-A3D6-A37998FB86B0" />
<add key="ExternalAuth.System.OpenIdConnect.RedirectUri" value="https://Orchestrator/signinsystemopenidconnect" />
<add key="ExternalAuth.System.OpenIdConnect.PostLogoutRedirectUri" value="https://Orchestrator/" />

集成

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

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.S2SIntegration.Enabled

启用/禁用 S2S 访问令牌的使用权限。它在 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.S2SIntegration.Enabled" value="true" />
<add key="IdentityServer.Integration.S2SOrchestratorApiAudience" value="OrchestratorApiS2SAccess" />
<add key="MultiTenancy.AllowHostToAccessTenantApi" value="true" />
<add key="MultiTenancy.TenantResolvers.HttpGlobalIdHeaderEnabled" value="true" /><add key="IdentityServer.S2SIntegration.Enabled" 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 将接管访问令牌的生成。

日志记录配置

机器人日志

这是相应的 UiPath.Orchestrator.dll.config 键: <logger name="Robot.*" writeTo="database,robotElasticBuffer" final="true" />。 它用于配置机器人生成的日志消息。 必须配置以下参数:
  • writeTo - 用于写入机器人生成的日志消息的位置。以下值可用:
    • database - 日志发送到 Orchestrator 的 SQL 数据库。这是默认值之一。
    • robotElasticBuffer - 日志将发送到 Elasticsearch。这是第二个默认值。请记住,这需要其他设置。请访问此处,了解详细信息。

      将日志同时发送到 Orchestrator 的 SQL 数据库和 Elasticsearch 使您能够具有不可否认的日志。删除其中一个值即可停止记录到该位置。

  • final - 一个标志,指示在找到记录的消息和记录器名称之间的匹配项时应做些什么。当设置为 true 时,它不会查找其他匹配项。当设置为 false 时,将检查与相同源匹配的其他规则。默认情况下,它设置为 true

计划日志

这是相应的 UiPath.Orchestrator.dll.config 键: <logger name="Quartz.*" minlevel="Info" writeTo="eventLogQuartz" final="true" />。 它用于配置计划生成的日志消息。
注意:为了确保在带有负载均衡器的 Orchestrator 设置中顺利进行调度,还应该将 quartz.jobStore.clustered 参数设置为 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 - 日志记录索引的格式,它可以是每个租户唯一的,也可以在所有租户之间共享。详情如下。

索引配置

  • 个人索引 - 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 参数相同的值。
    重要提示: 如果您切换到共享索引,则会保留使用单个索引生成的日志。 但是,如果您切换到单个索引,则使用共享索引生成的日志将会丢失。

在数据库中记录事件

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

  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中指定的路径。

此页面有帮助吗?

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