概要
このチェックでは、システムの ping コマンドを使用して、ホストの到達可能性をテストします。
また、オプションで、チェックから宛先ホストに送信されるメッセージの往復時間を測定します。
Ping は、インターネット制御メッセージプロトコル(ICMP)エコー要求パケットをターゲットホストに送信し、ICMP エコー応答を待機することで動作します。
ICMP パケットの作成には raw ソケットが必要であるため、このチェックでは ICMP エコー要求自体を生成するのではなく、システムの ping コマンドを使用します。raw ソケットの作成には Agent にないルート権限が必要です。ping コマンドは、setuid
アクセスフラグを使用して昇格した権限で実行し、この問題を回避します。
Windows をお使いの方への注意事項: インストールされている Windows の言語が英語に設定されていない場合、このチェックが正しく行われないことがあります。
セットアップ
Ping チェックは Datadog Agent パッケージに含まれていないため、お客様自身でインストールする必要があります。
インストール
Agent v7.21 / v6.21 以降の場合は、下記の手順に従い Ping チェックをホストにインストールします。Docker Agent または 上記バージョン以前の Agent でインストールする場合は、コミュニティインテグレーションの使用をご参照ください。
以下のコマンドを実行して、Agent インテグレーションをインストールします。
# Linux
sudo -u dd-agent -- datadog-agent integration install -t datadog-ping==<INTEGRATION_VERSION>
# Windows
agent.exe integration install -t datadog-ping==<INTEGRATION_VERSION>
お使いの OS に合わせて、ping
バイナリをインストールします。例えば、Ubuntu の場合、以下のコマンドを実行します。
apt-get install iputils-ping
コアのインテグレーションと同様にインテグレーションを構成します。
構成
ping のパフォーマンスデータの収集を開始するには、Agent のコンフィギュレーションディレクトリのルートにある conf.d/
フォルダーの ping.d/conf.yaml
ファイルを編集します。使用可能なすべてのコンフィギュレーションオプションについては、サンプル ping.d/conf.yaml を参照してください。
Agent を再起動します。
検証
Agent の status サブコマンドを実行し、Checks セクションで ping
を探します。
収集データ
メトリクス
network.ping.response_time (gauge) | The response time of a given host and ping port, tagged with url, e.g. 'host:192.168.1.100'. Shown as millisecond |
network.ping.can_connect (gauge) | Value of 1 if the agent can successfully communicate with the target host, 0 otherwise |
イベント
Ping チェックには、イベントは含まれません。
サービスチェック
network.ping.can_connect
Returns CRITICAL if the Agent cannot communicate with the target host. Returns OK if the ping is successful.
Statuses: ok, critical
トラブルシューティング
SubprocessOutputEmptyError: get_subprocess_output expected output but had none
エラー
Ping インテグレーションを実行中に、以下のようなエラーが表示されることがあります。
Traceback (most recent call last):
File "/opt/datadog-agent/embedded/lib/python3.8/site-packages/datadog_checks/base/checks/base.py", line 1006, in run
self.check(instance)
File "/opt/datadog-agent/embedded/lib/python3.8/site-packages/datadog_checks/ping/ping.py", line 65, in check
lines = self._exec_ping(timeout, host)
File "/opt/datadog-agent/embedded/lib/python3.8/site-packages/datadog_checks/ping/ping.py", line 48, in _exec_ping
lines, err, retcode = get_subprocess_output(
File "/opt/datadog-agent/embedded/lib/python3.8/site-packages/datadog_checks/base/utils/subprocess_output.py", line 56, in get_subprocess_output
out, err, returncode = subprocess_output(cmd_args, raise_on_empty_output, env=env)
_util.SubprocessOutputEmptyError: get_subprocess_output expected output but had none.
Ping インテグレーションは Agent にデフォルトで含まれていないため、ping
バイナリも Agent に含まれていません。インテグレーションを正常に実行するためには、自分で ping
バイナリをインストールする必要があります。
ご不明な点は、Datadog のサポートチームまでお問合せください。