diff --git a/reference/fleet/elastic-agent-container.md b/reference/fleet/elastic-agent-container.md index fd37fd8ddb..64f7928153 100644 --- a/reference/fleet/elastic-agent-container.md +++ b/reference/fleet/elastic-agent-container.md @@ -69,7 +69,9 @@ 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: +To run {{agent}} as a Synthetic Private Location using only lightweight monitors, use the `elastic-agent` (and the `wolfi` variant). + +To run {{agent}} as a Synthetic Private Location using both lightweight monitors and Synthetics Browser tests, run the following 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}} @@ -137,8 +139,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. ::: @@ -161,8 +162,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. ::: @@ -244,7 +244,6 @@ services: - FLEET_ENROLL=1 - FLEET_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`. diff --git a/solutions/observability/synthetics/migrate-from-elastic-synthetics-integration.md b/solutions/observability/synthetics/migrate-from-elastic-synthetics-integration.md index 737dbefb6b..cb99be7886 100644 --- a/solutions/observability/synthetics/migrate-from-elastic-synthetics-integration.md +++ b/solutions/observability/synthetics/migrate-from-elastic-synthetics-integration.md @@ -84,7 +84,14 @@ 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, 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}}. + +::::{note} +Only the `elastic-agent-complete` image (and its `wolfi` variant) allows you to run Synthetic Browser tests. + +:::: + +To create a new {{private-location}} from scratch, follow the 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. diff --git a/solutions/observability/synthetics/monitor-resources-on-private-networks.md b/solutions/observability/synthetics/monitor-resources-on-private-networks.md index 8788c1d14d..7c867ccdd5 100644 --- a/solutions/observability/synthetics/monitor-resources-on-private-networks.md +++ b/solutions/observability/synthetics/monitor-resources-on-private-networks.md @@ -56,10 +56,9 @@ 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. Additional installation methods can be found on the [{{agent}} installation guide](/reference/fleet/install-elastic-agents.md). ::::{important} -The `elastic-agent-complete` Docker image is the only way to have all available options that you see in the UI. +For running browser monitors on {{private-location}}s, you *must* use one of the `elastic-agent-complete` Docker image variants in a containerized environment. The standard {{agent}} variant only supports TCP, ICMP, and HTTP monitors. :::: @@ -67,31 +66,38 @@ To pull the Docker image run: ::::{tab-set} :group: docker -:::{tab-item} Latest -:sync: latest +:::{tab-item} elastic-agent-complete +:sync: specific -```shell subs=true +```sh subs=true +# Supports all monitor types: TCP, ICMP, HTTP and Browser docker pull docker.elastic.co/elastic-agent/elastic-agent-complete:{{version.stack}} ``` ::: -:::{tab-item} Specific version -:sync: specific +:::{tab-item} elastic-agent +:sync: latest -```sh subs=true -docker pull docker.elastic.co/elastic-agent/elastic-agent-complete: +```shell subs=true +# Supports TCP, ICMP and HTTP monitors +docker pull docker.elastic.co/elastic-agent/elastic-agent:{{version.stack}} ``` -You can download and install a specific version of the {{stack}} by replacing `` with the version number you want. For example, you can replace `` 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-complete +:sync: specific ```shell subs=true docker run \ @@ -103,8 +109,26 @@ 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-complete` container, when running as Synthetics Private Locations, requires additional capabilities to operate correctly. Ensure `NET_RAW` and `SETUID` are enabled on the container. + +::: + +:::{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}} +``` + +The `elastic-agent` container, when running as Synthetics Private Locations, requires additional capabilities to operate correctly. Ensure `NET_RAW` and `SETUID` are enabled on the container. + +::: :::: diff --git a/solutions/observability/synthetics/support-matrix.md b/solutions/observability/synthetics/support-matrix.md index fa337111ba..13f98a9923 100644 --- a/solutions/observability/synthetics/support-matrix.md +++ b/solutions/observability/synthetics/support-matrix.md @@ -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` variants: + + * `elastic-agent-complete`, exclusively provided as a Docker image which includes all dependencies required to run browser, 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