Disclaimer
The material in this document is for informational purposes only. The products it describes are subject to change without prior notice, due to the manufacturer’s continuous development program. Nuix makes no representations or warranties with respect to this document or with respect to the products described herein. Nuix shall not be liable for any damages, losses, costs or expenses, direct, indirect or incidental, consequential or special, arising out of, or related to the use of this material or the products described herein.
© Nuix Canada Inc. 2024 All Rights Reserved
Introduction
This guide describes the installation of Automate. This document works like a reference - use the table of contents to look for the topic that you find out about.
The Automate software and this documentation may contain bugs, errors, or other limitations. If you encounter any issues with the Automate software or with this documentation, please contact nuix support.
While we accept feedback on all versions on the product, support is limited to the latest major and the latest minor version from the quarterly and yearly release channels. Automate recommends subscribing to product update notifications and reviewing and applying the updates within a short time after they become available.
The software requires a valid Automate license. The license is typically time-limited, and certain features of the software require a specific license edition. If you encounter any issues with the Automate license, or for specific questions about a product feature, please contact nuix support.
Styles Used in This Guide
Note: This is icon indicates that additional clarifications are provided, for example what the valid options are. |
Tip: This icon lets you know that some particulary useful tidbit is provided, perhaps a way in which to use the application to achieve a certain behavior. |
Warning: This icon highlights information that may help you avoid an undesired behavior. |
-
Emphasized: This style indicates the name of a menu, option or link.
-
code
: This style indicates code that should be used verbatim, and can refer to file paths, parameter names or Nuix search queries.
1. Architecture
1.1. Components
Several components are part of a Automate deployment:
-
Automate Scheduler: Receives requests from the analysts or from enterprise services for queuing jobs and dispatches the jobs to the Automate Engine Servers.
-
Automate Engine Server: Receives jobs from Automate Scheduler, starts Engines and runs jobs.
-
Nuix Engine: The Nuix Engine creates/opens Nuix cases and performs the required work in the cases.
-
Nuix License Source: One or several Nuix licenses sources can be used, of the following types:
-
Nuix NMS
-
Nuix License Dongle
-
Nuix Cloud License
-
-
Authentication Source: The service that will be used to authenticate users and determine group membership. This can be a combination of the following:
-
Nuix UMS: The Nuix User Management server
-
LDAP: On-premise Active Directory
-
Azure AD: Microsoft Azure Active Directory
-
OIDC: An Open ID Connect compliant authentication service
-
Internal: Internally defined usernames and passwords, for initial configuration.
-
Additionally, the following components are optional:
-
Automate OData Server: Returns utilization data using the OData protocol.
-
Automate Proxy: Offloads the data upload and hashing from the main Automate Scheduler.
-
Business Intelligence Software: A software tool that queries the Automate environment for metrics, analyzes the data and provides interactive dashboards, such as Microsoft Power BI or Tableau.
-
Microsoft SQL: Can be used to replace the built-in Scheduler database for storing job information, configuration, and audit logs.
1.2. Deployment
With the exception of Automate Engine Server which needs to be installed on each Nuix server that will be part of the Automate deployment, all remaining components can be deployed either on the same server or on dedicated servers.
When deploying the optional Automate OData Server on a server different than the server hosting Automate Scheduler, the utilization data must be redirected from the embedded database to a Microsoft SQL database.
1.2.1. Sample Distributed Architecture
This sample architecture consists in a dedicated server which hosts Automate Scheduler, several servers which host Automate Engine Servers and Nuix Engines, dedicated servers for the Nuix NMS and Nuix UMS, and connectivity with Azure AD.
1.2.2. Sample Standalone Architecture
This sample architecture consists in a single server which hosts the Automate Scheduler and the Automate Engine Server, several Nuix Engines, as well as the Nuix NMS and Nuix UMS.
1.3. Network Traffic Flow
Components in an Automate deployment communicate over HTTP. To configure the TCP ports and TLS certificates, please see section Configuration.
Source | Destination | Protocol (Port) |
---|---|---|
Analyst Web Browser |
Automate Scheduler |
HTTPS (TCP/443) |
Analyst Web Browser |
Azure AD |
HTTPS (TCP/443) |
Automate Scheduler |
Automate Engine Server |
HTTPS (TCP/443) |
Automate Engine |
Automate Scheduler |
HTTPS (TCP/443) |
Automate Scheduler |
Nuix UMS |
HTTPS (TCP/443) |
Automate Scheduler |
Azure AD |
HTTPS (TCP/443) |
Nuix Engine |
Nuix NMS |
HTTPS (TCP/27443) |
2. Prerequisites
3. Configuration
3.1. Service Settings
The configuration files are located at the following locations:
-
Automate Scheduler
C:\ProgramData\Nuix\Automate\Scheduler\config\config.yml
-
Automate Engine Server
C:\ProgramData\Nuix\Automate\EngineServer\config\config.yml
-
Automate OData Server
C:\ProgramData\Nuix\Automate\ODataServer\config\config.yml
Additionally, certain Scheduler Service configuration options can be set using environmental variables (see section Scheduler Service Environmental Variables for more details.)
3.1.1. Scheduler Service Settings
These files follows the YAML Syntax and contain the following parameters:
-
role
:SCHEDULER
, indicating that the Automate Scheduler component will run; -
apiSecret
: Key used for the authentication between Automate components. Set the same random value on all Automate Scheduler, Proxy and Server instances. -
internalCredentials
: Indicates that credentials defined in the configuration file will be used for authentication. The configuration is provided in the following subkeys:-
displayName
: (Optional) The name to display in the login page for this authentication method. -
restrictToLocalhost
: (Optional) Restrict the availability of the Internal authentication to browsers from localhost. If this property is not specified, it defaults tofalse
. -
usersEligibleLegalHoldAdministrator
: (Optional) Make Internal users eligible for Legal Hold Administrations. If this property is not specified, it defaults tofalse
. -
usersEligibleLegalHoldCustodian
: (Optional) Make Internal users eligible for Legal Hold Custodians. If this property is not specified, it defaults tofalse
. -
credentials
: The list of credentials.
-
The credentials can be provided in either PBKDF2 format, using:
-
username
-
email
-
salt
, a base64 encoded string -
iterations
, the number of hash iterations -
hash
, computed using thePBKDF2WithHmacSHA512
algorithm with a key length of512
bits.
or in cleartext, using:
-
username
-
email
-
password
Sample Internal authentication configuration with 2 users:
internalCredentials:
displayName: UsernamePassword
restrictToLocalhost: true
credentials:
- username: user1
email: user1@example.com
salt: NlbCqq8kL6sqdZQrjMmgSw==
iterations: 1000000
hash: ca4xiopDRshgyKvArOfKqBoDeVfbsOpayzVrh8n1WAWOhqvunITolqBBTiSAn1VxTBUz+15IfX4qxiTuHrthuA==
- username: user2
email: user2@example.com
password: Password2@
The Internal authentication method requires storing the usernames and passwords or hashes in the configuration file. It’s recommended to restrict this method to localhost. |
Set the restrictToLocalhost property to true to only allow logging in with internal credentials when accessing Automate as localhost. |
-
userSessionTimeout
: The duration in seconds of inactivity after which a user session expires. -
nuixEnginePath
: The location of the Nuix Engine deployment. This folder should containbin
,lib
, anduser-data
subfolders directly. -
log4jConfigurationFile
: The log4j configuration file. -
enableCentralizedLogging
:true
orfalse
indicating if the centralized logging feature is enabled.
By default this feature is enabled, to disable this feature set the value to false |
-
centralizedLoggingRetention
: The duration in days that the logs will be retained for. -
centralizedLoggingMaxSize
: The max database size in bytes before a rollover. -
centralizedLoggingSizeCheckInterval
: The duration in seconds after which the database performs a size check. -
enableRollingLoggingDatabases
: When the logging database is configured for SQLite databases will be rolled, for example when the logging databases reaches the maximum size defined in thecentralizedLoggingMaxSize
divided by the number of rolling databases defined in themaxRollingLoggingDatabases
setting. The database will be renamed and a new database will be created. By default, this feature is disabled. For example, if the user had a max size of 1GB and 5 rolling databases then the max size for all the rolling databases with be 200MB.
When the database is rolling logs, logs downloaded will be a stripped down version containing everything except the actual logs from the database and centralized logging will be disabled temporarily. If the database rotation occurs while the user is downloading logs, the download thread will exit and give the user the logs that it was able to collect and log a warning to inform the user that the download exited due to the rotation. |
-
maxRollingLoggingDatabases
: The maximum number of rolling databases. When the maximum number of databases is reached, the database with the oldest logs will be deleted. -
enableCentralizedLoggingDownloadTimeout
:true
orfalse
indicating if the centralized logging download timeout feature is enabled.
This feature will close the stream for downloading logs after a set interval defined in the centralizedLoggingDownloadTimeout` setting. This feature is only recommended for troubleshooting purposes and is disabled by default. |
-
centralizedLoggingDownloadTimeout
: The amount of time in milliseconds to download logs before exiting, by default this value is set to180000
(3 minutes). -
engineInitLogFolder
: The log folder to use during the Engine initialization, before running job. -
archiveJobsPastDuration
: The duration in seconds after which finished jobs are automatically archived. -
archiveJobsPastCount
: The maximum number of finished jobs after which the oldest job is automatically archived. -
server
: Indicates the IP/ports to listen on and the TLS certificate for HTTPS connections.
By default, the service listens on HTTP on port 80 on localhost, and on HTTPS on port 443 all IP addresses. To restrict the server to listen on a specific IP address, change 0.0.0.0 to the required IP address in the config.yml file. |
If upgrading Scheduler from a version prior to 6.0, the server will only accept HTTP/1.1 connections by default. To enable HTTP/2 connections, change type: https to type: h2 in the config.yml file. |
-
webConfiguration
: Indicates which Web settings to apply to the Web server used for the REST API, including HSTS, XSS protections, CORS and CSP.
-
cors
: The CORS configuration.
The Automate REST API is designed to be accessed both by the webpage hosted on the Scheduler server, as well as from third-party services and web pages. For this reason, the default CORS configuration allows all origins. This configuration is secure, as each request to the REST API needs to be authenticated with a Bearer token. If there is a need to further restrict the CORS allowed origins, a stricter policy can be put in place by editing the default CORS settings in the config.yml file. |
Sample CORS policy restricting the allowed origins:
cors:
allowedOrigins: ["https://scheduler.example.com"]
-
logging
: Indicates the parameters of the logging performed by the service. These logs will also contain the information that is typically logged by Nuix Workstation. The location of the worker logs is specified in thenuixFlags
parameter. -
applicationStore
: Indicates that a custom database is used for storing the audit information.-
driverClass
:net.sourceforge.jtds.jdbc.Driver
-
user
: The database username -
password
: The database password -
url
: The JDBC connection string, for examplejdbc:jtds:sqlserver://HOST:1433/DATABASE
-
properties
: The connection properties.
-
Sample Microsoft SQL configuration:
applicationStore:
driverClass: net.sourceforge.jtds.jdbc.Driver
user: automate-service
password: SecretGoesHere
url: jdbc:jtds:sqlserver://localhost:1433/automate
properties:
charSet: UTF-8
If a username and password is not provided in the Microsoft SQL store configuration, the connection will be performed using Integrated Windows Authentication. When connecting to Microsoft SQL in this way, the Automate Scheduler service should be configured to run under an account that has access to the Microsoft SQL database. |
-
utilizationStore
: Indicates that a custom database is used for storing the operational utilization data. -
loggingStore
: Indicates that a custom database is used for storing logs.
The loggingStore is a circular buffer of all platform logs and is expected to generate a write throughput. It is not recommended to redirect this logging store to a SQL database. |
Sample configuration relocating the loggingStore
to D:\Logs\Automate
:
loggingStore:
driverClass: org.sqlite.JDBC
url: jdbc:sqlite:D:/Logs/Automate/logging.db
properties:
charSet: UTF-8
The various stores listed above can be all redirected to a single Microsoft SQL database, or to separate databases as needed. |
-
defaultUserSettings
: Overwrite the user settings that apply when no specific configuration was set on a user profile.
Sample settings to define the allowed parameter values which are populated by default when creating a new Client or a new Matter:
defaultUserSettings:
newMatter:
allowedParameterValues:
- "{custodian}": ["John Smith","Annie Rosella"]
- "{sample_parameter_1}": []
synchronizeJobs: true
newClient:
allowedParameterValues:
- "{doc_id_prefix}": ["DOC","DOC-","DOCID"]
- "{sample_parameter_2}": []
-
sortAllowedParametersValues
:true
orfalse
indicating if the Allowed Parameter values defined in the user interface or returned by scripts should be sorted and or if they should maintain the original order. -
jobMaximumExecutionParametersLength
: The number of characters that execution parameters can have before the value gets trimmed. This only affects the performance of the front-end of scheduler. By default, this is set to200
characters. -
archivedJobCleanupEnabled
:true
orfalse
indicating if the archive job cleaner should run or not, which deletes job, job execution logs and job operation mime type stats after an archived job is older than a set amount of days. By default, the value isfalse
. -
archivedJobCleanupInterval
: The interval in hours for how often the job cleanup task should run. By default, this is set to24
hours. -
archivedJobRetentionDays
: Number of days a job must be archived before it is eligible for deletion. By default, this is set to584
days (1 year and a half). -
synchronizeJobsOnAllMatters
:true
orfalse
indicating if only one Job is allowed to run on a Matter at any given time. -
authTokenTtl
: The duration in seconds after which the user authentication token expires. The browser will make a request to refresh the authentication token at half of the token life span. By default, this is set to600
seconds. -
disableAuthTokenExpiration
:true
orfalse
indicating that the user authentication token does not expire. By default, this is set tofalse
. -
expiredAuthTokenTombstone
: The duration in seconds for which to keep track of expired authentication tokens. When attempting to access Automate with an expired authentication token, a friendly error message is be returned, and the current live user session is invalidated. By default, this is set to900
. -
downgradeWebWorkerToken
:true
orfalse
indicating that the browser should downgrade the Web Worker token to make it accessible by scripts in the browser. By default, this is set tofalse
.
With the default setting of downgradeWebWorkerToken: false , when refreshing the browser window, the user will be logged out. Setting this option to true will maintain the user session when the browser window is refreshed, but makes the authentication token accessible by scripts in the browser, which is less secure. |
-
enforceSingleUserSession
:true
orfalse
indicating if a user can have more than one session at a time, if this option is set to true only one session will be allowed.
If a user is already signed in and another session is started for the same user, the older session will be signed out. |
-
libraryFileMaxSize
: The maximum size in bytes of files that can be uploaded to the File Library, by default10000000
.
The File Library is designed to store configuration files and profiles. This limit does not apply to files uploaded to Data Repositories. |
-
expireIdleUploadAfter
: The duration in milliseconds after which idle uploads to Data Repositories expire, by default3600000
corresponding to 1 hour. -
uploadBufferMaxSize
: The maximum buffer size in KiB to allocate during uploads to Data Repositories, by default8192
. The buffer size can be allocated up to 3 times for each file upload, and is used only for the duration of the file upload.
When writing data to a file share connected over a high-latency network, increasing the size of the uploadBufferMaxSize may increase overall transfer performance at the cost of increased memory usage. |
-
uploadHashAlgorithms
: The algorithm to use for hashing on the server-side when uploading files to Data Repositories, by defaultMD5
. To disable hashing during upload, use the valueNone
.
Hashing files during upload requires significant CPU resources on the Scheduler server. To offload this computation to a different server, use the Scheduler Proxy role. |
-
enableUtilizationEndpoint
: Enable the OData service on Scheduler, by defaulttrue
. To disable use the valuefalse
. -
utilizationErrorsSoftFail
: Mask utilization data database write errors to the application, by defaultfalse
. -
azureLocations
: (Optional) The list of locations to run VMs in. SampleazureLocations
settings:
azureLocations: westus,eastus
-
azureVmSizes
: (Optional) The list of VM sizes. SampleazureVmSizes
settings:
azureVmSizes: Standard_M8ms,Standard_M16ms,Standard_M32ts
3.1.2. Scheduler Service Environmental Variables
The following environmental variables can be configured to set or overwrite settings configured in the Scheduler Service configuration file:
-
Database redirection. Use the following settings to redirect the application to a SQL database:
-
AUTOMATE_STORE_APPLICATION_ENABLED
: Set totrue
to enable -
AUTOMATE_STORE_APPLICATION_DRIVER_CLASS
: The driver class, for exampleorg.postgresql.Driver
-
AUTOMATE_STORE_APPLICATION_URL
: The JDBC connection string, for examplejdbc:postgresql://postgres.example.internal:5432/automateScheduler
-
AUTOMATE_STORE_APPLICATION_USERNAME
: The database username -
AUTOMATE_STORE_APPLICATION_PASSWORD
: The database password -
AUTOMATE_STORE_APPLICATION_CHARSET
: The database charset, for exampleUTF-8
-
AUTOMATE_STORE_LOGGING_REDIRECT_TO_APPLICATION
: Set totrue
to redirect the centralized logging to the same location as the application store -
AUTOMATE_CENTRALIZED_LOGGING_ENABLED
: Set tofalse
to disabled centralized logging -
AUTOMATE_STORE_UTILIZATION_REDIRECT_TO_APPLICATION
: Set totrue
to redirect the utilization data to the same location as the application store -
AUTOMATE_STORE_APPLICATION_SCHEDULER_MIN_CONNECTIONS
: The minimum number of connections to keep open -
AUTOMATE_STORE_APPLICATION_SCHEDULER_MAX_CONNECTIONS
: The maximum number of connections to keep open
-
-
Authentication. Use the following settings to configure the access credentials to log in to the application for the initial configuration:
-
Internal username/password authentication:
-
AUTOMATE_AUTH_INTERNAL_ENABLED
: Set totrue
to enable -
AUTOMATE_AUTH_INTERNAL_USERNAME
: The username to log in with -
AUTOMATE_AUTH_INTERNAL_EMAIL
: The email address of the user -
AUTOMATE_AUTH_INTERNAL_PASSWORD
: The password to log in with.
-
-
Internal PBKDF2 authentication:
-
AUTOMATE_AUTH_INTERNAL_ENABLED
: Set totrue
to enable -
AUTOMATE_AUTH_INTERNAL_USERNAME
: The username to log in with -
AUTOMATE_AUTH_INTERNAL_EMAIL
: The email address of the user -
AUTOMATE_AUTH_INTERNAL_SALT
: A base64 encoded string -
AUTOMATE_AUTH_INTERNAL_ITERATIONS
: The number of hash iterations -
AUTOMATE_AUTH_INTERNAL_HASH
: The password hash computed using thePBKDF2WithHmacSHA512
algorithm with a key length of512
bits.
-
-
OIDC authentication:
-
AUTOMATE_AUTH_OIDC_ENABLED
: Set totrue
to enable -
AUTOMATE_AUTH_OIDC_NAME
: The authentication mechanism name -
AUTOMATE_AUTH_OIDC_DESCRIPTION
: The authentication mechanism description -
AUTOMATE_AUTH_OIDC_WELL_KNOWN_CONFIG_URI
: The well-known configuration URI, for examplehttp://keycloak:8080/realms/default/.well-known/openid-configuration
-
AUTOMATE_AUTH_OIDC_SCOPE
: The scope, for exampleopenid email profile
-
AUTOMATE_AUTH_OIDC_USERNAME_CLAIM
: The username claim, for exampleemail
-
AUTOMATE_AUTH_OIDC_CLIENT_ID
: The client ID -
AUTOMATE_AUTH_OIDC_CLIENT_SECRET
: The client secret
-
-
Derby Control service:
-
AUTOMATE_DERBY_CONTROL_SERVICE_ENABLED
: Set totrue
to enable -
AUTOMATE_DERBY_CONTROL_SERVICE_NAME
: The Derby Control service name -
AUTOMATE_DERBY_CONTROL_SERVICE_DESCRIPTION
: The Derby Control service description -
AUTOMATE_DERBY_CONTROL_SERVICE_URL
: The Derby Control base URL, for examplehttp://127.0.0.1:8999/DERBY-CONTROL
-
-
-
Multi-server API Secret. Use the following settings to configure the API secret used for managing different Engine Servers:
-
AUTOMATE_API_SECRET
: Key used for the authentication between Automate components. Set the same random value on all Automate Scheduler, Proxy and Server instances.
-
-
Security Policy. Use the following settings to configure a Security Policy:
-
AUTOMATE_SECURITY_POLICY_ENABLED
: Set totrue
to enable -
AUTOMATE_SECURITY_POLICY_NAME
: The policy name -
AUTOMATE_SECURITY_POLICY_DESCRIPTION
: The policy description -
AUTOMATE_SECURITY_POLICY_PRINCIPALS
: The list of principals to which the policy applies. The following setting will match any authenticated user:[{"identifierType":"BUILTIN","identifierName":"AUTHENTICATED_USER"}]
-
AUTOMATE_SECURITY_POLICY_PERMISSIONS
: The policy permissions, for example["VIEW","VIEW_SENSITIVE","MODIFY","CREATE","SUBMIT_JOB","DOWNLOAD_LOGS"]
-
AUTOMATE_SECURITY_POLICY_SCOPE_BUILTIN
: The policy built-in scopes, for example["ALL_CLIENT_POOLS","ALL_CLIENTS","ALL_LIBRARIES","API_KEYS","COLLECTIONS","LEGAL_HOLDS","SCRIPTS","SCHEDULES","SECURITY","RESOURCES"]
-
AUTOMATE_SECURITY_POLICY_SCOPE
: Optionally, define the full policy scopes, for example[{"identifierType":"BUILTIN","identifierName":"RESOURCES"}]
-
-
Security Policy. Use the following settings to configure a Automate License:
-
AUTOMATE_LICENSE_ENABLED
: Set totrue
to enable -
AUTOMATE_LICENSE_ID
: The license ID -
AUTOMATE_LICENSE_KEY
: The license key -
AUTOMATE_LICENSE_DIAGNOSTIC_LEVEL
: The diagnostic level, for exampleENHANCED
-
-
Nuix CLS License. Use the following settings to configure a Nuix CLS License:
-
AUTOMATE_NUIX_CLS_LICENSE_ENABLED
: Set totrue
to enable -
AUTOMATE_NUIX_CLS_LICENSE_NAME
: The license name -
AUTOMATE_NUIX_CLS_LICENSE_DESCRIPTION
: The license description -
AUTOMATE_NUIX_CLS_LICENSE_FILTER
: The license worker filter, for exampleworkstation
-
AUTOMATE_NUIX_CLS_LICENSE_DESCRIPTION
: The license description -
AUTOMATE_NUIX_CLS_LICENSE_USERNAME
: The CLS username -
AUTOMATE_NUIX_CLS_LICENSE_PASSWORD
: The CLS password
-
-
Resource Pool. Use the following settings to configure a Resource Pool:
-
AUTOMATE_RESOURCE_POOL_ENABLED
: Set totrue
to enable -
AUTOMATE_RESOURCE_POOL_NAME
: The resource pool name -
AUTOMATE_RESOURCE_POOL_DESCRIPTION
: The resource pool description -
AUTOMATE_RESOURCE_POOL_AUTO_REGISTRATION_ENABLED
: Set totrue
to enable auto-registration. -
AUTOMATE_RESOURCE_POOL_AUTO_REGISTRATION_ACCESS_KEY
: The auto-registration access key. The Engine Servers need to use the same key. -
AUTOMATE_RESOURCE_POOL_AUTO_REGISTRATION_STRICT_IP
: Optional, set totrue
to enforce registration from the same IP address as the destination server, by defaultfalse
. -
AUTOMATE_RESOURCE_POOL_AUTO_REGISTRATION_MIN_WORKERS
: Optional, the auto-registration min workers, by default1
. -
AUTOMATE_RESOURCE_POOL_AUTO_REGISTRATION_TARGET_WORKERS
: Optional, the auto-registration target workers, by default2
. -
AUTOMATE_RESOURCE_POOL_AUTO_REGISTRATION_EXECUTION_MODE
: Optional, the auto-registration execution mode, by defaultAUTOMATE_NUIX
.
-
-
Execution Profile. Use the following settings to configure a Execution Profile:
-
AUTOMATE_EXECUTION_PROFILE_ENABLED
: Set totrue
to enable -
AUTOMATE_EXECUTION_PROFILE_NAME
: The execution profile name -
AUTOMATE_EXECUTION_PROFILE_DESCRIPTION
: The execution profile description -
AUTOMATE_EXECUTION_PROFILE_ENGINE_COMMAND_LINE_PARAMS
: Optional, the Engine command-line parameters, by default-Xmx16g -Dnuix.logdir=/var/log/nuix/automate -Duser.language=en -Duser.country=US
. -
AUTOMATE_EXECUTION_PROFILE_NUIX_ENGINE_FOLDER
: Optional, the Nuix engine binaries folder, by default/opt/nuix/engine
. -
AUTOMATE_EXECUTION_PROFILE_ENGINE_LOG_FOLDER
: Optional, the Engine log folder, by default/var/log/nuix/automate
. -
AUTOMATE_EXECUTION_PROFILE_JAVA_FOLDER
: Optional, the Java binaries folder, by default blank. -
AUTOMATE_EXECUTION_PROFILE_PARAMETERS
: Optional, a JSON serialized Map<String,String> of parameter and values, by default blank. -
AUTOMATE_EXECUTION_JOB_PROGRESS_MIN_PERCENTAGE
: Optional, the minium job progress before aborting the job, by default1.0
. -
AUTOMATE_EXECUTION_JOB_PROGRESS_TIMEOUT_HOURS
: Optional, the timeout after which to abort the job if the job progress was not achieved, by default48.0
. -
AUTOMATE_EXECUTION_OPERATION_PROGRESS_MIN_PERCENTAGE
: Optional, the minimum operation progress before aborting the job, by default1.0
. -
AUTOMATE_EXECUTION_OPERATION_PROGRESS_TIMEOUT_HOURS
: Optional, the timeout after which to abort the job if the operation progress was not achieved, by default24.0
. -
AUTOMATE_EXECUTION_SKIP_OPERATION_PROGRESS_MIN_PERCENTAGE
: Optional, the minium operation progress before attempting to skip the operation, by default1.0
. -
AUTOMATE_EXECUTION_SKIP_OPERATION_PROGRESS_TIMEOUT_HOURS
: Optional, the timeout after which to attempt to skip the operation of the operation progress was not achieved, by default12.0
.
-
-
User Data Dir. Use the following settings to configure the User Data Dir behavior:
-
AUTOMATE_USER_DATA_DIR_SCAN_INTERVAL
: Set to the interval duration in seconds at which the User Data Dir will be scanned even if the OS does not detect a change.
-
-
To overwrite an arbitrary setting, convert the setting name to uppercase snake case, preceded by Automate. For example, for configuring the
downgradeWebWorkerToken
setting, use theAUTOMATE_DOWNGRADE_WEB_WORKER_TOKEN
environmental variable.
3.1.3. Scheduler Proxy Service Settings
This file follows the YAML Syntax and contain the following parameters:
-
role
:PROXY
, indicating that the Automate Scheduler Proxy component will run; -
apiSecret
: Key used for the authentication between Automate components. Set the same random value on all Automate Scheduler, Proxy and Server instances. -
proxy
: The details of the main Scheduler instance that the proxy uses. The configuration is provided in the following subkeys:-
baseUrl
: The URL of the Scheduler instance. -
whitelistedCertFingerprints
: Scheduler certificate fingerprints used for verification when opening a secure connection.
-
-
allowedAuthenticationServices
: The list of authentication service names that can be used through this Proxy. If this setting is not defined, all authentication services will be allowed through the Proxy.
Sample proxy configuration:
proxy:
baseUrl: https://scheduler.automate.local
whitelistedCertFingerprints:
- e62dd01ca608c10402d07714cfd626bfc6b1001e5a16ca039d1050a71f73ee24
allowedAuthenticationServices:
- Internal
- Lab Azure AD
-
log4jConfigurationFile
: The log4j configuration file. -
server
: Indicates the web access logs settings, the HTTP protocols to listen on and the corresponding IP, port and TLS certificate for HTTPS connections. -
webConfiguration
: Indicates which Web settings to apply to the Web server used for the REST API.
3.1.4. Engine Server Service Settings
This file follows the YAML Syntax and contain the following parameters:
-
role
:ENGINE_SERVER
, indicating that the Automate Engine Server component will run; -
apiSecret
: Key used for the authentication between Automate components. Set the same random value on all Automate Scheduler, Proxy and Server instances. -
nuixEnginePath
: The location of the Nuix Engine deployment. This folder should containbin
,lib
, anduser-data
subfolders directly. -
log4jConfigurationFile
: The log4j configuration file. -
engineInitLogFolder
: The temporary location used by Engines for storing configuration files and logs during the initialization phase. When running Jobs, the Engine will store the logs and configuration files at the location specified in the Execution Profile. -
engineInitTimeout
: The timeout in seconds that the Engine is allowed to initialize, by default120
. -
engineAbortTimeout
: The timeout in milliseconds that the Engine will wait to abort a job, be default5000
(5 seconds) -
server
: Indicates the web access logs settings, the HTTP protocols to listen on and the corresponding IP, port and TLS certificate for HTTPS connections. -
webConfiguration
: Indicates which Web settings to apply to the Web server used for the REST API. -
jobRunningLogMaxSize
: Indicates the maximum number of logs that the job running log stores, by default20
. -
logging
: Indicates the parameters of the logging performed by the service. These logs will also contain the information that is typically logged by Nuix Workstation. The location of the worker logs is specified in thenuixFlags
parameter. -
workerBrokerIP
: The IP address to use for hosting Worker Brokers when running Remote Workers. -
workerBrokerStartPort
: The port range start for Worker Brokers. -
workerBrokerEndPort
: The port range end for Worker Brokers.
Sample settings for configuring a Worker Broker on IP 10.0.0.1
:
workerBrokerIP: 10.0.0.1
workerBrokerStartPort: 50000
workerBrokerEndPort: 50100
If the workerBrokerIP setting is not provided, the server will start a broker on a default network adapter. In an environment where servers have multiple network adapters, configure the workerBrokerIP on each server with the IP address that should be used by other servers joing remote jobs to contact this server. |
3.1.5. Engine Server Service Environmental Variables
The following environmental variables can be configured to set or overwrite settings configured in the Engine Server Service configuration file:
-
Database redirection. Use the following settings to redirect the application to a SQL database:
-
AUTOMATE_STORE_APPLICATION_ENABLED
: Set totrue
to enable -
AUTOMATE_STORE_APPLICATION_DRIVER_CLASS
: The driver class, for exampleorg.postgresql.Driver
-
AUTOMATE_STORE_APPLICATION_URL
: The JDBC connection string, for examplejdbc:postgresql://postgres.example.internal:5432/automateEngineServer
-
AUTOMATE_STORE_APPLICATION_USERNAME
: The database username -
AUTOMATE_STORE_APPLICATION_PASSWORD
: The database password -
AUTOMATE_STORE_APPLICATION_CHARSET
: The database charset, for exampleUTF-8
-
AUTOMATE_STORE_APPLICATION_SCHEDULER_MIN_CONNECTIONS
: The minimum number of connections to keep open -
AUTOMATE_STORE_APPLICATION_SCHEDULER_MAX_CONNECTIONS
: The maximum number of connections to keep open
-
-
Auto-registration. Use the following settings to automatically register the Engine Server to a Scheduler Resource Pool. The Resource Pool must be configured with the auto-registration feature enabled:
-
AUTOMATE_REGISTRATION_ENABLED
: Set totrue
to enable -
AUTOMATE_REGISTRATION_SERVER_NAME
: The name of the Engine Server, for exampleServer1
-
AUTOMATE_REGISTRATION_SERVER_URL
: The URL that the Scheduler can access the Engine Server as, for examplehttp://Server1.internal.local
-
AUTOMATE_REGISTRATION_SCHEDULER_URL
: The Scheduler URL, for examplehttp://Scheduler.internal.local
-
AUTOMATE_REGISTRATION_RESOURCE_POOL_ID
: Optional, the Resource Pool ID to register with. By default, the ID of the Resource Pool configured in Scheduler with ENV variables. This setting only needs to be provided to register to a different Resource Pool. -
AUTOMATE_REGISTRATION_ROLE_MAIN
: Optional, set totrue
enable the Engine to act as a Main Engine in the Resouce Pool. -
AUTOMATE_REGISTRATION_ROLE_REMOTE
: Optional, set totrue
enable the Engine to act as a Remote Engine in the Resouce Pool. -
AUTOMATE_REGISTRATION_RESOURCE_POOL_ACCESS_KEY
: The Resource Pool access key. Se the same value the was configured on the Resource pool with the ENV variable.
-
-
Multi-server deployment. Use the following settings for multi-server deployment scenarios:
-
AUTOMATE_API_SECRET
: Key used for the authentication between Automate components. Set the same random value on all Automate Scheduler, Proxy and Server instances. -
AUTOMATE_SERVER_ID
: Set a unique random ID for each Engine Server.
-
-
Engine logging layout
-
AUTOMATE_ENGINE_LOG_LAYOUT_JSON
: Set totrue
to configure the Engine logs to be in JSON format. Note, this does not apply to the Scheduler or Engine Server log formats, which are configured directly in their respectiveconfig.yml
.
-
3.1.6. OData Server Service Settings
This file follows the YAML Syntax and contain the following parameters:
-
role
:ODATA_SERVER
, indicating that the Automate OData Server component will run; -
internalCredentials
: Indicates that credentials defined in the configuration file will be used for authentication. The configuration is provided in the following subkeys:-
displayName
: (Optional) The name to display in the login page for this authentication method. -
restrictToLocalhost
: (Optional) Restrict the availability of the Internal authentication to browsers from localhost. If this property is not specified, it defaults tofalse
. -
credentials
: The list of credentials.
-
The credentials can be provided in either PBKDF2 format, using:
-
username
-
email
-
salt
, a base64 encoded string -
iterations
, the number of hash iterations -
hash
, computed using thePBKDF2WithHmacSHA512
algorithm with a key length of512
bits.
or in cleartext, using:
-
username
-
email
-
password
Sample Internal authentication configuration with 2 users:
internalCredentials:
displayName: UsernamePassword
restrictToLocalhost: true
credentials:
- username: user1
email: user1@example.com
salt: NlbCqq8kL6sqdZQrjMmgSw==
iterations: 1000000
hash: ca4xiopDRshgyKvArOfKqBoDeVfbsOpayzVrh8n1WAWOhqvunITolqBBTiSAn1VxTBUz+15IfX4qxiTuHrthuA==
- username: user2
email: user2@example.com
password: Password2@
The Internal authentication method requires storing the usernames and passwords or hashes in the configuration file. It’s recommended to restrict this method to localhost. |
Set the restrictToLocalhost property to true to only allow logging in with internal credentials when accessing Automate as localhost. |
-
server
: Indicates the web access logs settings, the HTTP protocols to listen on and the corresponding IP, port and TLS certificate for HTTPS connections.
By default, the service listens on HTTP on port 8081 on localhost, and on HTTPS on port 8443 all IP addresses. To restrict the server to listen on a specific IP address, change 0.0.0.0 to the required IP address in the config.yml file. |
-
webConfiguration
: Indicates which Web settings to apply to the Web server used for the REST API. -
utilizationStore
: Indicates that a custom database is used for storing the audit information.-
driverClass
:net.sourceforge.jtds.jdbc.Driver
-
user
: The database username -
password
: The database password -
url
: The JDBC connection string, for examplejdbc:jtds:sqlserver://HOST:1433/DATABASE
-
properties
: The connection properties.
-
Sample Microsoft SQL configuration:
utilizationStore:
driverClass: net.sourceforge.jtds.jdbc.Driver
user: automate-service
password: SecretGoesHere
url: jdbc:jtds:sqlserver://localhost:1433/automate
properties:
charSet: UTF-8
If a username and password is not provided in the Microsoft SQL store configuration, the connection will be performed using Integrated Windows Authentication. When connecting to Microsoft SQL in this way, the Automate Scheduler service should be configured to run under an account that has access to the Microsoft SQL database. |
3.2. Authentication
3.2.1. Nuix UMS
If using the Nuix UMS authentication method, configure the UMS Authentication Service in the Automate web page, in the Settings tab, under Authentication Services. All users which are defined in the Nuix UMS will be able to log in to Automate. The access level of each user is determined by the security policies defined in the Automate web page, in the Settings tab.
3.2.2. LDAP
If using the LDAP authentication method, configure the LDAP Authentication Service in the Automate web page, in the Settings tab, under Authentication Services. All users which are defined in the provided LDAP domainDN
will be able to log in to Automate. The access level of each user is determined by the security policies defined in the Automate web page, in the Settings tab.
3.2.3. Internal
If using the Internal authentication method, set the internalCredentials
configuration in the YAML
file as indicated in Service Settings.
3.3. Access Security Policies
Access to Automate resources is defined in the Settings page, in the Security Policies tab. The default policy allows any authenticated user to View and Modify all resources, as well as to Submit Jobs with any settings.
3.4. Memory
3.4.1. Nuix Workers
The memory of Nuix Workers can be specified either in the workflow Configuration operation, or explicitly as a command-line parameter in the Execution Profiles, for example:
-Dnuix.worker.jvm.arguments="-Xmx8g"
3.4.2. Nuix Engine
The memory of the Nuix Engine, equivalent to the memory of the Nuix Workstation as a command-line parameter in the Execution Profiles, for example:
-Xmx2g
Each Nuix Engine will run under a separate JVM and will not share memory with the other Nuix Engines or the Automate services. |
3.5. Shared Data Sources
Automate workflows are executed on the servers running the Automate Engine Server component. To ensure that workflows can access cases and source data from a shared location, provide a UNC path or a mapped drive letter path which is accessible from all servers running the Automate Engine Server component.
By default, the Automate Engine Server service runs under the Local System account, and starts Engines under the same user account.
A different user account can be specified in Execution Profiles, as required.
4. Troubleshooting
4.1. Browse to Automate Scheduler
By default, Automate Scheduler listens on 127.0.0.1 on port 80 and all IP addresses on port 443. To access the default installation, browse to address: http://localhost
4.2. Automate Service Does Not Start
Automate Scheduler and Engine Server run as Windows services. If the services are started, inspect the log files at C:\Temp\Log\automate-scheduler.log
and C:\Temp\Log\automate-engine-server.log
.
4.3. Log In Error
If the error Error communicating with the authentication server is shown when attempting to log in, inspect the logs to determine the issue encountered by Automate when communicating with the authentication server.
4.4. Adding Automate Engine Server throws javax.net.ssl.SSLHandshakeException error
Ensure that the Java Runtime Environment from the latest version of Nuix Workstation deployed on each the Automate Scheduler server trusts the TLS certificate of the Automate Engine Server. See section Managing Certificates for more details.
5. Managing Certificates
6. Utilization and Reporting
The Utilization and Reporting data is provided as an OData V4 feed, if this feature is enabled in the Automate license.
The OData feed only support querying the metadata and retrieving all data from the views. OData filters are not supported. |
The OData feed can be accessed under the following endpoint, using Basic or Microsoft OAuth authentication:
-
/api/v2/reporting/odata
7. REST API documentation
Automate Scheduler can be accessed either directly for a browser, or using the REST API. The documentation of the API is provided in OpenAPI v3 format, under /openapi
.
For example, to access the API documentation in a standard installation of Automate Scheduler, browse to http://localhost/openapi
8. Centralized Logging
Centralized logging consolidates all of the logs from Scheduler, Engine Server, Engine and Worker logs into the logging database managed by Scheduler.
Centralized logging is enabled by default, meaning that both the log file as well as the database log will exist. To disable centralized logging, set the enableCentralizedLogging
key to false
in the configuration YAML
file as indicated in Service Settings file.
If centralized logging is disabled, the download job logs and download system logs features will be disabled. |
Centralized logging will automatically delete logs older than the retention period. The default retention period is 30 days. To change the retention period, edit the centralizedLoggingRetention
key in YAML
file.
When the database logs size exceeds the maximum database size, older logs will be deleted. By default the maximum database size is 1000000000
bytes (1 GB). To change the default max database size edit the centralizedLoggingMaxSize
key in the YAML
file.
The actual centralized logging database size could exceed the specified maximum size, due to database overhead and delays in deleting old log lines. |
9. Filepaths Inventory
9.1. Default Filepaths
9.1.1. Scheduler
-
C:\Program Files\Nuix\Automate
: Installation folder -
%programdata%\Nuix\Automate\Scheduler\config
: Configuration folder -
%programdata%\Nuix\Automate\Scheduler\stores
: Persistence and archival of job details, utilization, audit, reporting and utilization -
C:\Temp\logs\automate-scheduler.log
: Application log -
C:\Temp\logs\automate-scheduler.%d.log.zip
: Previous application log files -
C:\Temp\logs\automate-scheduler-access.log
: Web access log -
C:\Temp\logs\automate-scheduler-access.%d.log.zip
: Previous main log files -
C:\Temp\logs\Automate Scheduler.wrapper.log
: Service wrapper logs -
C:\Temp\logs\Automate Scheduler.err.log
: Service standard error log -
C:\Temp\logs\Automate Scheduler.out.log
: Service standard output log
9.1.2. Engine Server
-
C:\Program Files\Nuix\Automate
: Installation folder -
%programdata%\Nuix\Automate\EngineServer\config
: Configuration folder -
C:\Temp\logs\automate-engine-server.log
: Application log -
C:\Temp\logs\automate-engine-server.%d.log.zip
: Previous application log files -
C:\Temp\logs\automate-engine-server-access.log
: Web access log -
C:\Temp\logs\automate-engine-server-access.%d.log.zip
: Previous main log files -
C:\Temp\logs\Automate Engine Server.wrapper.log
: Service wrapper logs -
C:\Temp\logs\Automate Engine Server.err.log
: Service standard error log -
C:\Temp\logs\Automate Engine Server.out.log
: Service standard output log
9.1.3. Engine
-
C:\Temp\logs\automate-engine.aaaaaaaa-init.log
: Init log -
C:\Temp\logs\automate-engine.aaaaaaaa-init.yml
: Init configuration -
C:\Temp\logs\automate-engine.aaaaaaaa-service.exe
: Service wrapper -
C:\Temp\logs\automate-engine.aaaaaaaa-service.xml
: Service configuration -
C:\Temp\logs\automate-engine.aaaaaaaa-job.bbbbbbbb.log
: Job log -
C:\Temp\logs\automate-engine.aaaaaaaa-job.bbbbbbbb.yml
: Job configuration
9.2. Changing Log Locations
The default filepaths can be changed from the following locations:
-
Scheduler main log: Update the section
logging
fromC:\ProgramData\Nuix\Automate\Scheduler\config\config.yml
-
Scheduler service-related logs: Update the tags
<workingdirectory>
and<logpath>
fromC:\Program Files\Nuix\Automate\Scheduler\Automate Scheduler.xml
-
Engine Server main log: Update the section
logging
fromC:\ProgramData\Nuix\Automate\EngineServer\config\config.yml
-
Engine Server service-related logs: Update the tags
<workingdirectory>
and<logpath>
fromC:\Program Files\Nuix\Automate\EngineServer\Automate Engine Server.xml
-
Engine init log, configuration and service-related logs: Update the section
engineInitLogFolder
fromC:\ProgramData\Nuix\Automate\EngineServer\config\config.yml
-
Job log and configuration: Update the field
Log Folder
and set the command-line parameter-Dnuix.logdir=c:\Temp\Logs
in the Execution Profile