SigNoz Cloud - This page is relevant for SigNoz Cloud editions.
Self-Host - This page is relevant for self-hosted SigNoz editions.

VM Collection Agent - Install

This guide walks you through installing the OpenTelemetry Collector contrib binary on your virtual machine. We use the contrib distribution and tailor the steps for sending data to SigNoz.

Prerequisites

  • SigNoz application up and running (SigNoz Cloud or self-hosted)
  • SigNoz ingestion endpoint accessible from the VM
  • Availability of ports: 4317, 4318, 8888, 1777, 13133

OpenTelemetry Collector Installation

The DEB package installs the Collector as a systemd service on Debian or Ubuntu. After installation, the default configuration is at /etc/otelcol-contrib/config.yaml.

Prerequisites

  • Debian or Ubuntu (or compatible) system with systemd
  • sudo or root access
  • Network access to download packages

Step 1: Update package list

sudo apt-get update

Step 2: Download the package

ARCH=$(uname -m | sed 's/x86_64/amd64/g' | sed 's/aarch64/arm64/g')
curl -sSL -O "https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.139.0/otelcol-contrib_0.139.0_linux_${ARCH}.deb"

Step 3: Install the package

sudo dpkg -i otelcol-contrib_0.139.0_linux_${ARCH}.deb

Step 4: Create OpenTelemetry Collector Configuration

The following config is tailored for SigNoz usage (traces, metrics, logs). Copy the config to /etc/otelcol-contrib/config.yaml.

config.yaml
receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317
      http:
        endpoint: 0.0.0.0:4318
  hostmetrics:
    collection_interval: 60s
    scrapers:
      cpu: {}
      disk: {}
      load: {}
      filesystem: {}
      memory: {}
      network: {}
      paging: {}
      process:
        mute_process_name_error: true
        mute_process_exe_error: true
        mute_process_io_error: true
      processes: {}
processors:
  batch:
    send_batch_size: 1000
    timeout: 10s
  # Ref: https://signoz.io/docs/opentelemetry-collection-agents/opentelemetry-collector/configuration/#resource-processor
  resourcedetection:
    detectors: [env, host, system, docker, k8snode]
exporters:
  otlp:
    endpoint: https://ingest.<region>.signoz.cloud:443
    tls:
      insecure: false
    headers:
      signoz-ingestion-key: <your-ingestion-key>
service:
  pipelines:
    metrics:
      receivers: [otlp, hostmetrics]
      processors: [batch, resourcedetection]
      exporters: [otlp]
    traces:
      receivers: [otlp]
      processors: [batch, resourcedetection]
      exporters: [otlp]
    logs:
      receivers: [otlp]
      processors: [batch, resourcedetection]
      exporters: [otlp]

Verify the following values:

Step 5: Applying changes

After modifying the configuration or environment file, restart the service:

sudo systemctl restart otelcol-contrib

Step 6: Validate

Check that the collector is running:

sudo journalctl -u otelcol-contrib -f

You should see log lines indicating the receivers started successfully:

... Everything is ready. Begin running and processing data.

In SigNoz, navigate to Infrastructure Monitoring → Hosts and verify your host appears. If you have instrumented applications sending data, check Traces and Logs Explorer to confirm traces and logs are flowing.

Troubleshooting

No data appears in SigNoz after installation

Symptoms: Host does not appear in Infrastructure Monitoring → Hosts, or traces, metrics, or logs do not show in SigNoz despite the Collector running.

Likely causes: Collector not receiving data; incorrect SigNoz endpoint or ingestion key; network or firewall blocking egress.

Resolution: Add a debug exporter to verify whether the Collector receives telemetry. Append the snippet below to your existing config—do not replace your full config.

Add the debug exporter to your exporters section:

/etc/otelcol-contrib/config.yaml
exporters:
  debug:
    verbosity: detailed

Then add debug to each pipeline's exporters list (before otlp):

/etc/otelcol-contrib/config.yaml
service:
  pipelines:
    metrics:
      exporters: [debug, otlp]
    traces:
      exporters: [debug, otlp]
    logs:
      exporters: [debug, otlp]

The verbosity: detailed setting logs full telemetry payloads to the Collector output.

Verification: Restart the Collector and tail logs (journalctl -u otelcol-contrib -f for DEB/RPM, or tail -f otelcol-output.log for manual runs). If spans, metrics, or logs appear in the debug output but not in SigNoz, the issue is with the SigNoz exporter (endpoint, ingestion key, or network). Remove the debug exporter after troubleshooting.

Next Steps

Last updated: February 27, 2026

Edit on GitHub