Skip to main content
This lesson shows how to download, extract, configure, and run the OpenTelemetry Collector binary (otelcol-contrib) on a Linux ARM64 host. You’ll learn how to pick the right release, place a minimal config file, and start the collector to receive OTLP telemetry (traces and metrics). Overview
Ensure you download the binary that matches your OS and CPU architecture (for example, linux/amd64 vs linux/arm64). This lesson demonstrates the Linux/ARM64 tarball.

Quick commands (summary)

StepCommand / ActionNotes
Download releaseSee the Releases page abovePick the tarball for your platform
Extract tarballtar -xzf otelcol-contrib_0.135.0_linux_arm64.tar.gzProduces the otelcol-contrib binary (and docs)
Start collector./otelcol-contrib --config=config.yaml--config points to the collector config file
Validate config./otelcol-contrib validate --config=config.yamlValidate config without running

1) Download and extract the release tarball

From the GitHub Releases page, download the tarball matching your platform. Example filename used in this lesson: otelcol-contrib_0.135.0_linux_arm64.tar.gz Extract the tarball (run from the directory containing the downloaded file):
After extraction you will have the otelcol-contrib binary (plus documentation). The binary is all that’s required for this demo.

2) Check flags and required config

If you run the collector without a configuration file, it will exit with an error:
To view available flags and commands:
Note: the important flag is --config (or --config=file:/path/to/config.yaml), which tells the collector where to load its configuration.

3) Minimal configuration example

Create a minimal config.yaml that accepts OTLP telemetry (traces and metrics) and uses the debug exporter (prints telemetry to the console). Save this file in the same directory as the otelcol-contrib binary:
This minimal config is useful for testing and local development. For production deployments you will typically add processors, exporters (e.g., OTLP/gRPC to backends), and security settings.

4) Start the collector with the config

Run the collector and point it at the config file:
Representative startup logs:
From the config and logs you can verify:
  • OTLP gRPC is listening on port 4317
  • OTLP HTTP is listening on port 4318
  • The debug exporter logs telemetry to stdout for inspection
Ports and endpoints
ProtocolEndpointUse case
OTLP gRPClocalhost:4317gRPC-based OTLP clients
OTLP HTTPhttp://localhost:4318HTTP-based OTLP clients

5) Validate and troubleshoot

  • Validate configuration without running the collector:
  • If the collector fails to start, check:
    • Binary architecture vs OS/CPU (ARM64 vs AMD64)
    • File permissions (make binary executable: chmod +x otelcol-contrib)
    • Config syntax and indentation (YAML errors)
    • Port conflicts on 4317 / 4318
If you see startup errors related to configuration or ports, use the validate command and inspect the logs printed by the debug exporter. Also confirm the downloaded binary matches your system architecture.

6) Next steps

  • Send telemetry to the collector:
    • gRPC OTLP clients -> localhost:4317
    • HTTP OTLP clients -> http://localhost:4318
  • For production usage, extend the configuration with processors (batching, sampling), secure receivers (TLS/auth), and exporters to your backend (e.g., OTLP/gRPC to an observability platform).
  • Explore otelcol-contrib components to list available receivers/exporters/processors in the binary.
Links and references

Watch Video