device_inventory.yml

device-connector-intdashとともにインストールされる /etc/dc_conf/device_inventory.yml は、エッジデバイスのステータス情報(CPU、メモリ、ストレージ、ネットワークなど)を送信するためのパイプライン設定ファイルです。

tasks:
  - id: 1
    element: process-src
    conf:
      # Set DC_PROCESS_SRC_CONF_COMMAND_INTERVAL to 30s or more. Shorter values may not ensure sends at the configured intervals.
      command: /etc/dc_conf/scripts/device_inventory.sh --interval $(DC_PROCESS_SRC_CONF_COMMAND_INTERVAL)
      buffer_size: 65535
      retry: true
      retry_interval_ms: 1000

  - id: 2
    element: json-split-filter
    from: [ [1] ]

  - id: 3
    element: iscp-v2-compat-filter
    from: [ [2] ]
    conf:
      timestamp:
        stamp:
          clock_id: CLOCK_MONOTONIC
      convert_rule:
        string:
          name: device_inventory

  - id: 4
    element: print-log-filter
    from: [ [3] ]
    conf:
      interval_ms: 10000
      tag: $(DC_PRINT_LOG_FILTER_CONF_TAG)
      output: stderr

  - id: 5
    element: file-sink
    from: [ [4] ]
    conf:
      path: $(DC_FILE_SINK_CONF_PATH)

device_inventory.ymlについての補足

パイプライン設定ファイル device_inventory.yml は、エッジデバイスのステータス情報を以下のコマンドを利用して取得します。

コマンド

説明

df

ストレージ情報

ip

ネットワーク統計情報

lsusb

USBデバイス情報

mmcli

モバイル回線情報 [1]

ping

RTT(Round Trip Time)情報

vmstat

システムの統計情報

警告

このデバイスコネクターでは、dfやmmcliなどのコマンドによりステータス情報が取得され、送信されます。ただし、以下に該当する古いバージョンのディストリビューションでは、いくつかのコマンドのデータが送信されません。

ディストリビューション

情報を送信できないコマンド

Debian:9

mmcli、ip

Debian:10

mmcli

Ubuntu:18.04

mmcli

警告

以下条件に該当する場合、送信する情報が多くなりデータの取得に時間がかかることがあります。

条件

ipコマンドで送信するネットワークインターフェースが多い場合

Dockerを利用している

lsusbコマンドで送信するデバイス情報が多い場合

多数のUSBデバイスが接続されている

dfコマンドで送信するストレージ情報が多い場合

多数のストレージが接続されている

注釈

Docker環境で利用する場合、以下の点に注意してください。

  • mmcliの情報を取得するために /var/run/dbus のバインドマウントが必要です。

  • dfのマウントポイント / の情報は、Dockerのストレージドライバの情報となります。通常はホストの /var/lib/docker/overlay2 が存在するパーティションの情報となります。

  • ipで取得できる情報はコンテナからアクセスできるネットワークインターフェースの情報のみとなります。ホストの情報も取得したい場合は、コンテナ実行時に --net=host を指定してください。