Remote Elasticsearch output
Remote Elasticsearch outputs allow you to send Elastic Agent data to a remote Elasticsearch cluster. This is especially useful for data that you want to keep separate and independent from the deployment where you use Fleet to manage the agents.
A remote Elasticsearch cluster supports the same output settings as your main Elasticsearch cluster.
A bug has been found that causes Elastic Defend response actions to stop working when a remote Elasticsearch output is configured for an agent. This bug is currently being investigated and is expected to be resolved in an upcoming release.
Using a remote Elasticsearch output with a target cluster that has traffic filters enabled is not currently supported.
To configure a remote Elasticsearch cluster for your Elastic Agent data:
In Fleet, open the Settings tab.
In the Outputs section, select Add output.
In the Add new output flyout, provide a name for the output and select Remote Elasticsearch as the output type.
In the Hosts field, add the URL that agents should use to access the remote Elasticsearch cluster.
- To find the remote host address, in the remote cluster open Kibana and go to Management → Fleet → Settings.
- Copy the Hosts value for the default output.
- Back in your main cluster, paste the value you copied into the output Hosts field.
Create a service token to access the remote cluster.
Below the Service Token field, copy the API request.
In the remote cluster, open the Kibana menu and go to Management > Dev Tools.
Run the API request.
Copy the value for the generated token.
Back in your main cluster, paste the value you copied into the output Service Token field.
NoteTo prevent unauthorized access the Elasticsearch Service Token is stored as a secret value. While secret storage is recommended, you can choose to override this setting and store the password as plain text in the agent policy definition. Secret storage requires Fleet Server version 8.12 or higher. This setting can also be stored as a secret value or as plain text for preconfigured outputs. See Preconfiguration settings in the Kibana Guide to learn more.
Choose whether integrations should automatically be synchronized on the remote Elasticsearch cluster. Refer to Automatic integrations synchronization below to configure this feature.
Choose whether or not the remote output should be the default for agent integrations or for agent monitoring data. When set, Elastic Agents use this output to send data if no other output is set in the agent policy.
Select which performance tuning settings you’d prefer in order to optimize Elastic Agent for throughput, scale, or latency, or leave the default
balanced
setting.Add any advanced YAML configuration settings that you’d like for the output.
Click Save and apply settings.
After the output is created, you can update an Elastic Agent policy to use the new output and send data to the remote Elasticsearch cluster:
- In Fleet, open the Agent policies tab.
- Click the agent policy to edit it, then click Settings.
- To send integrations data, set the Output for integrations option to use the output that you configured in the previous steps.
- To send Elastic Agent monitoring data, set the Output for agent monitoring option to use the output that you configured in the previous steps.
- Click Save changes.
The remote Elasticsearch cluster is now configured.
If you have chosen not to automatically synchronize integrations, you need to make sure that for any integrations that have been added to your Elastic Agent policy, the integration assets have been installed on the remote Elasticsearch cluster. Refer to Install and uninstall Elastic Agent integration assets for the steps.
Elastic Stack
When enabled, this feature keeps integrations synced between your main Elasticsearch cluster and remote Elasticsearch clusters.
This feature requires setting up cross-cluster replication, which is available to Platinum and Enterprise subscriptions. Remote clusters must be running the same version of Elasticsearch as the main cluster or a newer version that is compatible with cross-cluster replication.
Remote clusters require access to the Elastic Package Registry to install integrations.
Configure cross-cluster replication on the remote cluster.
- In the remote cluster, open the Kibana menu and go to Stack Management > Remote Clusters.
- Refer to Remote clusters to add your main cluster (where the remote Elasticsearch output is configured) as a remote cluster.
- Go to Stack Management > Cross-Cluster Replication.
- Create a follower index named
fleet-synced-integrations-ccr-<output name>
that replicates thefleet-synced-integrations
leader index on the main cluster. - Resume replication once the follower index is created.
In the main cluster, in the Remote Kibana URL field, add the Kibana URL of the remote cluster.
Create an API key to access Kibana on the remote cluster.
- Below the Remote Kibana API Key field, copy the API request.
- In the remote cluster, open the Kibana menu and go to Management > Dev Tools.
- Run the API request.
- Copy the encoded value of the generated API key.
- Back in the main cluster, paste the value you copied into the Remote Kibana API Key field.