Quickstart for Docker on Elastic Cloud Hosted
Stack Serverless Observability
Learn how to set up the EDOT Collector and EDOT SDKs in a Docker environment with Elastic Cloud Hosted (ECH) to collect host metrics, logs, and application traces.
Make sure the following requirements are present:
- Docker installed and running.
- The System integration is installed in Kibana. Select Add integration only to skip the agent installation, as only the integration assets are required.
Use the Add data screen in Elastic Observability to generate install commands that are already configured with the values you need.
- Open Elastic Observability.
- Go to Add data.
- Select what you want to monitor.
- Follow the instructions.
Follow these steps to deploy the EDOT Collector and EDOT OTel SDKs in Docker with ECH.
-
Create the config file
Create the
otel-collector-config.yml
file with your EDOT Collector configuration. Refer to the configuration reference. -
Retrieve your settings
Retrieve your Elasticsearch URL and your API key:
Retrieve the Elasticsearch URL for your Elastic Cloud deployment:
- Go to the Elastic Cloud console.
- Next to your deployment, select Manage.
- Under Applications next to Elasticsearch, select Copy endpoint.
Create an API Key following these instructions.
-
the .env file
Create an
.env
file with the following content. Replace the placeholder values with your Elastic Cloud credentials:HOST_FILESYSTEM=/ DOCKER_SOCK=/var/run/docker.sock ELASTIC_AGENT_OTEL=true COLLECTOR_CONTRIB_IMAGE=elastic/elastic-agent:9.1.0 ELASTIC_API_KEY=<your_api_key_here> ELASTIC_ENDPOINT=<your_endpoint_here> OTEL_COLLECTOR_CONFIG=/path/to/otel-collector-config.yml
-
Create the compose file
Create a
compose.yml
file with the following content:services: otel-collector: image: ${COLLECTOR_CONTRIB_IMAGE} container_name: otel-collector deploy: resources: limits: memory: 1.5G restart: unless-stopped command: ["--config", "/etc/otelcol-config.yml" ] network_mode: host user: 0:0 volumes: - ${HOST_FILESYSTEM}:/hostfs:ro - ${DOCKER_SOCK}:/var/run/docker.sock:ro - ${OTEL_COLLECTOR_CONFIG}:/etc/otelcol-config.yml environment: - HOST_FILESYSTEM - ELASTIC_API_KEY - ELASTIC_ENDPOINT - ELASTIC_AGENT_OTEL - STORAGE_DIR=/usr/share/elastic-agent
-
Start the Collector
Start the Collector by running:
docker compose up -d
-
(Optional) Instrument your applications
To collect telemetry from applications and use the EDOT Collector as a gateway, instrument your target applications following the setup instructions:
Configure your SDKs to send the data to the local EDOT Collector using OTLP/gRPC (
http://localhost:4317
) or OTLP/HTTP (http://localhost:4318
).
Having issues with EDOT? Refer to the Troubleshooting common issues with the EDOT Collector and Troubleshooting the EDOT SDKs for help.