---
title: IoT Agent
description: >-
  Monitor IoT devices and embedded applications with the optimized Datadog IoT
  Agent for resource-constrained environments.
breadcrumbs: Docs > Agent > IoT Agent
---

# IoT Agent

## Overview{% #overview %}

The Datadog IoT Agent is a version of the Agent optimized for monitoring IoT devices and embedded applications. Customers use the IoT Agent to monitor a wide variety of devices from digital displays to security devices running image detection algorithms.

## Capabilities{% #capabilities %}

The IoT Agent includes the following system checks. Configuration for IoT devices is identical to other types of hosts.

- [System](https://docs.datadoghq.com/integrations/system) (includes CPU, IO, load, memory, swap, and uptime)
- [Disk](https://docs.datadoghq.com/integrations/disk)
- [Network](https://docs.datadoghq.com/integrations/network)
- [Systemd](https://docs.datadoghq.com/integrations/systemd)
- [NTP](https://docs.datadoghq.com/integrations/ntp)

The IoT Agent also supports:

- Custom metric collection using an embedded [DogStatsD](https://docs.datadoghq.com/extend/dogstatsd) server
- Log collection using [tailing files](https://docs.datadoghq.com/agent/logs/?tab=tailfiles#custom-log-collection), [TCP/UDP](https://docs.datadoghq.com/agent/logs/?tab=tcpudp#custom-log-collection), and [journald](https://docs.datadoghq.com/agent/logs/?tab=journald#custom-log-collection)

The IoT Agent does not include the Python interpreter and other integrations pre-packaged with the standard Agent. It also doesn't support tracing for APM, live process monitoring, or Cloud Network Monitoring.

## Setup{% #setup %}

### Requirements{% #requirements %}

The IoT Agent is available as DEB and RPM packages for Linux devices running on x64, arm64 (ARMv8), and ARMv7 architectures.

#### Resources{% #resources %}

IoT devices are typically more resource constrained than cloud infrastructure hosts. The IoT Agent is built to have a minimal footprint and consume minimal network bandwidth.

Exact resource requirements depend on usage. Datadog found the following when testing the IoT Agent (v7.20) internally:

- CPU: 0.5% (on a VM with 2 Intel Xeon VCPUs)
- Memory: 36 MB
- Network bandwidth: 237 bps up / 79 bps down
- Disk: 63 MB

### Installation{% #installation %}

#### Automatic{% #automatic %}

To automatically download and install the correct IoT Agent for your operating system and chipset architecture, use the following command:

```shell
DD_API_KEY=<YOUR_DD_API_KEY> DD_SITE="" DD_AGENT_FLAVOR=datadog-iot-agent bash -c "$(curl -L https://install.datadoghq.com/scripts/install_script_agent7.sh)"
```

#### Manual{% #manual %}

{% tab title="DEB" %}
To manually install the IoT Agent on Debian-based operating systems, run the following commands:

1. Update `apt` and install `apt-transport-https` to download through HTTPS and `curl` and `gnupg` to obtain the signing keys:

   ```bash
   sudo apt-get update
   sudo apt-get install apt-transport-https curl gnupg
   ```

1. Set up the Datadog deb repo on your system and import Datadog's apt keys:

   ```bash
   sudo sh -c "echo 'deb [signed-by=/usr/share/keyrings/datadog-archive-keyring.gpg] https://apt.datadoghq.com/ stable 7' > /etc/apt/sources.list.d/datadog.list"
   sudo touch /usr/share/keyrings/datadog-archive-keyring.gpg
   
   curl https://keys.datadoghq.com/DATADOG_APT_KEY_CURRENT.public | sudo gpg --no-default-keyring --keyring /usr/share/keyrings/datadog-archive-keyring.gpg --import --batch
   curl https://keys.datadoghq.com/DATADOG_APT_KEY_06462314.public | sudo gpg --no-default-keyring --keyring /usr/share/keyrings/datadog-archive-keyring.gpg --import --batch
   curl https://keys.datadoghq.com/DATADOG_APT_KEY_C0962C7D.public | sudo gpg --no-default-keyring --keyring /usr/share/keyrings/datadog-archive-keyring.gpg --import --batch
   curl https://keys.datadoghq.com/DATADOG_APT_KEY_F14F620E.public | sudo gpg --no-default-keyring --keyring /usr/share/keyrings/datadog-archive-keyring.gpg --import --batch
   curl https://keys.datadoghq.com/DATADOG_APT_KEY_382E94DE.public | sudo gpg --no-default-keyring --keyring /usr/share/keyrings/datadog-archive-keyring.gpg --import --batch
   ```

1. If running Ubuntu 14 or earlier or Debian 8 or earlier, copy the keyring to `/etc/apt/trusted.gpg.d`:

   ```shell
   sudo cp /usr/share/keyrings/datadog-archive-keyring.gpg /etc/apt/trusted.gpg.d
   ```

1. Update `apt` and install the IoT Agent:

   ```shell
   sudo apt-get update
   sudo apt-get install datadog-iot-agent datadog-signing-keys
   ```

1. Copy the example config and plug in your API key:

   ```shell
   DD_API_KEY=<YOUR_DD_API_KEY> ; sudo sh -c "sed 's/api_key:.*/api_key:$DD_API_KEY/' /etc/datadog-agent/datadog.yaml.example > /etc/datadog-agent/datadog.yaml"
   ```

1. Set your Datadog site to . Defaults to `datadoghq.com`.

   ```shell
   sudo sh -c "sed 's/# site:.*/site: <YOUR_DD_SITE>/' /etc/datadog-agent/datadog.yaml > /etc/datadog-agent/datadog.yaml.new && mv /etc/datadog-agent/datadog.yaml.new /etc/datadog-agent/datadog.yaml"
   ```

1. Start the IoT Agent:

   ```shell
   sudo systemctl restart datadog-agent.service
   ```

{% /tab %}

{% tab title="RPM" %}
To manually install the IoT Agent on RPM-based operating systems, run the following commands:

1. Set up Datadog's Yum repo on your system by creating `/etc/yum.repos.d/datadog.repo` with the contents:

   ```
   [datadog]
   name = Datadog, Inc.
   baseurl = https://yum.datadoghq.com/stable/7/<HOST_ARCHITECTURE>
   enabled=1
   gpgcheck=1
   repo_gpgcheck=1
   gpgkey=https://keys.datadoghq.com/DATADOG_RPM_KEY_CURRENT.public
          https://keys.datadoghq.com/DATADOG_RPM_KEY_4F09D16B.public
          https://keys.datadoghq.com/DATADOG_RPM_KEY_B01082D3.public
          https://keys.datadoghq.com/DATADOG_RPM_KEY_FD4BF915.public
          https://keys.datadoghq.com/DATADOG_RPM_KEY_E09422B3.public
   ```

**Note**: due to a [bug in dnf](https://bugzilla.redhat.com/show_bug.cgi?id=1792506), use `repo_gpgcheck=0` instead of `repo_gpgcheck=1` on RHEL/CentOS 8.1.

The `baseurl` is dependent on your host OS:

   - x86_64 - `https://yum.datadoghq.com/stable/7/x86_64/`
   - arm64 - `https://yum.datadoghq.com/stable/7/aarch64/`
   - ARMv7 - `https://yum.datadoghq.com/stable/7/armv7hl/`

1. Update your local yum repo and install the Agent:

   ```shell
   sudo yum makecache
   sudo yum install datadog-iot-agent
   ```

1. Copy the example config and plug in your API key:

   ```shell
   DD_API_KEY=<YOUR_DD_API_KEY> ; sudo sh -c "sed 's/api_key:.*/api_key:$DD_API_KEY/' /etc/datadog-agent/datadog.yaml.example > /etc/datadog-agent/datadog.yaml"
   ```

1. Set your Datadog site to . Defaults to `datadoghq.com`.

   ```shell
   sudo sh -c "sed 's/# site:.*/site: <YOUR_DD_SITE>/' /etc/datadog-agent/datadog.yaml > /etc/datadog-agent/datadog.yaml.new && mv /etc/datadog-agent/datadog.yaml.new /etc/datadog-agent/datadog.yaml"
   ```

1. Start the IoT Agent:

   ```shell
   sudo systemctl restart datadog-agent.service
   ```

{% /tab %}

## CLI{% #cli %}

The IoT Agent supports the same [CLI commands](https://docs.datadoghq.com/agent/basic_agent_usage/#cli) as the standard Agent.

## Uninstall{% #uninstall %}

```shell
sudo apt-get remove datadog-iot-agent -y
```

This command removes the Agent, but does not remove:

- The `datadog.yaml` configuration file
- User-created files in the `/etc/datadog-agent` configuration folder
- User-created files in the `/opt/datadog-agent` folder
- The `dd-agent` user

If you also want to remove those elements, use this command instead:

```shell
sudo apt-get remove --purge datadog-iot-agent -y
```

## Further Reading{% #further-reading %}

- [Getting Started with the Agent](https://docs.datadoghq.com/getting_started/agent/)
