ログは、さまざまなサービスによって自動的に生成されます。ログ バンドルは、vRealize Automation で生成できます。ログを vRealize Log Insight に自動的に送信するように環境を設定することもできます。

vracli コマンド ライン ユーティリティの詳細を確認するには、vracli コマンド ラインで --help 引数(vracli log-bundle --help など)を使用します。

vRealize Log Insight の使用に関する関連情報については、vRealize Automation で vRealize Log Insight へのログ転送を設定する方法を参照してください。

ログ バンドル コマンド

ログ バンドルを作成して、実行するサービスから生成されるすべてのログを含めることができます。ログ バンドルには、すべてのサービス ログが含まれます。ログ バンドルはトラブルシューティングに使用できます。

クラスタ化された環境(高可用性モード)では、1 台のノードでのみ vracli log-bundle コマンドを実行します。環境内のすべてのノードからログがプルされます。ただし、ネットワークや他のクラスタに問題が発生した場合は、到達可能なすべてのノードからログが取得されます。たとえば、3 ノードのクラスタで 1 台のノードが切断された場合、ログは 2 台の健全なノードからのみ収集されます。vracli log-bundle コマンドからの出力には、検出された問題とその回避策の手順に関する情報が含まれています。

  • ログ バンドルを作成するには、任意のノードに SSH 接続し、次の vracli コマンドを実行します。

    vracli log-bundle

  • 各ノードからログを収集する際のタイムアウト値を変更するには、次の vracli コマンドを実行します。

    vracli log-bundle --collector-timeout $CUSTOM_TIMEOUT_IN_SECONDS

    たとえば、環境に大きなログ ファイルが含まれている、ネットワークが遅い、または CPU 使用率が高い場合は、タイムアウトをデフォルト値の 1,000 秒よりも大きく設定することをお勧めします。

  • ebsvro などの特定のサービス ログで使用されているディスク容量を確認するには、次の vracli コマンドを実行してコマンド出力を調べます。

    vracli disk-mgr

  • アセンブリのタイムアウトやバッファの場所など、その他のオプションを設定するには、次の vracli help コマンドを使用します。

    vracli log-bundle --help

ログ バンドルの構造

ログ バンドルは、タイムスタンプ付きの tar ファイルです。バンドルの名前は、log-bundle-<date>T<time>.tar ファイルというパターンになります。たとえば、log-bundle-20200629T131312.tar です。通常、ログ バンドルには環境内のすべてのノードのログが含まれています。エラーが発生した場合は、できるだけ多くのログが記録されます。ローカル ノードからのログは最小限含まれています。

ログ バンドルは、次の内容で構成されます。
  • 環境ファイル

    環境ファイルには、さまざまな Kubernetes メンテナンス コマンドの出力が含まれています。現在のリソース使用に関する情報が、ノード別およびポッド別に提供されます。また、使用可能なすべての Kubernetes エンティティのクラスタ情報と説明も含まれています。

  • ホスト ログと設定

    各ホストの設定(/etc ディレクトリなど)とホスト固有のログ(journald など)は、1 台のクラスタ ノードまたはホストにつき 1 つのディレクトリに収集されます。ディレクトリ名は、ノードのホスト名と一致します。ディレクトリの内部コンテンツは、ホストのファイル システムと一致します。ディレクトリの数はクラスタ ノードの数と一致します。

  • サービス ログ
    Kubernetes サービスのログは、次のフォルダ構造内にあります。
    • <hostname>/services-logs/<namespace>/<app-name>/file-logs/<container-name>.log
    • <hostname>/services-logs/<namespace>/<app-name>/console-logs/<container-name>.log

    ファイル名は、my-host-01/services-logs/prelude/vco-app/file-logs/vco-server-app.log のような形になります。

    • hostname は、アプリケーション コンテナが現在実行されている、または過去に実行されていたノードのホスト名です。通常は、各サービスのノードごとに 1 つのインスタンスがあります。たとえば、3 台のノードがあればインスタンスも 3 つです。
    • namespace は、アプリケーションが展開されている Kubernetes 名前空間です。ユーザー向けのサービスの場合、この値は prelude です。
    • app-name は、ログを生成した Kubernetes アプリケーションの名前(たとえば provisioning-service-app)です。
    • container-name は、ログを生成したコンテナの名前です。一部のアプリケーションは複数のコンテナで構成されています。たとえば、vco-app コンテナには vco-server-app コンテナと vco-controlcenter-app コンテナが含まれています。
  • (レガシー)ポッド ログ

    vRealize Automation 8.2 でログ アーキテクチャが変更されるまで、サービス ログはログ バンドル内の各ポッドのディレクトリに置かれていました。vracli log-bundle --include-legacy-pod-logs コマンドを使用することによって引き続きバンドル内にポッド ログを生成できますが、すべてのログ情報はすでに各サービスのログに存在するため、これは推奨されません。ポッド ログを含めると、ログ バンドルの生成に必要な時間と容量が不必要に増加する可能性があります。

ログ バンドルのサイズの削減

生成されるログ バンドルのサイズを削減するには、次のいずれかの vracli log-bundle コマンドを使用します。

  • vracli log-bundle --since-days n

    このコマンドを使用すると、過去 n 日間に生成されたログ ファイルのみが収集されます。それ以外の場合は、過去 2 日間のログが収集および保持されます。例:

    vracli log-bundle --since-days 1

  • vracli log-bundle --services service_A,service_B,service_C

    このコマンドを使用すると、指定したサービスのログのみが収集されます。例:

    vracli log-bundle --services ebs-app,vco-app

  • vracli log-bundle --skip-heap-dumps

    このコマンドを使用すると、生成されるログ バンドルからすべてのヒープ ダンプが除外されます。

ログの表示

vracli logs <pod_name> コマンドを使用して、サービス ポッドまたはアプリケーションのログを出力することができます。

次のコマンド オプションを使用できます。
  • --service

    単一のポッドではなく、アプリケーションのすべてのノードのログを 1 つにマージして表示します

    例:vracli logs --service abx-service-app

  • --tail n

    ログの最後の n 行を表示します。n のデフォルト値は 10 です。

    例:vracli logs --tail 20 abx-service-app-8598fcd4b4-tjwhk

  • --file

    指定したファイルのみを表示します。ファイル名が指定されていない場合は、すべてのファイルが表示されます。

    例:vracli logs --file abx-service-app.log abx-service-app-8598fcd4b4-tjwhk

ログのローテーションについて

ログのローテーションについては、サービス ログに関する以下の事項を考慮します。
  • すべてのサービスからログが生成されます。サービス ログは専用の /var/log/services-logs ディスクに格納されます。
  • すべてのログは定期的にローテーションされます。ローテーションは、1 時間ごと、または一定のサイズ制限に達したときに発生します。
  • すべての古いログのローテーションは、いずれかの時点で圧縮されます。
  • ログのローテーションに対するサービス単位の割り当て容量はありません。
  • システムは、可能なかぎり多くのログを保持します。ログのために使用されているディスク領域は、自動化によって定期的にチェックされます。ログのディスク領域が 70% に達すると、60% になるまで古いログが消去されます。
  • さらに多くの領域が必要な場合は、ログ ディスクのサイズを変更します。vRealize Automation アプライアンスのディスク容量の拡張を参照してください。

ログのディスク領域を確認するには、次の vracli コマンドを実行します。/dev/sdc(/var/log) の空き容量は、各ノードで 30% 以上にする必要があります。

# vracli cluster exec -- bash -c 'current_node; vracli disk-mgr; exit 0'
sc1-10-182-1-103.eng.vmware.com
/dev/sda4(/):
	Total size: 47.80GiB
	Free: 34.46GiB(72.1%)
	Available(for non-superusers): 32.00GiB(66.9%)
	SCSI ID: (0:0)
/dev/sdb(/data):
	Total size: 140.68GiB
	Free: 116.68GiB(82.9%)
	Available(for non-superusers): 109.47GiB(77.8%)
	SCSI ID: (0:1)
/dev/sdc(/var/log):
	Total size: 21.48GiB
	Free: 20.76GiB(96.6%)
	Available(for non-superusers): 19.64GiB(91.4%)
	SCSI ID: (0:2)
/dev/sdd(/home):
	Total size: 29.36GiB
	Free: 29.01GiB(98.8%)
	Available(for non-superusers): 27.49GiB(93.7%)
	SCSI ID: (0:3)