Loading

Quickstart for Docker on self-managed deployments

Elastic Stack Serverless Observability

Learn how to set up the EDOT Collector and EDOT SDKs in a Docker environment 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.

  1. Open Elastic Observability.
  2. Go to Add data.
  3. Select what you want to monitor.
  4. Follow the instructions.

Follow these steps to deploy the EDOT Collector and EDOT OTel SDKs in Docker.

  1. Create the config file

    Create the otel-collector-config.yml file with your EDOT Collector configuration. Refer to the configuration reference.

  2. Retrieve your settings

    Retrieve your Elasticsearch endpoint and API key.

  3. Create 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.0.0
    ELASTIC_API_KEY=<your_api_key_here>
    ELASTIC_ENDPOINT=<your_endpoint_here>
    OTEL_COLLECTOR_CONFIG=/path/to/otel-collector-config.yml
    
  4. 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_AGENT_OTEL
          - ELASTIC_API_KEY
          - ELASTIC_ENDPOINT
          - STORAGE_DIR=/usr/share/elastic-agent
    
  5. Start the Collector

    Start the Collector by running the following command:

    docker compose up -d
    
  6. Instrument your applications

    If you want to collect telemetry from applications running on the host where you installed the EDOT Collector, instrument your target applications:

    Configure your SDKs to send the data to the local EDOT Collector using OTLP/gRPC (http://localhost:4317) or OTLP/HTTP (http://localhost:4318).