mabl Linkを介してテストがアプリケーションにアクセスできない場合、原因を最も早く突き止める方法は、トンネルを直接テストすることです。mablデスクトップアプリとmabl CLIはどちらも、お使いのコンピューターからLinkトンネルを通じて、そのエージェントがホストにアクセスできるか、ポートを開けるか、HTTPリクエストに応答できるか、期待どおりの速度でデータを転送できるかを確認できます。この記事では、これらのチェックを実行する方法と、結果の読み方について説明します。
始める前に
Link接続をテストするには、そのトンネルのLinkトンネルアクセス設定で適切なアクセス権が付与されている必要があります。
- ワークスペーストンネルの場合、ワークスペースの所有者がSettings > Networkingに移動し、Linkトンネルアクセスを開いて、チームアクセス > Linkトンネルへのアクセスが許可されたロールにロールを追加します。
- 会社トンネルの場合、アカウント管理者がアカウントダッシュボードのNetworkingページで同じ変更を行います。
詳細については、Linkトンネルへのアクセスの制御を参照してください。
このロール設定は、デスクトップアプリで、またはCLIのmabl auth loginで、ご自身としてサインインしている場合に常に適用されます。代わりにCLIでAPIキーを有効にした場合は、ロール設定なしでワークスペースのトンネルをテストできます。
また、トンネルには、バージョン3.0以降を実行している接続済みのLink Agentが少なくとも1つ必要です。
mablデスクトップアプリからチェックを実行する
- mablアプリのメニューバーから、Edit > Link tunnelsに移動します。
- Diagnostics(診断)タブで、Tunnelリストからトンネルを選択します。このリストには、所属しているすべてのワークスペースと会社のトンネルが含まれます。Overview(概要)には、トンネルの接続済みエージェント、健全性、アップデート、トンネルを提供するエージェント、およびトンネルを経由してルーティングされる環境が表示されます。
- Check(チェック)でチェックを選択し、Parameters(パラメーター)に対象を入力します。下記のチェックを参照してください。
-
Scope(スコープ)を選択します。
- Any agent(任意のエージェント):テストと同じルーティング方法で、接続ごとにトンネルがエージェントを選択します。まずはここから始めてください。
- Specific agent(特定のエージェント):1つのエージェントだけに見られる動作を調べるために、そのエージェントを直接テストします。
- Every agent(すべてのエージェント):エージェントごとに1回ずつチェックを実行して結果を比較し、エージェント間の違いを見つけます。
- Run check(チェックを実行)をクリックします。結果はResults(結果)タブに表示されます。
チェックはお使いのコンピューターからトンネルを通じて実行されるため、クラウドテストがネットワークに到達するのと同じ経路をテストします。
チェック
| チェック | 答えられる質問 | 対象 |
|---|---|---|
| Reachability | エージェントはネットワーク内のホストにアクセスできるか? |
app.internal:443など、ネットワーク内のホストとポート |
| TCP connect | トンネルはこのポートへの接続を開けるか? |
db.internal:5432など、ホストとポート |
| HTTP request | この内部エンドポイントは実際に何を返すか? | URL。必要に応じてFollow redirects(リダイレクトに従う)またはAllow insecure TLS(安全でないTLSを許可)を指定します。 |
| Ping / RTT | 往復にどれくらいかかるか、パケットが失われていないか? | 送信するpingの回数。デフォルトは10です。 |
| Speed test | トンネル経路のスループットはどれくらいか? | ダウンロード、アップロード、および秒単位の実行時間。デフォルトは60です。 |
結果の読み方
各結果には、どのエージェントがチェックを処理したかと、名前解決、接続時間、応答などの詳細が表示されます。結果は次のいずれかです。
- Pass(成功):チェックが成功しました。
- Fail(失敗):チェックが失敗しました。詳細には、名前が解決できなかった、接続が拒否されたなど、失敗した箇所が示されます。
- Degraded(低下):チェックは成功しましたが、想定より遅いか、損失が多い状態です。
- Cancelled(キャンセル):完了前にチェックを停止しました。
- Unknown(不明):エージェントがこのチェックを実行できません。まだアップデートされていないエージェントでは、このチェックが提供されていない場合があります。エージェントをアップデートすると有効になります。
Every agentでチェックを実行した場合は、行を比較してください。他のエージェントが成功しているのに1つのエージェントだけが失敗する場合、問題はアプリケーションではなく、そのエージェントのホストまたはネットワークにあります。
You do not have access to this tunnel(このトンネルへのアクセス権がありません)と表示される場合、お使いのロールは許可されていません。このメッセージには、ワークスペースの所有者またはアカウント管理者がロールを追加できる場所が示されます。Linkトンネルへのアクセスの制御を参照してください。
mabl CLIからチェックを実行する
mabl link-agents testコマンドは、同じ種類のチェックをターミナルから実行します。デスクトップアプリがないマシンやスクリプト内で便利です。すべてのコマンドは--tunnel {name}を受け取り、チェックが失敗するとゼロ以外のステータスで終了します。
| コマンド | チェック内容 |
|---|---|
mabl link-agents test tcp {host:port} |
トンネルを通じて対象へのTCP接続を開き、所要時間を報告します。 |
mabl link-agents test url {url} |
トンネルを通じてHTTPリクエストを送信し、応答を表示します。小さなcurlのようなものです。 |
mabl link-agents test destination {host:port} |
トンネル上のすべてのエージェントに対象の名前解決と接続を依頼し、その結果を比較します。 |
mabl link-agents test ping |
お使いのコンピューターとトンネルのエージェント間の往復時間を測定します。 |
mabl link-agents test speed |
トンネルを通じた往復時間と、ダウンロードおよびアップロードのスループットを測定します。 |
例:
mabl link-agents test tcp db.internal:5432 --tunnel qa-env-01
mabl link-agents test url https://app.internal/health --tunnel qa-env-01 -L
mabl link-agents test destination app.internal:443 --tunnel qa-env-01
トンネルとエージェントを選択する
| オプション | 説明 |
|---|---|
--tunnel {name} |
テストするトンネル。必須です。 |
--workspace-id、-w
|
テストするトンネルが属するワークスペース。構成済みのワークスペースがデフォルトで、会社のトンネルも検索されます。 |
--company-id |
会社トンネルをテストします。 |
--personal |
ご自身の個人トンネルをテストします。--tunnelにはコンピューターを指定します。mabl auth loginが必要です。 |
--agent {id} |
tcpとurlの場合:トンネルに選ばせるのではなく、1つのエージェントを直接テストします。 |
--all-agents |
tcpとurlの場合:接続済みのエージェントごとに1回ずつチェックを実行します。 |
--output json |
スクリプト向けに、結果をJSONで出力します。 |
各チェックのオプション
-
tcp:--connect-timeout(ミリ秒)。デフォルトは10,000です。 -
url:curlスタイルのオプション。-Xでメソッド、-Hでヘッダー(繰り返し指定可)、-dでリクエストボディ、-u user:passwordでベーシック認証、-kで証明書の検証をスキップ、-Lでリダイレクトに従う、-iで応答ヘッダーを含める、-fでステータス400以上を失敗として扱う、--max-timeでミリ秒単位の上限を指定します。 -
destination:エージェントごとの--connect-timeout(ミリ秒)。デフォルトは5,000です。 -
ping:pingの--count(デフォルトは5)と、pingごとの--timeout(ミリ秒)。 -
speed:--ping、--download、--uploadのいずれかを指定すると1つのテストだけを実行します(デフォルトでは3つすべてを実行)。--durationで各スループットテストの秒数を指定します(デフォルトは60)。
エージェント間のDNSの不一致を見つける
各Link Agentは、自身のホストのDNSでホスト名を解決します。1つのトンネルのエージェントが異なるネットワークで実行されている場合、同じ名前が異なるアドレスに解決されることがあり、テストがどのエージェントに到達するかによって成功したり失敗したりします。mabl link-agents test destinationは、各エージェントが解決したアドレスを表示し、一致しない場合に警告します。