Runtime Fabric のトラブルシューティングガイド

このトピックでは、Anypoint Runtime Fabric をインストールするときの一般的なエラーとその解決手順について説明します。

完全なネットワーク評価の取得

ネットワークの全体的な健全性評価を取得するには、次のコマンドを実行します。

/opt/anypoint/runtimefabric/rtfctl status

rtfctl を使用したネットワーク接続のトラブルシューティング

すべての Anypoint Runtime Fabric クラスターには Anypoint コントロールプレーンとの接続が必要であり、接続が干渉されると機能が制限され、結果としてアプリケーションのデプロイメントに失敗したり、Anypoint Runtime Manager で状況が低下したりするおそれがります。

rtfctl​ を使用して、Runtime Fabric に必要なアウトバウンド接続があることを確認するだけでなく、接続に関する問題をトラブルシューティングすることができます。

アウトバウンド接続の確認

各ノードで、​「rtfctl のインストール」​の手順に従って ​rtfctl​ をインストールします。 クラスターのすべてのコントローラーノードとワーカーノードで次のコマンドを実行し、必要なアウトバウンド接続を確認します。

rtfctl test outbound-network

サンプル出力:

[root@rtf-controller-1 runtimefabric]# ./rtfctl test outbound-network
Using proxy configuration from Runtime Fabric (proxy "", no proxy "")

Using 'US' region
transport-layer.prod.cloudhub.io:443 ✔
https://anypoint.mulesoft.com ✔
https://worker-cloud-helm-prod.s3.amazonaws.com ✔
https://exchange2-asset-manager-kprod.s3.amazonaws.com ✔
https://ecr.us-east-1.amazonaws.com ✔
https://494141260463.dkr.ecr.us-east-1.amazonaws.com ✔
https://prod-us-east-1-starport-layer-bucket.s3.amazonaws.com ✔
https://runtime-fabric.s3.amazonaws.com ✔
tcp://dias-ingestor-nginx.prod.cloudhub.io:5044 ✔

アウトバウンド接続に問題があり、Runtime Fabric が必要な Anypoint コントロールプレーンサービスのいずれかにアクセスできない場合、ネットワークチームと協力して​「ポートの IP とホスト名の許可リストへの追加」​で説明されているように必要なポート IP およびホスト名を許可リストに追加していることを確認してください。

失敗したインストールの再開

init スクリプトを実行することで、インストールが失敗した時点からそのインストールを再開できます。

  • AWS および手動インストール:

    /opt/anypoint/runtimefabric/init.sh
  • Azure インストール:

    /opt/anypoint/runtimefabric/script.sh

アプリケーションデプロイメントの問題のトラブルシューティング

まれに、Anypoint Monitoring エージェントが原因でアプリケーションがデプロイされないこともあります。このような状況では、次のいずれかの現象が発生する可能性があります。

  • アプリケーションが ​Deploying​ 状態のままになる

  • Error starting monitoring agent (code -1)

この場合、アプリケーションを再デプロイし、次のカスタムプロパティを設定します。

+

anypoint.platform.config.analytics.agent.enabled=false

Anypoint Monitoring エージェントによって、デプロイされたアプリケーションの状態が変更されることもあります。次のいずれかの現象が発生した場合、

  • アプリケーションが ​Running​ から ​Applying​ に移行

  • Monitoring agent has exited with code -1

これはエージェントが再起動していることを示します。実行中のアプリケーションへの影響はありません。アプリケーションメトリクスはキューに追加され、エージェントの再起動後に再度収集されます。

アプリケーションのランタイムの問題のトラブルシューティング

次のいずれかの Runtime Fabric アラートメッセージが報告された場合、1 つ以上のコントローラーノードの回復が必要になる場合があります。

Management plane is unreachable

InfluxDB is down or no connection between Kapacitor and InfluxDB

Node is down

CRITICAL / Kubernetes node is not ready: <ip_address>

CRITICAL / etcd: cluster is unhealthy

ターミナルを開き、​gravity status​ コマンドを実行して、クラスターおよび個々のコンポーネントの健全性状況を取得します。

ノードを回復するには、​「Runtime Fabric からのノードの追加または削除」​で提供されている手順に従います。

環境変数の問題のトラブルシューティング

この手順では、インストールプロセスで手順を実行するために必要な変数を検出します。この変数をインストールに提供する方法は、インストールを実行する場所により異なります。

  • AWS の場合、変数は terraform スクリプトで設定され、​/opt/anypoint/runtimefabric/env​ に配置されているファイルに出力されます。

  • Azure の場合、変数は ARM テンプレートの実行時に設定され、仮想マシンインスタンスでタグとして取得されます。

  • 手動インストールの場合、ユーザーが ​/opt/anypoint/runtimefabric/env​ にある値を使用してファイルを作成します。

このプロパティを取得したら、Anypoint Platform に接続して ​RTF_ACTIVATION_DATA​ 値に基づいて追加の値を取得するための手順が実行されます。

一般的なエラー

アクティベーションデータ値に問題がある場合や、インスタンスでのインターネットアクセスに問題がある場合、次のエラーが発生することがあります。

curl: (7) Failed connect to anypoint.mulesoft.com:443; Operation now in progress
Error: Failed to fetch registration properties. (000). Please check your token is valid


============ Error ============
Exit code: 1
Line:

このエラーが確認された場合、次の操作を実行してください。

  • インスタンスにアウトバウンドインターネット接続があることを確認します。簡単な検証方法は、次のコマンドを実行し、301 応答が返されることを確認することです。

    curl https://anypoint.mulesoft.com
  • ネットワーク接続の初期化が完了しなかった場合は、インストール手順を再度実行します。

    • Azure では、スクリプトは ​/opt/anypoint/runtimefabric/script.sh foreground​ にあります。

    • AWS および手動インストールでは、スクリプトは ​/opt/anypoint/runtimefabric/init.sh foreground​ にあります。

  • Anypoint Runtime Manager で作成された Runtime Fabric と比較することで、 アクティベーションデータ値が正しいことを検証します。

問題が引き続き発生する場合は、サポートチケットを申請して詳細なサポートを要求してください。

インストールパッケージの問題のトラブルシューティング

この手順では、必要なパッケージをインスタンスにインストールします。​yum​ パッケージリポジトリを使用して、必要なパッケージのダウンロードとインストールを行います。

一般的なエラー

この手順でエラーがある場合、以下を確認します。

  • インスタンスにアウトバウンドインターネット接続があることを確認します。簡単な検証方法は、次のコマンドを実行し、301 応答が返されることを確認することです。

    curl https://anypoint.mulesoft.com
  • 手動インストールを実行している場合、​init.sh​ スクリプトがルート権限で実行されていることを確認します。

    sudo ./init.sh foreground
  • 必要なパッケージの 1 つを手動でインストールし、インストールスクリプト以外でインストールが成功するかどうかを確認します。

    sudo yum install -y chrony
    • 成功しない場合、運用チームに問い合わせて、サポートを要求してください。インスタンスへの昇格したアクセス権の要求が必要になる場合があります。

パッケージの手動インストールが成功した場合や、引き続きサポートが必要な場合は、サポートチケットを申請してください。

オペレーションセンターの監視およびログの問題のトラブルシューティング

1 つ以上のノードの再起動後にオペレーションセンターの監視およびログの再起動に失敗した場合、すべての VM でポート転送ルールが適用されており、VM で実行されている Kubernetes ポッドにトラフィックを伝送できることを確認します。詳細は、​「firewalld を使用する場合の転送の有効化」​を参照してください。

ディスクのフォーマットおよびマウント

この手順では、​RTF_DOCKER_DEVICE​ または ​RTF_ETCD_DEVICE​ 変数が提供されているブロックデバイスまたはディスクに対して次のタスクを実行します。

  1. インスタンスで使用可能なブロックデバイスに値がマップされていることを確認するチェックを実行します。

  2. ディスクがすでにマウントされている場合は、マウント解除します。

  3. ディスクをフォーマットします。

  4. マウントエントリを ​/etc/fstab​ ファイルに追加します。

  5. $DOCKER_MOUNT​ または ​$ETCD_MOUNT​ の値に基づいてディレクトリを作成します。

  6. 上記で作成した予期されるディレクトリにディスクをマウントします。

RTF コンポーネントのインストール

この手順では、Anypoint Platform に接続し、Runtime Fabric コンポーネントをクラスターにダウンロードしてインストールします。

デプロイメントが時間制限内に完了できない場合、この手順でエラーが返されることがあります。

...
[OK]
Installing Runtime Fabric Agent. This may take several minutes...
configmap "grafana-dashboards" deleted
configmap "kapacitor-alerts" deleted
Release "runtime-fabric" does not exist. Installing it now.
The following deployments failed to become ready within the time limit:
monitor ---
Name:           monitor-79c7564b77-wb9c6
Namespace:      rtf
Node:           10.165.12.87/10.165.12.87
Start Time:     Thu, 13 Dec 2018 20:23:59 +0000
Labels:         app=monitor
                pod-template-hash=3573120633
Annotations:    checksum/config=4c4aac48d9cc8b24828b38ba0eb587840bc17b2449a54d593f74e2d58e5c12ae
                kubernetes.io/psp=privileged
                seccomp.security.alpha.kubernetes.io/pod=docker/default
Status:         Running
IP:             10.244.82.17
Controlled By:  ReplicaSet/monitor-79c7564b77
Containers:
...
<< More information displayed that describes the deployment manifest and stack trace >>

このエラーが確認された場合、次の操作を実行してください。

  • アウトバウンド TCP ポート 5672 がインターネットに対して開かれていることを確認します。内部ネットワークで実行されているコントローラー VM からインターネット上のこのホスト名への接続が許可されている必要があります。

  • インターネットへの接続を確立するには、TCP プロキシが必要になる場合があります。必要に応じて、ネットワークチームと連携して検証と確認を行ってください。必要な情報については、​ネットワークとポートの要件​ページを参照してください。