Configuring an Elasticsearch Instance
- Updated2026-08-04
- 3 minute(s) read
Configure SystemLink Enterprise to access a remote Elasticsearch database to enhance scalability and performance.
You must follow these steps under the following conditions.
- You are upgrading from a SystemLink Enterprise version before 2026-04.
- You want to improve your search performance.
Choosing an Elasticsearch Deployment
SystemLink uses Elasticsearch to improve search performance. You can use an Elasticsearch instance in the same Kubernetes cluster as your SystemLink Enterprise installation or an external instance.
| Deployment | When to Use | Details |
|---|---|---|
| SystemLink Elasticsearch Helm chart |
|
You can run this instance on existing Kubernetes worker nodes or dedicated worker nodes using taints and tolerations. For more information and recommended resources, refer to Sizing Considerations when Deploying an Elasticsearch Instance. |
| Elastic Cloud | You want to simplify database provisioning, operation, backup, and restore operations. | For more information and recommended resources, refer to Sizing Considerations when Deploying an Elasticsearch Instance. |
Configuring the SystemLink Elasticsearch Helm Chart with Enabled Autoprovisioning
To configure Elasticsearch for the first time, you must provision the passwords.
- Open the elasticsearch-values.yaml file.
- Set the sl-elasticsearch.usersProvisioning.enabled value to True.
- Open the elasticsearch-secrets.yaml file.
- Set the password for each index.
Table 34. Indexes for Enabled Autoprovisioning Service User Password assetservicecdc assetscdc sl-elasticsearch.secrets.assetscdcPassword fileingestioncdc filescdc sl-elasticsearch.secrets.filescdcPassword systemscdc systemscdc sl-elasticsearch.secrets.systemscdcPassword - Deploy Elasticsearch.
Configuring a Remote Elasticsearch Instance or the SystemLink Elasticsearch Helm Chart with Disabled Autoprovisioning
To configure Elasticsearch for the first time, you must provision the indexes.
- Open the systemlink-secrets.yaml file.
- Set the password for each index.Note Some services require privileges on multiple indexes. For example, if the files,files_* parameter is specified, the service requires privileges for the following indexes:
- The files index.
- All indexes that match the files_* pattern (where * is a wildcard).
Table 35. Indexes for Disabled Autoprovisioning Service Database User Password assetservice assets,assets_* assetscdc assetservice.secrets.elasticsearch.password assetservicecdc assets,assets_* assetscdc assetservicecdc.secrets.elasticsearch.password fileingestion files,files_* filescdc fileingestion.secrets.elasticsearch.password fileingestioncdc files,files_* filescdc fileingestioncdc.secrets.elasticsearch.password systems systems, systems_* systemscdc systems.secrets.elasticsearch.password systemscdc systems, systems_* systemscdc systemscdc.secrets.elasticsearch.password - Deploy Elasticsearch.
Sizing Considerations When Deploying an Elasticsearch Instance
Resource requirements are based on service usage. Refer to the following table for tested configurations at a specified scale when configuring resources based on your expected usage.
Configure the Elasticsearch instances to handle the scale of your data.
| Usage Level | Scale | Nodes | CPU | RAM | Persistence |
|---|---|---|---|---|---|
| Baseline | 3000 systems and 25000 assets | 2 | 1 | 4 GB | 1 GB |
| General | 3000 systems, 25000 assets, and 25 million files | 2 | 2 | 4 GB | 50 GB |
| High | 3000 systems, 25000 assets, and 80 million files | 4 | 2 | 4 GB | 200 GB |
Based on your scale, select and apply a configuration.
- Open the elasticsearch-values.yaml file.
- Set the sl-elasticsearch.elasticsearch.master.replicaCount
value to the listed nodes.Note For an optimal configuration, the number of nodes must not be smaller than the highest configured number of primary shards.
- Set the sl-elasticsearch.elasticsearch.master.resources.requests.cpu value to the listed CPU.
- Set the sl-elasticsearch.elasticsearch.master.resources.requests.memory value and the sl-elasticsearch.elasticsearch.master.resources.limits.memory value to the listed RAM.
- Set the sl-elasticsearch.elasticsearch.master.persistence.size value to the listed persistence storage size.
Configuring the Number of Primary Shards
Optimize your SystemLink configuration by ensuring that each service contains fewer primary shards than the number of nodes in Elasticsearch.
The following table contains configurations that NI tested at specific scales for the services.
| Service | Scale | Primary shards |
|---|---|---|
| Asset Service | 25000 assets | 1 |
| FileIngestion Service | 25 million files | 2 |
| FileIngestion Service | 80 million files | 4 |
| System Service | 3000 systems | 2 |
- Open the systemlink-values.yaml file.
- Set the number of shards for the following variables:
- assetservicecdc.job.connectors.sink.elasticsearch.index.primaryShardsCount
- fileingestioncdc.job.connectors.sink.elasticsearch.index.primaryShardsCount
- systemscdc.job.connectors.sink.elasticsearch.index.primaryShardsCount
- Save the systemlink-values.yaml file.
Related Information
- Configuring SystemLink Repositories
Configure the NI public Helm repository and mirror it on an internal server.
- Service Configurations
Set up the services that help run SystemLink Enterprise, including Demio, Elasticsearch, and Jupyter Notebook.