Skip to content

Commit bbae93a

Browse files
authored
Merge branch 'main' into nesting-snapshot-tutorials
2 parents f2f54fd + cbb8309 commit bbae93a

13 files changed

+174
-116
lines changed
106 KB
Loading
Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,45 @@
11
---
2-
navigation_title: Manage {{agent}}s in {{fleet}}
2+
navigation_title: Manage {{agents}} in {{fleet}}
33
mapped_pages:
44
- https://www.elastic.co/guide/en/fleet/current/manage-agents-in-fleet.html
55
products:
66
- id: fleet
77
- id: elastic-agent
88
---
99

10-
# Centrally manage {{agent}}s in {{fleet}} [manage-agents-in-fleet]
10+
# Centrally manage {{agents}} in {{fleet}} [manage-agents-in-fleet]
1111

12-
13-
::::{admonition}
1412
The {{fleet}} app in {{kib}} supports both {{agent}} infrastructure management and agent policy management. You can use {{fleet}} to:
1513

16-
* Manage {{agent}} binaries and specify settings installed on the host that determine whether the {{agent}} is enrolled in {{fleet}}, what version of the agent is running, and which agent policy is used.
17-
* Manage agent policies that specify agent configuration settings, which integrations are running, whether agent monitoring is turned on, input settings, and so on.
14+
- Manage {{agent}} binaries and specify settings installed on the host that determine whether the agent is enrolled in {{fleet}}, what version of the agent is running, and which agent policy is used.
15+
- Manage agent policies that specify agent configuration settings, which integrations are running, whether agent monitoring is turned on, input settings, and more.
1816

1917
Advanced users who don’t want to use {{fleet}} for central management can use an external infrastructure management solution and [install {{agent}} in standalone mode](/reference/fleet/install-standalone-elastic-agent.md) instead.
2018

21-
::::
22-
23-
2419
::::{important}
2520
{{fleet}} currently requires a {{kib}} user with `All` privileges on {{fleet}} and {{integrations}}. Since many Integrations assets are shared across spaces, users need the {{kib}} privileges in all spaces. Refer to [Required roles and privileges](/reference/fleet/fleet-roles-privileges.md) to learn how to create a user role with the required privileges to access {{fleet}} and {{integrations}}.
26-
2721
::::
2822

23+
To learn how to add {{agents}} to {{fleet}}, refer to [Install {{fleet}}-managed {{agents}}](/reference/fleet/install-fleet-managed-elastic-agent.md).
2924

30-
To learn how to add {{agent}}s to {{fleet}}, refer to [Install {{fleet}}-managed {{agent}}s](/reference/fleet/install-fleet-managed-elastic-agent.md).
31-
32-
To use {{fleet}} go to **Management > {{fleet}}** in {{kib}}. The following table describes the main management actions you can perform in {{fleet}}:
25+
Find **{{fleet}}** in the {{kib}} navigation menu, or use the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). The following table describes the main management actions you can perform in {{fleet}}:
3326

3427
| Component | Management actions |
3528
| --- | --- |
36-
| [{{fleet}} settings](/reference/fleet/fleet-settings.md) | Configure global settings available to all {{agent}}s managed by {{fleet}},including {{fleet-server}} hosts and output settings. |
37-
| [{{agent}}s](/reference/fleet/manage-agents.md) | Enroll, unenroll, upgrade, add tags, and view {{agent}} status and logs. |
29+
| [{{fleet}} settings](/reference/fleet/fleet-settings.md) | Configure global settings available to all {{agents}} managed by {{fleet}}, including {{fleet-server}} hosts and output settings. |
30+
| [{{agents}}](/reference/fleet/manage-agents.md) | Enroll, unenroll, upgrade, add tags, and view {{agent}} status and logs. |
3831
| [Policies](/reference/fleet/agent-policy.md) | Create and edit agent policies and add integrations to them. |
3932
| [{{fleet}} enrollment tokens](/reference/fleet/fleet-enrollment-tokens.md) | Create and revoke enrollment tokens. |
4033
| [Uninstall tokens](/solutions/security/configure-elastic-defend/prevent-elastic-agent-uninstallation.md) | ({{elastic-defend}} integration only) Access tokens to allow uninstalling {{agent}} from endpoints with Agent tamper protection enabled. |
4134
| [Data streams](/reference/fleet/data-streams.md) | View data streams and navigate to dashboards to analyze your data. |
4235

36+
## Global {{fleet}} management
4337

38+
In {{fleet}} deployments where {{agents}} are installed in diverse locations and where data must be stored in local clusters, operators need a unified view of all agents and a central management interface for tasks like upgrades, policy organization, and metrics collection. {{fleet}} offers features to facilitate this deployment model:
4439

40+
- [Remote {{es}} output](/reference/fleet/remote-elasticsearch-output.md): Configure {{agents}} to send data to remote {{es}} clusters while still sending their check-in payloads to the management cluster. This allows {{fleet}} on the management cluster to maintain a global view of all agents while the ingested data is routed to the agents' respective local clusters.
41+
- [Automatic integrations synchronization](/reference/fleet/automatic-integrations-synchronization.md) {applies_to}`stack: ga 9.1.0`: Install an integration once in the management cluster and use {{fleet}} to synchronize and update the integration across all remote clusters. This enables you to initiate services like [OSquery](integration-docs://reference/osquery-intro.md) from the management cluster, and to collect and display responses from dispersed agents in {{fleet}} on the central management cluster.
4542

46-
47-
48-
43+
:::{image} images/manage-agents-global-fleet.png
44+
:alt: A diagram showing Elastic Agents connected to remote data clusters and to a Fleet management cluster
45+
:::

reference/fleet/upgrade-elastic-agent.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ You can do rolling upgrades to avoid exhausting network resources when updating
101101

102102
5. Upgrade the agents.
103103

104+
Note that agents in a rollout period have the status `Updating` until the upgrade is complete, even if the upgrade has not started yet.
104105

105106
## Schedule an upgrade [schedule-agent-upgrade]
106107

@@ -245,7 +246,9 @@ To configure an automatic rollout of a new minor or patch version to a percentag
245246
7. You can then add a different target version, and specify the percentage of agents you want to be upgraded to that version. The total percentage of agents to be upgraded cannot exceed 100%.
246247
8. Click **Save**.
247248

248-
Once the configuration is saved, an asynchronous task runs every 30 minutes, gradually upgrading the agents in the policy to the specified target version.
249+
Once the configuration is saved, an asynchronous task runs every 30 minutes, upgrading the agents in the policy to the specified target version.
250+
251+
If the number of agents to be upgraded is greater than or equal to 10, a rollout period is automatically applied. The rollout duration is either 10 minutes or `nAgents * 0.03` seconds, whichever is greater.
249252

250253
In case of any failed upgrades, the upgrades are retried with exponential backoff mechanism until the upgrade is successful, or the maximum number of retries is reached. Note that the maximum number of retries is the number of [configured retry delays](#auto-upgrade-settings).
251254

174 KB
Loading
-75.9 KB
Loading
-17 KB
Loading
-182 KB
Loading
-180 KB
Loading

solutions/observability/apm/collect-application-data.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ Use Elastic APM agents or an OpenTelemetry language SDK to instrument a service
3535
| **Data protocol** | [OpenTelemetry protocol (OTLP)](https://opentelemetry.io/docs/specs/otel/protocol/) | Elastic protocol |
3636
| **Central configuration** | {applies_to}`product: preview` Supported<br>*Refer to* [*Central configuration*](opentelemetry://reference/central-configuration.md) | Supported<br>*Refer to* [*APM agent central configuration*](/solutions/observability/apm/apm-agent-central-configuration.md) |
3737

38+
For a comparison of EDOT and APM data streams, refer to [Comparison with classic APM data streams](opentelemetry://reference/compatibility/data-streams.md#comparison-with-classic-apm-data-streams).
39+
3840
### Availability [apm-collect-data-availability]
3941

4042
| Language | Elastic Distributions of OpenTelemetry (EDOT) | Elastic APM agent |

solutions/observability/get-started/quickstart-elastic-cloud-otel-endpoint.md

Lines changed: 128 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -6,126 +6,185 @@ applies_to:
66
serverless:
77
---
88

9-
# Quickstart: Send data to the Elastic Cloud Managed OTLP Endpoint
9+
# Quickstart: Send data to the {{motlp}}
1010

11-
In this quickstart guide, you'll learn how to use the [{{ecloud}} Managed OTLP Endpoint](opentelemetry://reference/motlp.md) to send logs, metrics, and traces to Elastic.
11+
The {{motlp}} is a fully managed offering exclusively for Elastic Cloud users that simplifies OpenTelemetry data ingestion. It provides an endpoint for OpenTelemetry SDKs and Collectors to send telemetry data, with Elastic handling scaling, data processing, and storage. Refer to [{{motlp}}](opentelemetry://reference/motlp.md) for more information.
1212

13-
::::{warning}
14-
This functionality is in technical preview and may be changed or removed in a future release. Elastic will work to fix any issues, but features in technical preview are not subject to the support SLA of official GA features.
15-
::::
13+
This endpoint is designed for the following use cases:
14+
15+
* Logs & Infrastructure Monitoring: Logs forwarded in OTLP format and host and Kubernetes metrics in OTLP format.
16+
* APM: Application telemetry in OTLP format.
17+
18+
In this quickstart guide, you'll learn how to use the {{motlp}} to send logs, metrics, and traces to Elastic.
1619

1720
## Prerequisites
1821

1922
* An {{obs-serverless}} project. To learn more, refer to [create an Observability project](/solutions/observability/get-started.md).
2023
* A system forwarding logs, metrics, or traces in OTLP (any EDOT Collector or SDK—EDOT or community).
2124

22-
### Limitations
25+
## Get started
2326

24-
* The {{ecloud}} Managed OTLP Endpoint only supports histograms with delta temporality. Cumulative histograms are dropped.
25-
* Latency distributions based on histogram values have limited precision due to the fixed boundaries of explicit bucket histograms.
27+
## Send data to Elastic
2628

27-
## Get started
29+
Follow these steps to send data to Elastic using the {{motlp}}.
2830

29-
### Get your native OTLP endpoint credentials
31+
::::::{stepper}
3032

31-
1. [Create a new Observability project](/solutions/observability/get-started.md), or open an existing one.
33+
:::::{step} Check the requirements
3234

33-
1. In your {{obs-serverless}} project, go to **Add Data**.
35+
To use the {{motlp}} you need the following:
3436

35-
1. Under **What do you want to monitor?** select **Application**, and then under **Monitor your application using** select **OpenTelemetry**.
37+
* An Elastic Observability Serverless project. Security projects are not yet supported.
38+
* An OTLP-compliant shipper capable of forwarding logs, metrics, or traces in OTLP format. This can include the OpenTelemetry Collector (EDOT, Contrib, or other distributions), OpenTelemetry SDKs (EDOT, upstream, or other distributions), or any other forwarder that supports the OTLP protocol.
3639

37-
:::{note}
38-
Follow this flow for all use cases, including logs and infrastructure monitoring.
39-
:::
40+
:::::
4041

41-
1. Copy the `OTEL_EXPORTER_OTLP_ENDPOINT` URL. Replace `.apm` with `.ingest` and save this value for later.
42+
:::::{step} Locate your {{motlp}}
4243

43-
### Create an API key
44+
To retrieve your {{motlp}} endpoint address and an API key, follow these steps:
4445

45-
1. Click **Create an API Key** to generate a new API key. Copy this value for later.
46-
1. (Optional) Test your new API key by sending an empty JSON object to the `/v1/traces` endpoint. For example:
46+
1. In {{ecloud}}, create an Observability project or open an existing one.
47+
2. Select your project's name and then select **Manage project**.
48+
3. Locate the **Connection alias** and select **Edit**.
49+
4. Copy the **Managed OTLP endpoint** URL.
4750

48-
```bash
49-
curl -X POST \
50-
-H "Content-Type: application/json" \
51-
-H "Authorization: ApiKey <api-key>" \
52-
https://{YOUR_CLUSTER}.ingest.us-east-1.aws.elastic.cloud:443/v1/traces \
53-
-d '{}'
54-
```
51+
% ## commented out until mOTLP on ECH is available
52+
% ### Elastic Cloud on Elasticsearch ({{ech}})
53+
% 1. Open your deployment in the Elastic Cloud console.
54+
% 2. Navigate to **Integrations** and find **OpenTelemetry** or **Managed OTLP**.
55+
% 3. Copy the endpoint URL shown.
56+
% ## Self-Managed
57+
% For self-managed environments, you can deploy and expose an OTLP-compatible endpoint using the EDOT Collector as a gateway. Refer to [EDOT deployment docs](https://www.elastic.co/docs/reference/opentelemetry/edot-collector/modes#edot-collector-as-gateway).
58+
%
59+
% :::{note}
60+
% Please reach out to support, and then Engineering can look into increasing it based on the license tier or for experimentation purposes.
61+
% :::
5562

56-
The response should be similar to:
63+
:::::
5764

58-
```txt
59-
{"partialSuccess":{}}%
60-
```
65+
:::::{step} Create an API key
6166

62-
### Send data to your Elastic Cloud Managed OTLP endpoint
67+
Generate an API key with appropriate ingest privileges to authenticate OTLP traffic:
6368

64-
* [I have an EDOT Collector/SDK running](#otel-sdk-running)
65-
* [I need an EDOT Collector/SDK](#no-sdk-running)
66-
* [I just want to use the instrumentation](#instrumentation-please)
69+
1. In {{ecloud}}, go to **Manage project****API Keys**.
70+
2. Select **Create API Key**.
71+
3. Name the key. For example, `otlp-client`.
72+
4. Edit the optional security settings.
73+
5. Select **Create API Key**.
74+
6. Copy the key to the clipboard.
75+
76+
Add this key to your final API key string. For example:
77+
78+
```
79+
Authorization: ApiKey <your-api-key>
80+
```
6781

68-
#### I have an EDOT Collector/SDK running [otel-sdk-running]
82+
:::{important}
83+
The API key copied from Kibana does not include the `ApiKey` scheme. Always prepend `ApiKey ` before using it in your configuration or encoding it for Kubernetes secrets. For example:
6984

70-
If you have an OpenTelemetry Collector or SDK exporting telemetry data,
71-
configure it with the endpoint and API key generated in the previous steps.
85+
- Correct: `Authorization: ApiKey abc123`
86+
- Incorrect: `Authorization: abc123`
87+
:::
7288

73-
**OpenTelemetry Collector configuration**
89+
:::::
7490

75-
Configure your EDOT Collector as follows:
91+
:::::{step} Send data to the {{motlp}}
92+
93+
The final step is to use the {{motlp}} endpoint and your Elastic API key to send data to {{ecloud}}.
94+
95+
::::{tab-set}
96+
97+
:::{tab-item} OpenTelemetry Collector example
98+
To send data to the {{motlp}} from the {{edot}} Collector or the upstream Collector, configure the `otlp` exporter:
7699

77100
```yaml
78101
exporters:
79102
otlp:
80-
endpoint: "https://my_cluster.ingest.us-east-1.aws.elastic.cloud:443/v1/traces"
81-
headers: "Authorization": "ApiKey <api-key-value-here>"
103+
endpoint: https://<motlp-endpoint>
104+
headers:
105+
Authorization: ApiKey <your-api-key>
82106
```
83107
84-
For more information, see [OTLP Collector configuration](https://opentelemetry.io/docs/collector/configuration/).
108+
Set the API key as an environment variable or directly in the configuration as shown in the example.
109+
:::
110+
111+
:::{tab-item} OpenTelemetry SDK example
112+
To send data to the {{motlp}} from {{edot}} SDKs or upstream SDKs, set the following variables in your application's environment:
85113
86-
**Elastic Distributions of OpenTelemetry (EDOT) Collector configuration**
114+
```bash
115+
export OTEL_EXPORTER_OTLP_ENDPOINT="https://<motlp-endpoint>"
116+
export OTEL_EXPORTER_OTLP_HEADERS="Authorization=ApiKey <your-api-key>"
117+
```
87118

88-
Configure an EDOT Collector using the same method described above in **OpenTelemetry Collector configuration**.
89-
See the [EDOT Language SDK documentation](opentelemetry://reference/edot-collector/index.md) for more information.
119+
Avoid extra spaces in the header. For Python SDKs replace any spaces with `%20`. For example:
90120

91-
**OpenTelemetry SDK configuration**
121+
```
122+
OTEL_EXPORTER_OTLP_HEADERS=Authorization=ApiKey%20<your-api-key>`
123+
```
124+
:::
92125

93-
Configure your OTel SDK with the following environment variables:
126+
:::{tab-item} Kubernetes example
127+
You can store your API key in a Kubernetes secret and reference it in your OTLP exporter configuration. This is more secure than hardcoding credentials.
94128

95-
* Elastic Cloud Managed OTLP endpoint: `OTEL_EXPORTER_OTLP_ENDPOINT`
96-
* Elastic API key: `OTEL_EXPORTER_OTLP_HEADERS`
129+
The API key from Kibana does not include the `ApiKey` scheme. You must prepend `ApiKey ` before storing it.
97130

98-
For example:
131+
For example, if your API key from Kibana is `abc123`, run:
99132

100133
```bash
101-
export OTEL_EXPORTER_OTLP_ENDPOINT="https://my-api-endpoint:443"
102-
export OTEL_EXPORTER_OTLP_HEADERS="Authorization=ApiKey <api-key>"
134+
kubectl create secret generic otlp-api-key \
135+
--namespace=default \
136+
--from-literal=api-key="ApiKey abc123"
103137
```
104138

105-
For more information, see [OTLP Exporter configuration](https://opentelemetry.io/docs/languages/sdk-configuration/otlp-exporter/).
139+
Mount the secret as an environment variable or file, then reference it in your OTLP exporter configuration:
106140

107-
**Elastic Distributions of OpenTelemetry (EDOT) SDK configuration**
141+
```yaml
142+
exporters:
143+
otlp:
144+
endpoint: https://<motlp-endpoint>
145+
headers:
146+
Authorization: ${API_KEY}
147+
```
108148
109-
Configure an EDOT SDK using the same method described above in **OpenTelemetry SDK configuration**.
110-
See the [EDOT Language SDK documentation](opentelemetry://reference/edot-sdks/index.md) for more information.
149+
And in your deployment spec:
111150
112-
#### I need an EDOT Collector/SDK [no-sdk-running]
151+
```yaml
152+
env:
153+
- name: API_KEY
154+
valueFrom:
155+
secretKeyRef:
156+
name: otlp-api-key
157+
key: api-key
158+
```
113159
114-
Don't have a collector or SDK running? No problem. Spin up an EDOT collector in just a few steps:
160+
:::{important}
161+
When creating a Kubernetes secret, always encode the full string in Base64, including the scheme (for example, `ApiKey abc123`).
162+
:::
163+
:::
115164

116-
* [Kubernetes Quickstart](opentelemetry://reference/quickstart/serverless/k8s.md)
117-
* [Hosts & VMs Quickstart](opentelemetry://reference/quickstart/serverless/hosts_vms.md)
165+
::::
166+
167+
:::::
118168

119-
% Commenting out Docker until the docs are ready
120-
% * [Docker Quickstart](opentelemetry://reference/quickstart/serverless/docker.md)
169+
::::::
121170

122-
#### I just want to use the instrumentation [instrumentation-please]
171+
## Differences from the Elastic APM Endpoint
123172

124-
See [application use-cases](opentelemetry://reference/edot-sdks/index.md) for more information.
173+
The Elastic Cloud Managed OTLP Endpoint ensures that OpenTelemetry data is stored without any schema translation, preserving both OpenTelemetry semantic conventions and resource attributes. It supports ingesting OTLP logs, metrics, and traces in a unified manner, ensuring consistent treatment across all telemetry data. This marks a significant improvement over the [existing functionality](/solutions/observability/apm/use-opentelemetry-with-apm.md), which primarily focuses on traces and the APM use case.
125174

126175
## Troubleshoot
127176

128-
**Api Key prefix not found**
177+
The following sections provide troubleshooting information for the {{motlp}}.
178+
179+
### I don't have a Collector or SDK running
180+
181+
Don't have a collector or SDK running? Spin up an EDOT collector in just a few steps:
182+
183+
* [Kubernetes Quickstart](opentelemetry://reference/quickstart/serverless/k8s.md)
184+
* [Hosts & VMs Quickstart](opentelemetry://reference/quickstart/serverless/hosts_vms.md)
185+
* [Docker Quickstart](opentelemetry://reference/quickstart/serverless/docker.md)
186+
187+
### Api Key prefix not found
129188

130189
The following error is due to an improperly formatted API key:
131190

@@ -135,11 +194,11 @@ Exporting failed. Dropping data.
135194
"Unauthenticated desc = ApiKey prefix not found"
136195
```
137196

138-
You must format your API key as `"Authorization": "ApiKey <api-key-value-here>"` or `"Authorization=ApiKey <api-key>"` depending on whether you're using a collector or SDK. See [I have an EDOT Collector/SDK running](#otel-sdk-running) for more information.
197+
You must format your API key as `"Authorization": "ApiKey <api-key-value-here>"` or `"Authorization=ApiKey <api-key>"` depending on whether you're using a collector or SDK.
139198
140-
**Error: too many requests**
199+
### Error: too many requests
141200
142-
The Managed endpoint has per-project rate limits in place. If you hit this limit, reach out to our [support team](https://support.elastic.co).
201+
The Managed OTLP endpoint has per-project rate limits in place. If you hit this limit, reach out to our [support team](https://support.elastic.co). Refer to [Rate limiting](opentelemetry://reference/motlp.md#rate-limiting) for more information.
143202
144203
## Provide feedback
145204

0 commit comments

Comments
 (0)