- Overview
- Requirements
- Installation
- Prerequisite checks
- Downloading the installation packages
- uipathctl cluster
- uipathctl cluster maintenance
- uipathctl cluster maintenance disable
- uipathctl cluster maintenance enable
- uipathctl cluster maintenance is-enabled
- uipathctl cluster migration
- uipathctl cluster migration export
- uipathctl cluster migration import
- uipathctl cluster migration run
- uipathctl cluster upgrade
- uipathctl config
- uipathctl config add-host-admin
- uipathctl config additional-ca-certificates
- uipathctl config additional-ca-certificates get
- uipathctl config additional-ca-certificates update
- uipathctl config alerts
- uipathctl config alerts add-email
- uipathctl config alerts remove-email
- uipathctl config alerts update-email
- uipathctl config argocd
- uipathctl config argocd ca-certificates
- uipathctl config argocd ca-certificates get
- uipathctl config argocd ca-certificates update
- uipathctl config argocd generate-dex-config
- uipathctl config argocd generate-rbac
- uipathctl config argocd registry
- uipathctl config argocd registry get
- uipathctl config argocd registry update
- uipathctl config enable-basic-auth
- uipathctl config orchestrator
- uipathctl config orchestrator get-config
- uipathctl config orchestrator update-config
- uipathctl config saml-certificates get
- uipathctl config saml-certificates rotate
- uipathctl config saml-certificates update
- uipathctl config tls-certificates
- uipathctl config tls-certificates get
- uipathctl config tls-certificates update
- uipathctl config token-signing-certificates
- uipathctl config token-signing-certificates get
- uipathctl config token-signing-certificates rotate
- uipathctl config token-signing-certificates update
- uipathctl health
- uipathctl health bundle
- uipathctl health check
- uipathctl health diagnose
- uipathctl health test
- uipathctl manifest
- uipathctl manifest apply
- uipathctl manifest diff
- uipathctl manifest get
- uipathctl manifest get-revision
- uipathctl manifest list-applications
- uipathctl manifest list-revisions
- uipathctl manifest render
- uipathctl prereq
- uipathctl prereq create
- uipathctl prereq run
- uipathctl resource
- uipathctl resource report
- uipathctl snapshot
- uipathctl snapshot backup
- uipathctl snapshot backup create
- uipathctl snapshot backup disable
- uipathctl snapshot backup enable
- uipathctl snapshot delete
- uipathctl snapshot list
- uipathctl snapshot restore
- uipathctl snapshot restore create
- uipathctl snapshot restore delete
- uipathctl snapshot restore history
- uipathctl snapshot restore logs
- uipathctl version
- Post-installation
- Migration and upgrade
- Upgrading Automation Suite on EKS/AKS
- Step 1: Moving the Identity organization data from standalone to Automation Suite
- Step 2: Restoring the standalone product database
- Step 3: Backing up the platform database in Automation Suite
- Step 4: Merging organizations in Automation Suite
- Step 5: Updating the migrated product connection strings
- Step 6: Migrating standalone Orchestrator
- Step 7: Migrating standalone Insights
- Step 8: Deleting the default tenant
- B) Single tenant migration
- Migrating from Automation Suite on Linux to Automation Suite on EKS/AKS
- Monitoring and alerting
- Cluster administration
- Product-specific configuration
- Using the Orchestrator Configurator Tool
- Configuring Orchestrator parameters
- Orchestrator appSettings
- Configuring appSettings
- Configuring the maximum request size
- Overriding cluster-level storage configuration
- Saving robot logs to Elasticsearch
- Configuring credential stores
- Configuring encryption key per tenant
- Troubleshooting
Saving robot logs to Elasticsearch
Orchestrator is set up by default to store robot logs in the database. However, if you want to switch this storage to Elasticsearch, a basic configuration process is available: simply provide the required URL, username, and password. This setup should suffice for most use cases. For further customization, you may leverage the advanced configuration mechanism on top of the basic setup.
If you opt for this configuration, you allow robot logs to be written to the Elasticsearch target instead of the database, and set up Orchestrator to retrieve the logs from Elasticsearch.
input.json
file.
The basic configuration supports Elasticsearch version 7.x. For Elasticsearch 8.x, you need to use the advanced configuration.
orchestrator.orchestrator_robot_logs_elastic
parameters:
Parameter |
Description |
---|---|
|
Elasticsearch section configuration. This contains the following properties:
uri , username , password .
|
|
The address of the Elasticsearch instance that should be used. It should be provided in the form of a URI. If provided, then username and password are also required. |
|
The Elasticsearch username, used for authentication. |
|
The Elasticsearch password, used for authentication. |
input.json
to add the orchestrator_robot_logs_elastic
section under orchestrator
.
{
...
"orchestrator": {
...
"orchestrator_robot_logs_elastic": {
"elastic_uri": "uri",
"elastic_auth_username": "user",
"elastic_auth_password": "pass"
}
...
}
...
}
{
...
"orchestrator": {
...
"orchestrator_robot_logs_elastic": {
"elastic_uri": "uri",
"elastic_auth_username": "user",
"elastic_auth_password": "pass"
}
...
}
...
}
uipathctl
installer to apply the configuration, use the following command:
uipathctl manifest apply input.json --only orchestrator --versions versions.json
uipathctl manifest apply input.json --only orchestrator --versions versions.json
To access the advanced configuration settings, you must first complete the basic configuration. This process allows you to customize properties of the NLog target that communicates with Elasticsearch. However, redirecting robot logs requires additional settings. These necessary adjustments are performed through the basic configuration.
Any changes you make per the following steps bcan negatively affect the functionality and stability of the entire system. It is advisable to only make changes if you understand their consequences.
The advanced configuration allows you to fully customize your NLog.config target:
-
Follow the basic configuration steps.
-
Edit the
nlog.json
sample parameters to update therobotElasticBuffer
target with the desired configuration. See the following sections for samples ofnlog.json
. -
Update the
nlog.json
parameters:uipathctl config orchestrator update-config --nlog-config nlog.json
uipathctl config orchestrator update-config --nlog-config nlog.json
robotElasticBuffer
. You can modify any properties of this target using the custom nlog.json
file. It is not necessary to provide the entire target configuration; instead, add or update only the desired values.
Elasticsearch 7.x configuration sample
uri
, requireAuth
, username
, and password
fields, since they are already set in the basic configuration step.
{
"Nlog": {
"targets": {
"robotElasticBuffer": {
"flushTimeout": 1000,
"bufferSize": 1000,
"slidingTimeout": false,
"target": {
"uri": "https://elastic.example.com:9200",
"requireAuth": true,
"username": "elastic-user",
"password": "elastic-password",
"index": "${event-properties:item=indexName}-${date:format=yyyy.MM}",
"documentType": "logEvent",
"includeAllProperties": true,
"layout": "${message}",
"excludedProperties": "agentSessionId,tenantId,indexName"
}
}
}
}
}
{
"Nlog": {
"targets": {
"robotElasticBuffer": {
"flushTimeout": 1000,
"bufferSize": 1000,
"slidingTimeout": false,
"target": {
"uri": "https://elastic.example.com:9200",
"requireAuth": true,
"username": "elastic-user",
"password": "elastic-password",
"index": "${event-properties:item=indexName}-${date:format=yyyy.MM}",
"documentType": "logEvent",
"includeAllProperties": true,
"layout": "${message}",
"excludedProperties": "agentSessionId,tenantId,indexName"
}
}
}
}
}
Elasticsearch 8.x configuration sample
uri
, requireAuth
, username
, and password
fields, since they are already set in the basic configuration step.
{
"Nlog": {
"targets": {
"robotElasticBuffer": {
"flushTimeout": 1000,
"bufferSize": 1000,
"slidingTimeout": false,
"target": {
"uri": "https://elastic.example.com:9200",
"requireAuth": true,
"username": "elastic-user",
"password": "elastic-password",
"index": "${event-properties:item=indexName}-${date:format=yyyy.MM}",
"documentType": "",
"includeAllProperties": true,
"layout": "${message}",
"excludedProperties": "agentSessionId,tenantId,indexName"
}
}
}
}
}
{
"Nlog": {
"targets": {
"robotElasticBuffer": {
"flushTimeout": 1000,
"bufferSize": 1000,
"slidingTimeout": false,
"target": {
"uri": "https://elastic.example.com:9200",
"requireAuth": true,
"username": "elastic-user",
"password": "elastic-password",
"index": "${event-properties:item=indexName}-${date:format=yyyy.MM}",
"documentType": "",
"includeAllProperties": true,
"layout": "${message}",
"excludedProperties": "agentSessionId,tenantId,indexName"
}
}
}
}
}
This section provides additional information on how to provide the custom configuration to Orchestrator.
uipathctl config orchestrator
.
Orchestrator configuration
appsettings
or for NLog is loaded from multiple configuration files that are loaded one after the other. Each new loaded file overwrites
the keys from the previous ones. The order in which the files are loaded is:
-
built-in configuration file from the Orchestrator image
-
orchestrator
configmap -
orchestrator
secret -
orchestrator-customconfig
configmap
appsettings
file configures Orchestrator to read the RobotLogs from this target when they are needed for display. The NLog built-in configuration
file also contains also robotElasticBuffer
target, partially configured and not used.
orchestrator
configmap and secret are managed by ArgoCD via the helm chart. Each time ArgoCD synchronizes the application, these configs
are regenerated using the current parameters and values for the orchestrator
ArgoCD application.
orchestrator
configmap and secret are updated to provide the final configuration required to enable the robotElasticBuffer
.
orchestrator-customconfig
configmap. Every new or modified value is merged in the existing configuration, but values cannot be removed (they can be
set empty but not completely removed).
NLog default configuration
robotElasticBuffer
target.
{
"NLog": {
"targets": {
"robotElasticBuffer": {
"type": "BufferingWrapper",
"flushTimeout": 5000,
"target": {
"type": "ElasticSearch",
"name": "robotElastic",
"requireAuth": false,
"uri": "",
"username": "",
"password": "",
"index": "${event-properties:item=indexName}-${date:format=yyyy.MM}",
"documentType": "logEvent",
"includeAllProperties": true,
"layout": "${message}",
"excludedProperties": "agentSessionId,tenantId,indexName"
}
},
}
}
}
{
"NLog": {
"targets": {
"robotElasticBuffer": {
"type": "BufferingWrapper",
"flushTimeout": 5000,
"target": {
"type": "ElasticSearch",
"name": "robotElastic",
"requireAuth": false,
"uri": "",
"username": "",
"password": "",
"index": "${event-properties:item=indexName}-${date:format=yyyy.MM}",
"documentType": "logEvent",
"includeAllProperties": true,
"layout": "${message}",
"excludedProperties": "agentSessionId,tenantId,indexName"
}
},
}
}
}
Orchestrator custom configuration via uipathctl
To view more information about updating Orchestrator custom config, run the following command:
uipathctl config orchestrator --help
uipathctl config orchestrator --help
Output:
Configure orchestrator custom config
Usage:
uipathctl config orchestrator [command]
Available Commands:
get-config Get the current orchestrator custom config
update-config Update orchestrator config
Flags:
-h, --help help for orchestrator
Global Flags:
--context string name of the kubeconfig context to use
--kubeconfig string kubectl configuration file (default: ~/.kube/config)
--log-format string log format. one of [text,json] (default "text")
--log-level string set log level. one of [trace,debug,info,error] (default "error")
-q, --quiet suppress all output except for errors and warnings
--timeout duration timeout of the command (default 1h0m0s)
Configure orchestrator custom config
Usage:
uipathctl config orchestrator [command]
Available Commands:
get-config Get the current orchestrator custom config
update-config Update orchestrator config
Flags:
-h, --help help for orchestrator
Global Flags:
--context string name of the kubeconfig context to use
--kubeconfig string kubectl configuration file (default: ~/.kube/config)
--log-format string log format. one of [text,json] (default "text")
--log-level string set log level. one of [trace,debug,info,error] (default "error")
-q, --quiet suppress all output except for errors and warnings
--timeout duration timeout of the command (default 1h0m0s)