# Install OpenTelemetry on an EC2 instance

Copy as Markdown[Open in ChatGPT](https://chatgpt.com/?q=Read%20https%3A%2F%2Fdocs-docusaurus.kinsta.page%2Fopentelemetry%2Fconfiguration-options%2Finstall-opentelemetry-on-an-ec2-instance.md%20and%20help%20me%20with%20my%20question%20about%20this%20Coralogix%20documentation%20page.)[Open in Claude](https://claude.ai/new?q=Read%20https%3A%2F%2Fdocs-docusaurus.kinsta.page%2Fopentelemetry%2Fconfiguration-options%2Finstall-opentelemetry-on-an-ec2-instance.md%20and%20help%20me%20with%20my%20question%20about%20this%20Coralogix%20documentation%20page.)

This tutorial demonstrates how to set up OpenTelemetry Collector Contrib on a Linux EC2 instance. There are some optional sections in the example configuration that can be enabled as needed.

## Setup[​](#setup "Direct link to Setup")

### Installation[​](#installation "Direct link to Installation")

**STEP 1** If you don't already have one, create an EC2 instance.

**STEP 2** Download and install OpenTelemetry.

On [this page](https://github.com/open-telemetry/opentelemetry-collector-releases/releases), find and copy the otelcol-contrib download link for your OS and CPU architecture in the list of Assets.

For example:

```
For Debian based Linux on AMD64 CPU architecture:



otelcol-contrib_0.115.1_linux_amd64.deb



Link:



https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.115.1/otelcol-contrib_0.115.1_linux_amd64.deb
```

Download and install the desired package onto the EC2 host:

```
Example using the CLI:



wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.115.1/otelcol-contrib_0.115.1_linux_amd64.deb

sudo dpkg -i otelcol-contrib_0.115.1_linux_amd64.deb
```

**STEP 3** Configure

Review and replace the default `/etc/otelcol-contrib/config.yaml` with this example configuration. Adjust as necessary:

```
receivers:

  otlp:

    protocols:

      grpc: { endpoint: 0.0.0.0:4317 }

      http: { endpoint: 0.0.0.0:4318 }

  filelog:

    force_flush_period: 0

    include:

    - /var/log/syslog

    - /var/log/more/examples/*/*.log

    include_file_name: true

    include_file_path: false

    retry_on_failure:

      enabled: true

    start_at: beginning

    storage: file_storage

  hostmetrics:

    root_path: /

    collection_interval: 10s

    scrapers:

      cpu: { metrics: { system.cpu.utilization: { enabled: true } } }

      filesystem:

        exclude_fs_types: { fs_types: [autofs, binfmt_misc, bpf, cgroup2, configfs, debugfs, devpts, devtmpfs, fusectl, hugetlbfs, iso9660, mqueue, nsfs, overlay, proc, procfs, pstore, rpc_pipefs, securityfs, selinuxfs, squashfs, sysfs, tracefs], match_type: strict }

        exclude_mount_points: { match_type: regexp, mount_points: [/dev/*, /proc/*, /sys/*, /run/k3s/containerd/*, /run/containerd/runc/*, /var/lib/docker/*, /var/lib/kubelet/*, /snap/*] }

      memory: { metrics: { system.memory.utilization: { enabled: true } } }

      network:

      process:

        metrics:

          process.cpu.utilization: { enabled: true }

          process.memory.utilization: { enabled: true }

          process.threads: { enabled: true }

        mute_process_exe_error: true

        mute_process_user_error: true



processors:

  batch: { send_batch_max_size: 2048, send_batch_size: 1024, timeout: 1s }

  resourcedetection:

    detectors: [system, env, ec2]

    override: false

    timeout: 2s

  resource/metadata:

    attributes:

      - action: upsert

        key: cx.otel_integration.name

        value: coralogix-integration-OTEL-EC2-service

  resourcedetection/entity:

    detectors: [system, env, ec2, ecs]

    override: false

    timeout: 2s

    system:

      resource_attributes:

        host.id: { enabled: false }

        host.cpu.cache.l2.size: { enabled: true }

        host.cpu.stepping: { enabled: true }

        host.cpu.model.name: { enabled: true }

        host.cpu.model.id: { enabled: true }

        host.cpu.family: { enabled: true }

        host.cpu.vendor.id: { enabled: true }

        host.mac: { enabled: true }

        host.ip: { enabled: true }

        os.description: { enabled: true }

  transform/entity-event:

    error_mode: silent

    log_statements:

      - context: log

        statements:

          - set(attributes["otel.entity.id"]["host.id"], resource.attributes["host.id"])

          - merge_maps(attributes, resource.attributes, "insert")

      - context: resource

        statements:

          - keep_keys(attributes, [""])



exporters:

  coralogix:

    domain: "coralogix.com"

    private_key: "cxtp_ExampleSndYourDataAPIKey"

    application_name: "DefaultApplicationName"

    subsystem_name: "DefaultSubsystemName"

    # These configuration values can be used to dynamically set the application_name and subsystem_name

    # application_name_attributes:

    # - host.id

    # subsystem_name_attributes: 

    # - host.name

    timeout: 30s

  coralogix/resource_catalog:

    application_name: resource

    domain: "coralogix.com"

    private_key: "cxtp_ExampleSndYourDataAPIKey"

    logs:

      headers:

        X-Coralogix-Distribution: ec2-local-integration/0.0.1

        x-coralogix-ingress: metadata-as-otlp-logs/v1

    subsystem_name: catalog

    timeout: 30s



extensions:

  file_storage: { directory: /var/log/otelcol }



service:

  extensions:

  - file_storage

  pipelines:

    logs:

      receivers: [ filelog ]

      processors: [ resourcedetection, batch ]

      exporters: [ coralogix ]

    metrics:

      receivers: [ hostmetrics, otlp ]

      processors: [ resourcedetection, batch ]

      exporters: [ coralogix ]

    traces:

      receivers: [ otlp ]

      processors: [ resourcedetection, batch ]

      exporters: [ coralogix ]

    logs/resource_catalog:

      exporters:

        - coralogix/resource_catalog

      processors:

        - resource/metadata

        - resourcedetection/entity

        - transform/entity-event

      receivers:

        - hostmetrics
```

**Notes**:

* Ensure the file\_storage extension path is writable by your otelcol-contrib service.

* Coralogix recommends the default otel-integration chart settings for batch processors in all collectors. Learn more [here](https://docs-docusaurus.kinsta.page/opentelemetry/kubernetes-observability/faqs/.md#how-do-i-optimize-batch-sizing).

* Learn more about [receivers and exporters](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/coralogixexporter), the [`filelog` receiver](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/filelogreceiver), and the [`hostmetrics` receiver](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/hostmetricsreceiver).

* Due to Linux permissions, you'll likely get errors in the otelcol-contrib service logs. There are options in the [`hostmetrics` reciever process config](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/hostmetricsreceiver#process) to mute these errors. We've enabled the mute\_process\_exe\_error and mute\_process\_user\_error in our example configuration.

**STEP 4** Reload service

To consume the new configuration, you'll need to restart the service. Depending on which package you installed, the process will be different.

Example:

```
Systems with systemctl:



sudo systemctl restart otelcol-contrib
```

Check service logs to ensure proper function.

# Custom configurations

## file\_storage extension[​](#file_storage-extension "Direct link to file_storage extension")

The file\_storage extension is used to provide the OTEL Collector space on the local filesystem to store checkpoints or other files. As Linux permissions are user based, and OTEL Collector service runs as otelcol-contrib, you'll need to designate an approprite folder with appropriate write permissions for that user.

## Dynamic application and subsystem names[​](#dynamic-application-and-subsystem-names "Direct link to Dynamic application and subsystem names")

The Coralogix Exporter supports dynamic application and subsystem names through the use of `application_name_attributes` and `subsystem_name_attributes` configuration options. You can use any resource attribute from your enriched payloads as the keys. The first key that is non-null will be used. If all options are null, it will fall back to the value set in `application_name` and `subsystem_name`.

## Resource Catalog[​](#resource-catalog "Direct link to Resource Catalog")

The Resource Catalog configuration will submit EC2 metadata to Coralogix for inclusion in your Resource Catalog. You'll be able to review your EC2 metrics and relavent details alongside the rest of your various hosts.

The resource catalog is composed of three components:

* resourcedetection/entity processor
* transform/entity-event processor
* coralogix/resource\_catalog exporter

## Collect EC2 Tags[​](#collect-ec2-tags "Direct link to Collect EC2 Tags")

To add EC2 tags, add a role to your instance.

[![](data:image/webp;base64,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)](data:image/webp;base64,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)

### Create a New Policy[​](#create-a-new-policy "Direct link to Create a New Policy")

**STEP 1**. Navigate to **IAM** > **Policies**. Click **Create policy**.

**STEP 2**. Select the following options.

[![](/assets/images/Untitled-15-1024x562-b6001f758417b423153d0b03868b9126.webp)](https://docs-docusaurus.kinsta.page/assets/images/Untitled-15-1024x562-b6001f758417b423153d0b03868b9126.webp)

**STEP 3**. Enter a policy name. Click **Save**.

### Create a New Role[​](#create-a-new-role "Direct link to Create a New Role")

**STEP 1**. Navigate to **IAM** > **Roles**. Click **Create role**.

**STEP 2**. Select the following options.

[![](/assets/images/Untitled-16-1024x587-70906c8b2bdfaffd60155a0331bb139f.webp)](https://docs-docusaurus.kinsta.page/assets/images/Untitled-16-1024x587-70906c8b2bdfaffd60155a0331bb139f.webp)

**STEP 3**. Click **Next**.

**STEP 4**. Click on the checkbox next to the rule you just created.

**STEP 5**. Enter a rule name. Click **Create rule**.

### Add IAM Role to Your Instance[​](#add-iam-role-to-your-instance "Direct link to Add IAM Role to Your Instance")

**STEP 1**. Open your instance from the EC2 instance screen.

**STEP 2**. Add the IAM role to the empty IAM.

[![](/assets/images/Untitled-17-1024x496-cf4c712317f4dc9b3247e32ea0ac3fe0.webp)](https://docs-docusaurus.kinsta.page/assets/images/Untitled-17-1024x496-cf4c712317f4dc9b3247e32ea0ac3fe0.webp)

**STEP 3**. Select the IAM role. Click **Update IAM role**.

[![](/assets/images/Untitled-18-1024x407-f04b944305ca5f35147f045c22a80ff4.webp)](https://docs-docusaurus.kinsta.page/assets/images/Untitled-18-1024x407-f04b944305ca5f35147f045c22a80ff4.webp)

**STEP 4**. Allow tags in the metadata instance.

[![](/assets/images/Untitled-19-1024x450-d6b6f079c3b1f8a5f72d932c47d5e5be.webp)](https://docs-docusaurus.kinsta.page/assets/images/Untitled-19-1024x450-d6b6f079c3b1f8a5f72d932c47d5e5be.webp)

**STEP 5**. Update the `resourcedetection` processor at the processors.

```
resourcedetection:

    # ecs & docker detectors not required when using ecslogresourcedetection for logs

    detectors: [env, ec2, system]

    ec2:

      tags:

        - ^TagName$

    timeout: 2s

    override: false
```

**Notes**:

* It is mandatory to specify the tags parameter, as it is not added by default.

* Set any Regex to limit the number of tags or use `^.*$` to get all tags.

## Validation[​](#validation "Direct link to Validation")

Start Otel to validate your setup, using this example from Ubuntu Linux.

```
/usr/bin/otelcol-contrib --config=file:/etc/otelcol-contrib/config.yaml
```
