

# Métriques côté appareil
<a name="detect-device-side-metrics"></a>

Lors de la création d'un profil de sécurité, vous pouvez spécifier le comportement attendu de votre appareil IoT en configurant les comportements et les seuils pour les métriques générées par les appareils IoT. Voici les métriques côté appareil, qui sont des métriques provenant des agents que vous installez sur vos appareils.

## Octets en sortie (`aws:all-bytes-out`)
<a name="detect-all-bytes-out"></a>

Le nombre d'octets sortants d'un appareil au cours d'une période donnée.

Utilisez cette métrique pour spécifier la quantité maximale ou minimale de trafic sortant qu'un appareil doit envoyer, mesurée en octets, sur une période de temps donnée.

Compatible avec : Rules Detect \$1 ML Detect

Opérateurs : less-than \$1 less-than-equals \$1 greater-than \$1 greater-than-equals 

Valeur : Nombre entier non négatif. 

Unité : Octets 

Durée : Nombre entier non négatif. Les valeurs valides sont 300, 600, 900, 1 800 ou 3 600 secondes.

**Example**  

```
{
  "name": "TCP outbound traffic",
  "metric": "aws:all-bytes-out",
  "criteria": {
    "comparisonOperator": "less-than-equals",
    "value": {
      "count": 4096
    },
    "durationSeconds": 300,
    "consecutiveDatapointsToAlarm": 1,
    "consecutiveDatapointsToClear": 1
  },
  "suppressAlerts": true
}
```

**Example Exemple d’utilisation de `statisticalThreshold`**  

```
{
  "name": "TCP outbound traffic",
  "metric": "aws:all-bytes-out",
  "criteria": {
    "comparisonOperator": "less-than-equals",
    "statisticalThreshold": {
      "statistic": "p50"
    },
    "durationSeconds": 900,
    "consecutiveDatapointsToAlarm": 1,
    "consecutiveDatapointsToClear": 1
  },
  "suppressAlerts": true
}
```

**Example Exemple d'utilisation de ML Detect**  

```
{
  "name": "Outbound traffic ML behavior",
  "metric": "aws:all-bytes-out",
  "criteria": {
    "consecutiveDatapointsToAlarm": 1,
    "consecutiveDatapointsToClear": 1,
    "mlDetectionConfig": {
      "confidenceLevel": "HIGH"
    }
  },
  "suppressAlerts": true
}
```

## Octets entrants (`aws:all-bytes-in`)
<a name="detect-all-bytes-in"></a>

Le nombre d'octets entrants d'un appareil au cours d'une période donnée.

Utilisez cette métrique pour spécifier la quantité maximale ou minimale de trafic entrant qu'un appareil doit recevoir, mesurée en octets, sur une période de temps donnée.

Compatible avec : Rules Detect \$1 ML Detect

Opérateurs : less-than \$1 less-than-equals \$1 greater-than \$1 greater-than-equals 

Valeur : Nombre entier non négatif. 

Unité : Octets 

Durée : Nombre entier non négatif. Les valeurs valides sont 300, 600, 900, 1 800 ou 3 600 secondes.

**Example**  

```
{
  "name": "TCP inbound traffic",
  "metric": "aws:all-bytes-in",
  "criteria": {
    "comparisonOperator": "less-than-equals",
    "value": {
      "count": 4096
    },
    "durationSeconds": 300,
    "consecutiveDatapointsToAlarm": 1,
    "consecutiveDatapointsToClear": 1
  },
  "suppressAlerts": true
}
```

**Example Exemple d’utilisation de `statisticalThreshold`**  

```
{
  "name": "TCP inbound traffic",
  "metric": "aws:all-bytes-in",
  "criteria": {
    "comparisonOperator": "less-than-equals",
    "statisticalThreshold": {
      "statistic": "p90"
    },
    "durationSeconds": 300,
    "consecutiveDatapointsToAlarm": 1,
    "consecutiveDatapointsToClear": 1
  },
  "suppressAlerts": true
}
```

**Example Exemple d'utilisation de ML Detect**  

```
{
  "name": "Inbound traffic ML behavior",
  "metric": "aws:all-bytes-in",
  "criteria": {
    "consecutiveDatapointsToAlarm": 1,
    "consecutiveDatapointsToClear": 1,
    "mlDetectionConfig": {
      "confidenceLevel": "HIGH"
    }
  },
  "suppressAlerts": true
}
```

## Nombre de ports TCP d'écoute (`aws:num-listening-tcp-ports`)
<a name="detect-num-listening-tcp-ports"></a>

Le nombre de ports TCP que l'appareil écoute.

Utilisez cette métrique pour spécifier le nombre maximum de ports TCP que chaque appareil doit surveiller.

Compatible avec : Rules Detect \$1 ML Detect

Unités : Échecs 

Opérateurs : less-than \$1 less-than-equals \$1 greater-than \$1 greater-than-equals 

Valeur : Nombre entier non négatif. 

Unités : Échecs 

Durée : Nombre entier non négatif. Les valeurs valides sont 300, 600, 900, 1 800 ou 3 600 secondes.

**Example**  

```
{
  "name": "Max TCP Ports",
  "metric": "aws:num-listening-tcp-ports",
  "criteria": {
    "comparisonOperator": "less-than-equals",
    "value": {
      "count": 5
    },
    "durationSeconds": 300,
    "consecutiveDatapointsToAlarm": 1,
    "consecutiveDatapointsToClear": 1
  },
  "suppressAlerts": true
}
```

**Example Exemple d’utilisation de `statisticalThreshold`**  

```
{
  "name": "Max TCP Ports",
  "metric": "aws:num-listening-tcp-ports",
  "criteria": {
    "comparisonOperator": "less-than-equals",
    "statisticalThreshold": {
      "statistic": "p50"
    },
    "durationSeconds": 300,
    "consecutiveDatapointsToAlarm": 1,
    "consecutiveDatapointsToClear": 1
  },
  "suppressAlerts": true
}
```

**Example Exemple d'utilisation de ML Detect**  

```
{
  "name": "Max TCP Port ML behavior",
  "metric": "aws:num-listening-tcp-ports",
  "criteria": {
    "consecutiveDatapointsToAlarm": 1,
    "consecutiveDatapointsToClear": 1,
    "mlDetectionConfig": {
      "confidenceLevel": "HIGH"
    }
  },
  "suppressAlerts": true
}
```

## Nombre de ports UDP d'écoute (`aws:num-listening-udp-ports`)
<a name="detect-num-listening-udp-ports"></a>

Le nombre de ports UDP que l'appareil écoute.

Utilisez cette métrique pour spécifier le nombre maximum de ports UDP que chaque appareil doit surveiller.

Compatible avec : Rules Detect \$1 ML Detect

Unités : Échecs 

Opérateurs : less-than \$1 less-than-equals \$1 greater-than \$1 greater-than-equals 

Valeur : Nombre entier non négatif. 

Unités : Échecs 

Durée : Nombre entier non négatif. Les valeurs valides sont 300, 600, 900, 1 800 ou 3 600 secondes.

**Example**  

```
{
  "name": "Max UDP Ports",
  "metric": "aws:num-listening-udp-ports",
  "criteria": {
    "comparisonOperator": "less-than-equals",
    "value": {
      "count": 5
    },
    "durationSeconds": 300,
    "consecutiveDatapointsToAlarm": 1,
    "consecutiveDatapointsToClear": 1
  },
  "suppressAlerts": true
}
```

**Example Exemple d’utilisation de `statisticalThreshold`**  

```
{
  "name": "Max UDP Ports",
  "metric": "aws:num-listening-udp-ports",
  "criteria": {
    "comparisonOperator": "less-than-equals",
    "statisticalThreshold": {
      "statistic": "p50"
    },
    "durationSeconds": 300,
    "consecutiveDatapointsToAlarm": 1,
    "consecutiveDatapointsToClear": 1
  },
  "suppressAlerts": true
}
```

**Example Exemple d'utilisation de ML Detect**  

```
{
  "name": "Max UPD Port ML behavior",
  "metric": "aws:num-listening-tcp-ports",
  "criteria": {
	 "consecutiveDatapointsToAlarm": 1,
	 "consecutiveDatapointsToClear": 1,
	 "mlDetectionConfig": {
	   "confidenceLevel": "HIGH"
   }
	},
  "suppressAlerts": true
}
```

## Paquets sortis (`aws:all-packets-out`)
<a name="detect-all-packets-out"></a>

Le nombre de paquets sortants d'un appareil au cours d'une période donnée.

Utilisez cette métrique pour spécifier la quantité maximum ou minimum de trafic total sortant qu'un appareil doit envoyer au cours d'une période donnée.

Compatible avec : Rules Detect \$1 ML Detect

Opérateurs : less-than \$1 less-than-equals \$1 greater-than \$1 greater-than-equals 

Valeur : Nombre entier non négatif. 

Unités : Paquets 

Durée : Nombre entier non négatif. Les valeurs valides sont 300, 600, 900, 1 800 ou 3 600 secondes.

**Example**  

```
{
  "name": "TCP outbound traffic",
  "metric": "aws:all-packets-out",
  "criteria": {
    "comparisonOperator": "less-than-equals",
    "value": {
      "count": 100
    },
    "durationSeconds": 300,
    "consecutiveDatapointsToAlarm": 1,
    "consecutiveDatapointsToClear": 1
  },
  "suppressAlerts": true
}
```

**Example Exemple d’utilisation de `statisticalThreshold`**  

```
{
  "name": "TCP outbound traffic",
  "metric": "aws:all-packets-out",
  "criteria": {
    "comparisonOperator": "less-than-equals",
    "statisticalThreshold": {
      "statistic": "p90"
    },
    "durationSeconds": 300,
    "consecutiveDatapointsToAlarm": 1,
    "consecutiveDatapointsToClear": 1
  },
  "suppressAlerts": true
}
```

**Example Exemple d'utilisation de ML Detect**  

```
{
  "name": "Outbound sent ML behavior",
  "metric": "aws:all-packets-out",
  "criteria": {
    "consecutiveDatapointsToAlarm": 1,
    "consecutiveDatapointsToClear": 1,
    "mlDetectionConfig": {
      "confidenceLevel": "HIGH"
    }
  },
  "suppressAlerts": true
}
```

## Paquets entrants (`aws:all-packets-in`)
<a name="detect-all-packets-in"></a>

Le nombre de paquets entrants d'un appareil au cours d'une période donnée.

Utilisez cette métrique pour spécifier la quantité maximum ou minimum de trafic total entrant qu'un appareil doit recevoir au cours d'une période donnée.

Compatible avec : Rules Detect \$1 ML Detect

Opérateurs : less-than \$1 less-than-equals \$1 greater-than \$1 greater-than-equals 

Valeur : Nombre entier non négatif. 

Unités : Paquets 

Durée : Nombre entier non négatif. Les valeurs valides sont 300, 600, 900, 1 800 ou 3 600 secondes.

**Example**  

```
{
  "name": "TCP inbound traffic",
  "metric": "aws:all-packets-in",
  "criteria": {
    "comparisonOperator": "less-than-equals",
    "value": {
      "count": 100
    },
    "durationSeconds": 300,
    "consecutiveDatapointsToAlarm": 1,
    "consecutiveDatapointsToClear": 1
  },
  "suppressAlerts": true
}
```

**Example**  
Exemple d’utilisation de `statisticalThreshold`  

```
{
  "name": "TCP inbound traffic",
  "metric": "aws:all-packets-in",
  "criteria": {
    "comparisonOperator": "less-than-equals",
    "statisticalThreshold": {
      "statistic": "p90"
    },
    "durationSeconds": 300,
    "consecutiveDatapointsToAlarm": 1,
    "consecutiveDatapointsToClear": 1
  },
  "suppressAlerts": true
}
```

**Example Exemple d'utilisation de ML Detect**  

```
{
  "name": "Inbound sent ML behavior",
  "metric": "aws:all-packets-in",
  "criteria": {
    "consecutiveDatapointsToAlarm": 1,
    "consecutiveDatapointsToClear": 1,
    "mlDetectionConfig": {
      "confidenceLevel": "HIGH"
    }
  },
  "suppressAlerts": true
}
```

## IP de destination (`aws:destination-ip-addresses`)
<a name="detect-destination-ip-addresses"></a>

Un ensemble de destinations IP.

Utilisez cette métrique pour spécifier un ensemble de routages inter-domaines sans classe (CIDR) autorisés (anciennement appelés liste blanche) ou refusés (anciennement appelés liste noire) à partir desquels chaque appareil doit ou ne doit pas se connecter à AWS IoT.

Compatible avec : Rules Detect

Opérateurs : in-cidr-set \$1 not-in-cidr-set 

Valeurs : une liste de CIDR

Unités : N/A

**Example**  

```
{
  "name": "Denied source IPs",
  "metric": "aws:destination-ip-address",
  "criteria": {
    "comparisonOperator": "not-in-cidr-set",
    "value": {
      "cidrs": [ "12.8.0.0/16", "15.102.16.0/24" ]
    }
  },
  "suppressAlerts": true
}
```

## Ports TCP d’écoute (`aws:listening-tcp-ports`)
<a name="detect-listening-tcp-ports"></a>

Les ports TCP que l'appareil écoute.

Utilisez cette métrique pour spécifier un ensemble de ports TCP autorisés (anciennement appelés liste blanche) ou refusés (anciennement appelés liste noire) sur lesquels chaque appareil doit ou ne doit pas écouter.

Compatible avec : Rules Detect

Opérateurs : in-port-set \$1 not-in-port-set 

Valeurs : une liste de ports 

Unités : N/A

**Example**  

```
{
  "name": "Listening TCP Ports",
  "metric": "aws:listening-tcp-ports",
  "criteria": {
    "comparisonOperator": "in-port-set",
    "value": {
      "ports": [ 443, 80 ]
    }
  },
  "suppressAlerts": true
}
```

## Ports UDP d’écoute (`aws:listening-udp-ports`)
<a name="detect-listening-udp-ports"></a>

Les ports UDP que l'appareil écoute.

Utilisez cette métrique pour spécifier un ensemble de ports UDP autorisés (anciennement appelés liste blanche) ou refusés (anciennement appelés liste noire) sur lesquels chaque appareil doit ou ne doit pas écouter.

Compatible avec : Rules Detect

Opérateurs : in-port-set \$1 not-in-port-set 

Valeurs : une liste de ports 

Unités : N/A

**Example**  

```
{
  "name": "Listening UDP Ports",
  "metric": "aws:listening-udp-ports",
  "criteria": {
    "comparisonOperator": "in-port-set",
    "value": {
      "ports": [ 1025, 2000 ]
    }
  }
}
```

## Nombre de connexions TCP établies (`aws:num-established-tcp-connections`)
<a name="detect-num-established-tcp-connections"></a>

Le nombre de connexions TCP pour un appareil.

Utilisez cette métrique pour spécifier le nombre maximum ou minimum de connexions TCP actives que chaque appareil doit avoir (tous les états TCP). 

Compatible avec : Rules Detect \$1 ML Detect

Opérateurs : less-than \$1 less-than-equals \$1 greater-than \$1 greater-than-equals

Valeur : Nombre entier non négatif. 

Unités : Connexions

**Example**  

```
{
  "name": "TCP Connection Count",
  "metric": "aws:num-established-tcp-connections",
  "criteria": {
    "comparisonOperator": "less-than-equals",
    "value": {
      "count": 3
    },
    "consecutiveDatapointsToAlarm": 1,
    "consecutiveDatapointsToClear": 1
  },
  "suppressAlerts": true
}
```

**Example Exemple d’utilisation de `statisticalThreshold`**  

```
{
  "name": "TCP Connection Count",
  "metric": "aws:num-established-tcp-connections",
  "criteria": {
    "comparisonOperator": "less-than-equals",
    "statisticalThreshold": {
      "statistic": "p90"
    },
    "durationSeconds": 900,
    "consecutiveDatapointsToAlarm": 1,
    "consecutiveDatapointsToClear": 1
  },
  "suppressAlerts": true
}
```

**Example Exemple d'utilisation de ML Detect**  

```
{
  "name": "Connection count ML behavior",
  "metric": "aws:num-established-tcp-connections",
  "criteria": {
    "consecutiveDatapointsToAlarm": 1,
    "consecutiveDatapointsToClear": 1,
    "mlDetectionConfig": {
      "confidenceLevel": "HIGH"
    }
  },
  "suppressAlerts": true
}
```

## Spécifications des métriques d'appareil
<a name="DetectMetricsMessagesSpec"></a>


**Structure globale**  

|  Nom long  |  Nom court  |  Obligatoire  |  Type  |  Constaintes  |  Remarques  | 
| --- | --- | --- | --- | --- | --- | 
|  header  |  hed  |  Y  |  Objet  |    |  Bloc complet requis pour rapport correct  | 
|  métriques  |  met  |  Y  |  Objet  |    |  Un rapport peut contenir les deux ou au moins un `metrics` ou un `custom_metrics` bloc.  | 
|  métriques personnalisées  |  cmet  |  Y  |  Objet  |    |  Un rapport peut contenir les deux ou au moins un `metrics` ou un `custom_metrics` bloc.  | 


**Bloc d'en-tête**  

|  Nom long  |  Nom court  |  Obligatoire  |  Type  |  Constaintes  |  Remarques  | 
| --- | --- | --- | --- | --- | --- | 
|  report\$1id  |  rid  |  Y  |  Entier  |    |  Valeur augmentant de façon monotone. Horodatage epoch conseillé.  | 
|  version  |  v  |  Y  |  Chaîne  |  Major.Minor  |  Incréments mineurs avec ajout de champ. Incréments majeurs si métriques supprimées.  | 

**Bloc de métriques :**


**Connexions TCP**  

|  Nom long  |  Nom court  |  Élément parent  |  Obligatoire  |  Type  |  Constaintes  |  Remarques  | 
| --- | --- | --- | --- | --- | --- | --- | 
|  tcp\$1connections  |  tc  |  métriques  |  N  |  Objet  |    |    | 
|  established\$1connections  |  ec  |  tcp\$1connections  |  N  |  Objet  |    |  État TCP établie  | 
|  connections  |  cs  |  established\$1connections  |  N  |  List<Object>  |    |    | 
|  remote\$1addr  |  rad  |  connections  |  Y  |  Nombre  |  ip:port  |  IP peut être IPv6 ou IPv4  | 
|  local\$1port  |  lp  |  connections  |  N  |  Nombre  |  >= 0  |    | 
|  local\$1interface  |  li  |  connections  |  N  |  Chaîne  |    |  Nom d'interface  | 
|  total  |  t  |  established\$1connections  |  N  |  Nombre  |  >= 0  |  Nombre de connexions établies  | 


**Ports TCP d’écoute**  

|  Nom long  |  Nom court  |  Élément parent  |  Obligatoire  |  Type  |  Constaintes  |  Remarques  | 
| --- | --- | --- | --- | --- | --- | --- | 
|  listening\$1tcp\$1ports  |  tp  |  métriques  |  N  |  Objet  |    |    | 
|  ports  |  pts  |  listening\$1tcp\$1ports  |  N  |  List<Object>  |  > 0  |    | 
|  port  |  pt  |  ports  |  N  |  Nombre  |  > 0  |  les ports doivent être des nombres supérieurs à 0  | 
|  interface  |  if  |  ports  |  N  |  Chaîne  |    |  Nom d'interface  | 
|  total  |  t  |  listening\$1tcp\$1ports  |  N  |  Nombre  |  >= 0  |    | 


**Ports UDP d’écoute**  

|  Nom long  |  Nom court  |  Élément parent  |  Obligatoire  |  Type  |  Constaintes  |  Remarques  | 
| --- | --- | --- | --- | --- | --- | --- | 
|  listening\$1udp\$1ports  |  up  |  métriques  |  N  |  Objet  |    |    | 
|  ports  |  pts  |  listening\$1udp\$1ports  |  N  |  List<Port>  |  > 0  |    | 
|  port  |  pt  |  ports  |  N  |  Nombre  |  > 0  |  Les ports doivent être des nombres supérieurs à 0  | 
|  interface  |  if  |  ports  |  N  |  Chaîne  |    |  Nom d'interface  | 
|  total  |  t  |  listening\$1udp\$1ports  |  N  |  Nombre  |  >= 0  |    | 


**Statistiques réseau**  

|  Nom long  |  Nom court  |  Élément parent  |  Obligatoire  |  Type  |  Constaintes  |  Remarques  | 
| --- | --- | --- | --- | --- | --- | --- | 
|  network\$1stats  |  ns  |  metrics  |  N  |  Objet  |    |    | 
|  bytes\$1in  |  bi  |  network\$1stats  |  N  |  Nombre  |  Delta Metric, >= 0  |    | 
|  bytes\$1out  |  bo  |  network\$1stats  |  N  |  Nombre  |  Delta Metric, >= 0  |    | 
|  packets\$1in  |  pi  |  network\$1stats  |  N  |  Nombre  |  Delta Metric, >= 0  |    | 
|  packets\$1out  |  po  |  network\$1stats  |  N  |  Nombre  |  Delta Metric, >= 0  |    | 

**Example**  
La structure JSON suivante utilise des noms longs.  

```
{
  "header": {
    "report_id": 1530304554,
    "version": "1.0"
  },
  "metrics": {
    "listening_tcp_ports": {
      "ports": [
        {
          "interface": "eth0",
          "port": 24800
        },
        {
          "interface": "eth0",
          "port": 22
        },
        {
          "interface": "eth0",
          "port": 53
        }
      ],
      "total": 3
    },
    "listening_udp_ports": {
      "ports": [
        {
          "interface": "eth0",
          "port": 5353
        },
        {
          "interface": "eth0",
          "port": 67
        }
      ],
      "total": 2
    },
    "network_stats": {
      "bytes_in": 29358693495,
      "bytes_out": 26485035,
      "packets_in": 10013573555,
      "packets_out": 11382615
    },
    "tcp_connections": {
      "established_connections": {
        "connections": [
          {
            "local_interface": "eth0",
            "local_port": 80,
            "remote_addr": "192.168.0.1:8000"
          },
          {
            "local_interface": "eth0",
            "local_port": 80,
            "remote_addr": "192.168.0.1:8000"
          }
        ],
        "total": 2
      }
    }
  },
  "custom_metrics": {
    "MyMetricOfType_Number": [
      {
        "number": 1
      }
    ],
    "MyMetricOfType_NumberList": [
      {
        "number_list": [
          1,
          2,
          3
        ]
      }
    ],
    "MyMetricOfType_StringList": [
      {
        "string_list": [
          "value_1",
          "value_2"
        ]
      }
    ],
    "MyMetricOfType_IpList": [
      {
        "ip_list": [
          "172.0.0.0",
          "172.0.0.10"
        ]
      }
    ]
  }
}
```

**Example Exemple de structure JSON avec des noms courts :**  

```
{
  "hed": {
    "rid": 1530305228,
    "v": "1.0"
  },
  "met": {
    "tp": {
      "pts": [
        {
          "if": "eth0",
          "pt": 24800
        },
        {
          "if": "eth0",
          "pt": 22
        },
        {
          "if": "eth0",
          "pt": 53
        }
      ],
      "t": 3
    },
    "up": {
      "pts": [
        {
          "if": "eth0",
          "pt": 5353
        },
        {
          "if": "eth0",
          "pt": 67
        }
      ],
      "t": 2
    },
    "ns": {
      "bi": 29359307173,
      "bo": 26490711,
      "pi": 10014614051,
      "po": 11387620
    },
    "tc": {
      "ec": {
        "cs": [
          {
            "li": "eth0",
            "lp": 80,
            "rad": "192.168.0.1:8000"
          },
          {
            "li": "eth0",
            "lp": 80,
            "rad": "192.168.0.1:8000"
          }
        ],
        "t": 2
      }
    }
  },
  "cmet": {
    "MyMetricOfType_Number": [
      {
        "number": 1
      }
    ],
    "MyMetricOfType_NumberList": [
      {
        "number_list": [
          1,
          2,
          3
        ]
      }
    ],
    "MyMetricOfType_StringList": [
      {
        "string_list": [
          "value_1",
          "value_2"
        ]
      }
    ],
    "MyMetricOfType_IpList": [
      {
        "ip_list": [
          "172.0.0.0",
          "172.0.0.10"
        ]
      }
    ]
  }
}
```

## Envoi de métriques à partir d'appareils
<a name="DetectMetricsMessages"></a>

AWS IoT Device Defender Detect peut collecter, regrouper et surveiller les données de métriques générées par les appareils AWS IoT, pour identifier les appareils qui présentent un comportement anormal. Cette section vous explique comment envoyer des métriques d’un appareil vers AWS IoT Device Defender.

Vous devez déployer AWS IoT en toute sécurité la version deux du SDK sur vos appareils AWS IoT connectés ou passerelles d'appareils pour collecter des métriques côté appareil. Consultez la liste complète des SDK [ici.](https://docs.aws.amazon.com/iot/latest/developerguide/iot-sdks.html)

Vous pouvez utiliser AWS IoT Device Client pour publier des métriques, car il fournit un agent unique qui couvre les fonctionnalités présentes à la fois dans AWS IoT Device Defender et dans AWS IoT Device Management. (Gestion d'appareils) Ces fonctionnalités incluent les tâches, le tunneling sécurisé, la publication de métriques AWS IoT Device Defender, etc.

Vous publiez les statistiques relatives aux métriques côté appareil dans la [reserved topic](https://docs.aws.amazon.com//iot/latest/developerguide/reserved-topics.html#reserved-topics-device-defender) (rubrique réservée) dans AWS IoT pour AWS IoT Device Defender afin de les collecter et les évaluer.

### Utilisation du AWS IoT Device Client pour publier des métriques
<a name="UsingAWSIoTDeviceClient"></a>

Pour installer AWS IoT Device Client, vous pouvez le télécharger depuis [Github](https://github.com/awslabs/aws-iot-device-client). Après avoir installé le AWS IoT Device Client sur l'appareil pour lequel vous souhaitez collecter des données côté appareil, vous devez le configurer pour envoyer des métriques côté appareil à AWS IoT Device Defender. Vérifiez que le [configuration file](https://github.com/awslabs/aws-iot-device-client/blob/main/config-template.json) (fichier de configuration) du AWS IoT Device Client contient les paramètres suivants définis dans la section `device-defender` ::

```
  
  "device-defender":    {
        "enabled":    true,
        "interval-in-seconds": 300
    }
```

**Avertissement**  
Vous devez définir l'intervalle de temps sur un minimum de 300 secondes. Si vous définissez un intervalle de temps inférieur à 300 secondes, vos données métriques peuvent être limitées.

 Après avoir mis à jour votre configuration, vous pouvez créer des profils et des comportements de sécurité dans la console AWS IoT Device Defender afin de surveiller les indicateurs publiés par vos appareils dans le cloud. Vous pouvez trouver les métriques publiées dans la console AWS IoT Core en choisissant Defend, Detect, puis Metrics.