Quickstart
🐳 Docker
🆂 Self-managed Elastic Stack
Learn how to set up the EDOT Collector and EDOT SDKs in a Docker environment to collect host metrics, logs and application traces.
Prerequisites
Make sure the following requirements are present:
- Docker installed and running.
- A Self-Managed Elasticsearch cluster up and running.
Instructions
Follow these steps to deploy the EDOT Collector and EDOT OTel SDKs in Docker.
-
Create the
otel-collector-config.yml
file with your EDOT Collector configuration. Refer to the configuration reference. -
Retrieve your Elasticsearch endpoint and API key.
-
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.0.0 ELASTIC_API_KEY=<your_api_key_here> ELASTIC_ENDPOINT=<your_endpoint_here> OTEL_COLLECTOR_CONFIG=/path/to/otel-collector-config.yml
-
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_AGENT_OTEL - ELASTIC_API_KEY - ELASTIC_ENDPOINT - STORAGE_DIR=/usr/share/elastic-agent
-
Start the Collector by running the following command:
docker compose up -d
-
(Optional) Instrument your applications
If you would like to collect telemetry from applications running on the host where you installed the EDOT Collector, you need to instrument your target applications according to the setup instructions for corresponding EDOT SDKs:
Configure your SDKs to send the data to the local EDOT Collector using OTLP/gRPC (
http://localhost:4317
) or OTLP/HTTP (http://localhost:4318
).