Azure Operator Nexus Kubernetes クラスター ノードでログ コレクター スクリプトを実行する

特定のシナリオで、Microsoft サポートが Nexus Kubernetes クラスター内をより詳細に把握することが必要になる場合があります。 これが円滑に行われるように、ログ収集スクリプトを使用することができます。 このスクリプトを使用すると、必要なすべてのログを取得できるため、Microsoft サポートは問題をより深く理解し、効果的にトラブルシューティングできるようになります。

収集する内容

ログ コレクター スクリプトは、トラブルシューティングと分析の目的で、システムのさまざまな側面のデータを包括的に収集するように設計されています。 収集する診断データの種類の概要を以下に示します。

システムとカーネルの診断

  • カーネル情報: 詳細なカーネル診断のための、ログ、人間が判読できるメッセージ、バージョン、アーキテクチャ。
  • オペレーティング システム ログ: システム サービスのシステム アクティビティおよびコンテナー ログの詳細を示す重要なログ。

ハードウェアとリソースの使用状況

  • CPU と IO の調整プロセス: 調整の問題を特定し、パフォーマンスのボトルネックに関する分析情報を提供します。
  • ネットワーク インターフェイスの統計情報: エラーと切断を診断するためのネットワーク インターフェイスの詳細な統計情報。

ソフトウェアおよびサービス

  • インストール済みパッケージ: システムのソフトウェア環境を把握するために不可欠な、インストール済みのすべてのパッケージの一覧。
  • アクティブなシステム サービス: アクティブなサービス、プロセス スナップショット、詳細なシステムとプロセスの統計に関する情報。
  • コンテナー ランタイムおよび Kubernetes コンポーネントのログ: クラスター診断用の、Kubernetes コンポーネントおよび他の重要なサービスのログ。

Azure ネットワークと接続性

  • ネットワーク接続追跡情報: ファイアウォール診断用の、Conntrack 統計情報と接続の一覧。
  • ネットワーク構成およびインターフェイスの詳細: インターフェイスの構成、IP ルーティング、アドレス、ネイバー情報。
  • 追加のインターフェイス構成とログ: ノード内のすべてのインターフェイスの構成に関連するログ。
  • ネットワーク接続テスト: 外部ネットワーク接続と Kubernetes API サーバー通信をテストします。
  • DNS 解決の構成: ドメイン名解決の問題を診断するための、DNS リゾルバーの構成。
  • ネットワークの構成とログ: 接続の追跡やインターフェイスの構成を含む、包括的なネットワーク データ。
  • コンテナー ネットワーク インターフェイス (CNI) の構成: コンテナー ネットワーク診断用の CNI の構成。

セキュリティとコンプライアンス

  • SELinux の状態: アクセス制御とセキュリティ コンテキストを把握できるように、SELinux のモードを報告します。
  • IPtables ルール: ファイアウォール設定に関する分析情報を得るための、IPtables ルールセットの構成。

ストレージとファイルシステム

  • マウント ポイントとボリュームの情報: マウント ポイント、ボリューム、ディスク使用量、ファイルシステムの仕様に関する詳細情報。

構成と管理

  • システム構成: カーネル ランタイム構成を包括的に把握するための Sysctl パラメーター。
  • Kubernetes の構成と正常性: 構成やサービスの一覧を含む、Kubernetes のセットアップ詳細。
  • コンテナー ランタイム情報: 実行中のコンテナーの構成、バージョン情報、詳細情報。
  • コンテナー ランタイム インターフェイス (CRI) 情報: コンテナーのオーケストレーションの診断に役立つ、コンテナー ランタイム インターフェイスの運用データ。

前提条件

  • Nexus Kubernetes クラスター ノードへの SSH アクセスが確立されていることを確認してください。 ノードへの直接の IP 到達可能性がある場合は、直接、SSH 接続を確立します。 それ以外の場合は、コマンド az ssh arc によって Azure Arc for servers を使用します。 さまざまな接続方法の詳細については、クラスターへの接続に関する記事を参照してください。

実行

ノードへの SSH アクセスを確立できたら、コマンド sudo /opt/log-collector/collect.sh を実行してログ コレクター スクリプトを実行します。

実行すると、次のような出力が表示されます。

Trying to check for root... 
Trying to check for required utilities... 
Trying to create required directories... 
Trying to check for disk space... 
Trying to start collecting logs... Trying to collect common operating system logs... 
Trying to collect mount points and volume information... 
Trying to collect SELinux status... 
.
.
Trying to archive gathered information... 
Finishing up...

        Done... your bundled logs are located in /var/log/<node_name_date_time-UTC>.tar.gz

ログ ファイルをダウンロードする方法

ログ ファイルが生成されたら、SCP、SFTP、Azure CLI などのさまざまな方法を使用して、生成されたログ ファイルをクラスター ノードからローカル コンピューターにダウンロードできます。 ただし、SCP または SFTP については、クラスター ノードへの直接の IP 到達可能性がある場合にのみ使用できることに注意してください。 直接の IP 到達可能性がない場合は、Azure CLI を使用してログ ファイルをダウンロードできます。

このコマンドは、Nexus Kubernetes クラスター ノードへの SSH 接続に使用するコマンドと同じであるため、馴染みがあるはずです。 生成されたログ ファイルをノードからローカル コンピューターにダウンロードするには、ファイルをコピーするために cat コマンドを末尾に追加して、このコマンドをもう一度使用します。

RESOURCE_GROUP="myResourceGroup"
CLUSTER_NAME="myNexusK8sCluster"
SUBSCRIPTION_ID="<Subscription ID>"
USER_NAME="azureuser"
SSH_PRIVATE_KEY_FILE="<vm_ssh_id_rsa>"
MANAGED_RESOURCE_GROUP=$(az networkcloud kubernetescluster show -n $CLUSTER_NAME -g $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID --output tsv --query managedResourceGroupConfiguration.name)

Note

プレースホルダーを、お使いの Azure 環境と Nexus Kubernetes クラスターに関連する実際の値に置き換えてください。

az ssh arc --subscription $SUBSCRIPTION_ID \
    --resource-group $MANAGED_RESOURCE_GROUP \
    --name <VM Name> \
    --local-user $USER_NAME \
    --private-key-file $SSH_PRIVATE_KEY_FILE
    'sudo cat /var/log/node_name_date_time-UTC.tar.gz' > <Local machine path>/node_name_date_time-UTC.tar.gz

上記のコマンドの node_name_date_time-UTC.tar.gz を、クラスター ノードに作成されたログ ファイルの名前に、<Local machine path> を、ファイルを保存するローカル コンピューター上の場所に置き換えてください。

次のステップ

tar ファイルをローカル コンピューターにダウンロードしたら、それをサポート チケットにアップロードして、Microsoft サポートにログを確認してもらうことができます。