Skip to content
9 changes: 3 additions & 6 deletions reference/fleet/elastic-agent-container.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ docker pull docker.elastic.co/elastic-agent/elastic-agent-wolfi:{{version.stack}

### Complete flavor

If you want to run Synthetics tests, run the docker pull command to fetch the elastic-agent-complete image:
If you want to run Synthetics Browser tests, run the docker pull command to fetch the elastic-agent-complete image:

```terminal subs=true
docker pull docker.elastic.co/elastic-agent/elastic-agent-complete:{{version.stack}}
Expand Down Expand Up @@ -137,8 +137,7 @@ docker run \
1. Set to 1 to enroll the {{agent}} into {{fleet-server}}.
2. URL to enroll the {{fleet-server}} into. You can find it in {{kib}}. Select **Management → {{fleet}} → Fleet Settings**, and copy the {{fleet-server}} host URL.
3. The token to use for enrollment. Close the flyout panel and select **Enrollment tokens**. Find the Agent policy you want to enroll {{agent}} into, and display and copy the secret token. To learn how to create a policy, refer to [Create an agent policy without using the UI](/reference/fleet/create-policy-no-ui.md).
4. If you want to run **elastic-agent-complete** image, replace `elastic-agent` to `elastic-agent-complete`. Use the `elastic-agent` user instead of root to run Synthetics Browser tests. Synthetic tests cannot run under the root user. Refer to [Synthetics {{fleet}} Quickstart](/solutions/observability/synthetics/get-started.md) for more information.

4. Switch `elastic-agent` to `elastic-agent-complete` if you intend to use the complete version. Use the `elastic-agent` user instead of root to run Synthetics Browser tests. Synthetic tests cannot run under the root user. Refer to [Synthetics {{fleet}} Quickstart](/solutions/observability/synthetics/get-started.md) for more information.
Refer to [Environment variables](/reference/fleet/agent-environment-variables.md) for all available options.
:::

Expand All @@ -161,8 +160,7 @@ docker run \
3. The {{fleet}} service token. [Generate one in the {{fleet}} UI](/reference/fleet/fleet-enrollment-tokens.md#create-fleet-enrollment-tokens) if you don’t have one already.
4. ID of the {{fleet-server}} policy. We recommend only having one fleet-server policy. To learn how to create a policy, refer to [Create an agent policy without using the UI](/reference/fleet/create-policy-no-ui.md).
5. publish container port 8220 to host.
6. If you want to run the **elastic-agent-complete** image, replace `elastic-agent` with `elastic-agent-complete`. Use the `elastic-agent` user instead of root to run Synthetics Browser tests. Synthetic tests cannot run under the root user. Refer to [Synthetics {{fleet}} Quickstart](/solutions/observability/synthetics/get-started.md) for more information.

6. Switch `elastic-agent` to `elastic-agent-complete` if you intend to use the complete version. Use the `elastic-agent` user instead of root to run Synthetics Browser tests. Synthetic tests cannot run under the root user. Refer to [Synthetics {{fleet}} Quickstart](/solutions/observability/synthetics/get-started.md) for more information.
Refer to [Environment variables](/reference/fleet/agent-environment-variables.md) for all available options.
:::

Expand Down Expand Up @@ -244,7 +242,6 @@ services:
- FLEET_ENROLL=1
- FLEET_URL=<fleet-server-url>
```

1. Switch `elastic-agent` to `elastic-agent-complete` if you intend to use the complete version. Use the `elastic-agent` user instead of root to run Synthetics Browser tests. Synthetic tests cannot run under the root user. Refer to [Synthetics {{fleet}} Quickstart](/solutions/observability/synthetics/get-started.md) for more information.
2. Synthetic browser monitors require this set to `elastic-agent`.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ Find more details in [Use the {{synthetics-app}}](/solutions/observability/synth

## Where monitors run [synthetics-migrate-integration-location]

If you want to continue hosting on your infrastructure, you will need to create a {{private-location}} before creating monitors. If you have already have an {{agent}} running using `elastic-agent-complete`, you can [add it as a new {{private-location}}](/solutions/observability/synthetics/monitor-resources-on-private-networks.md#synthetics-private-location-add) in the {{synthetics-app}}. To create a new {{private-location}} from scratch, follow all instructions in [Monitor resources on private networks](/solutions/observability/synthetics/monitor-resources-on-private-networks.md).
If you want to continue hosting on your infrastructure, you will need to create a {{private-location}} before creating monitors. If you already have an {{agent}} running using `elastic-agent` or any of its variants, you can [add it as a new {{private-location}}](/solutions/observability/synthetics/monitor-resources-on-private-networks.md#synthetics-private-location-add) in the {{synthetics-app}}. To create a new {{private-location}} from scratch, follow all instructions in [Monitor resources on private networks](/solutions/observability/synthetics/monitor-resources-on-private-networks.md).

Alternatively, you can start hosting on Elastic’s global managed infrastructure. With Elastic’s global managed testing infrastructure, you can create and run monitors in multiple locations without having to manage your own infrastructure. Elastic takes care of software updates and capacity planning for you.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,42 +56,63 @@ By default {{private-location}}s are configured to allow two simultaneous browse

After setting up {{fleet}}, you’ll connect {{fleet}} to the {{stack}} or your Observability Serverless project and enroll an {{agent}} in {{fleet}}.

Elastic provides Docker images that you can use to run {{fleet}} and an {{agent}} more easily. For monitors running on {{private-location}}s, you *must* use the `elastic-agent-complete` Docker image to create a self-hosted {{agent}} node. The standard {{ecloud}} or self-hosted {{agent}} will not work.

Elastic provides Docker images that you can use to run {{fleet}} and an {{agent}} more easily. For running browser monitors on {{private-location}}s, you *must* use one of the `elastic-agent-complete` Docker image variants, as it includes the required dependencies. The standard {{agent}} variant only supports TCP, ICMP and HTTP monitors.
::::{important}
The `elastic-agent-complete` Docker image is the only way to have all available options that you see in the UI.
The `elastic-agent` Docker image variants are the only way to have all available options that you see in the UI.

::::

To pull the Docker image run:

::::{tab-set}
:group: docker
:::{tab-item} Latest
:::{tab-item} `elastic-agent`
:sync: latest

```shell subs=true
docker pull docker.elastic.co/elastic-agent/elastic-agent-complete:{{version.stack}}
# Supports TCP, ICMP and HTTP monitors
docker pull docker.elastic.co/elastic-agent/elastic-agent:{{version.stack}}
```

:::

:::{tab-item} Specific version
:::{tab-item} `elastic-agent-complete`
:sync: specific

```sh subs=true
docker pull docker.elastic.co/elastic-agent/elastic-agent-complete:<SPECIFIC.VERSION.NUMBER>
# Supports all monitor types: TCP, ICMP, HTTP and Browser
docker pull docker.elastic.co/elastic-agent/elastic-agent-complete:{{version.stack}}
```

You can download and install a specific version of the {{stack}} by replacing `<SPECIFIC.VERSION.NUMBER>` with the version number you want. For example, you can replace `<SPECIFIC.VERSION.NUMBER>` with {{version.stack.base}}.
:::

::::

You can download and install a specific version of the {{stack}} by replacing `{{version.stack}}` with the version number you want. For example, you can replace `{{version.stack}}` with {{version.stack.base}}.

Then enroll and run an {{agent}}. You’ll need an enrollment token and the URL of the {{fleet-server}}. You can use the default enrollment token for your policy or create new policies and [enrollment tokens](/reference/fleet/fleet-enrollment-tokens.md) as needed.

For more information on running {{agent}} with Docker, refer to [Run {{agent}} in a container](/reference/fleet/elastic-agent-container.md).

::::{tab-set}
:group: docker
:::{tab-item} `elastic-agent`
:sync: latest

```shell subs=true
docker run \
--env FLEET_ENROLL=1 \
--env FLEET_URL={fleet_server_host_url} \
--env FLEET_ENROLLMENT_TOKEN={enrollment_token} \
--cap-add=NET_RAW \
--cap-add=SETUID \
--rm docker.elastic.co/elastic-agent/elastic-agent:{{version.stack}}
```

:::

:::{tab-item} `elastic-agent-complete`
:sync: specific

```shell subs=true
docker run \
Expand All @@ -103,8 +124,12 @@ docker run \
--rm docker.elastic.co/elastic-agent/elastic-agent-complete:{{version.stack}}
```

:::

::::

::::{important}
The `elastic-agent-complete` Docker image requires additional capabilities to operate correctly. Ensure `NET_RAW` and `SETUID` are enabled on the container.
The `elastic-agent`/`elastic-agent-complete` container requires additional capabilities to operate correctly. Ensure `NET_RAW` and `SETUID` are enabled on the container.

::::

Expand Down
6 changes: 5 additions & 1 deletion solutions/observability/synthetics/support-matrix.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,11 @@ There are various components that make up the Synthetics solution, which are sup

* Any *inline* or *Zip URL* monitors configured with the beta Synthetics integration prior to 1.0.0, are not supported and will stop running in the future

* Shipped as the `elastic-agent-complete` Docker image
* Shipped as multiple `elastic-agent` Docker image variants:

* `elastic-agent-complete`, which includes all dependencies required to support browser monitors.
* `elastic-agent` which only supports TCP, HTTP and ICMP monitors.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* `elastic-agent` which only supports TCP, HTTP and ICMP monitors.
* `elastic-agent` which only supports TCP, HTTP, and ICMP monitors.


* Must have a direct connection to {{es}}

* Do not configure any ingest pipelines or Logstash output
Expand Down