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
を指定してください。