トラブルシューティングでよく使うコマンド

Anypoint Service Mesh をトラブルシューティングするときは、いろいろな共通タスクの実行が必要な場合があります。

アダプターログを取得する

問題をトラブルシューティングする場合に単一ポッドのアダプターログを取得する手順は次のとおりです。

$ kubectl -n service-mesh logs $(kubectl -n service-mesh get pod -l namespace=​replace_with_namespace​ -o jsonpath='{.items[0].metadata.name}') -c mule

複数のレプリカがある場合は、​items​ 配列のインデックスを変更してください。

アダプターにアクセスする

Anypoint Service Mesh をトラブルシューティングするときは、アダプターに関する情報へのアクセスと表示が必要な場合があります。

アダプターポッドの情報を表示する手順は次のとおりです。

  1. 名前空間 service-mesh で作成されているすべてのポッドを表示します。

    $ kubectl get pods -n service-mesh

  2. アダプターにアクセスします。

    $ kubectl -n service-mesh exec -ti ​adapter-pod-name

アダプターからポリシーとコントラクト情報を取得する

Anypoint Service Mesh をトラブルシューティングするときは、ポリシーとコントラクトの詳細の取得が必要な場合があります。この詳細を取得するには、Anypoint Service Mesh の管理ダンプファイルを取得します。

+ $ asmctl management dump

+ 情報は ​replace_with_adapter_name​-policies-folder.tar.gz​ フォルダーから表示できます。

Log4j 設定を変更する

Anypoint Service Mesh をトラブルシューティングするときは、Log4j 設定の変更が必要な場合があります。

  1. アダプターポッドを表示します。

    $ kubectl get pods -n service-mesh

  2. 現在の log4j 設定をダウンロードします。

    $ kubectl cp -c mule service-mesh/​replace_with_grpcmule_pod_name​:/usr/src/app/conf/log4j2.xml log4j2.xml

  3. ダウンロードした log4j2.xml を必要に応じて更新してから、再びポッドにアップロードします。

    $ asmctl management config log4j --namespace=_replace_with_namespace --log4jFile=log4j2.xml

    log4j​ 設定ファイルは 60 秒ごとに変更をチェックするため、変更内容が確認されるまで待つ必要があります。

Service Mesh ライセンスを更新する

Anypoint Service Mesh をトラブルシューティングするときは、ライセンスの更新が必要な場合があります。

  1. 既存のライセンスを有効なライセンスで更新します。

    $ asmctl management config license --license=/path/to/license.lic

  2. アダプターを再デプロイします。

    $ kubectl -n service-mesh patch $(kubectl -n service-mesh get deploy -l namespace=​replace_with_namespace​ -oname) --type=json -p="[{\"op\": \"replace\", \"path\": \"/spec/template/metadata/annotations/kubectl.kubernetes.io~1restartedAt\",\"value\":\"$(date -u +%FT%TZ)\"}]"