Microsoft のサポートでは、特定のシナリオで Nexus Kubernetes クラスター内での可視性の向上が必要になる場合があります。 これを容易にするために、ログ収集スクリプトを使用できます。 このスクリプトは、必要なすべてのログを取得し、Microsoft サポートが問題をより深く理解し、効果的にトラブルシューティングできるようにします。
収集される内容
ログ コレクター スクリプトは、トラブルシューティングと分析を目的として、システムのさまざまな側面にわたってデータを包括的に収集するように設計されています。 収集する診断データの種類の概要を次に示します。
システムとカーネルの診断
- カーネル情報: 詳細なカーネル診断のためのログ、人間が判読できるメッセージ、バージョン、アーキテクチャ。
- オペレーティング システム ログ: システム サービスのシステム アクティビティとコンテナー ログの詳細を示す重要なログ。
ハードウェアとリソースの使用状況
- CPU と IO のスロットリングされたプロセス: スロットリングの問題を特定し、パフォーマンスのボトルネックに関する詳細な分析情報を提供します。
- ネットワーク インターフェイスの統計情報: エラーとドロップを診断するためのネットワーク インターフェイスの詳細な統計情報。
ソフトウェアとサービス
- インストール済みパッケージ: システムのソフトウェア環境を理解するために不可欠な、インストールされているすべてのパッケージの一覧。
- アクティブなシステム サービス: アクティブなサービス、プロセス スナップショット、詳細なシステムとプロセスの統計情報に関する情報。
- コンテナー ランタイムと Kubernetes コンポーネントのログ: Kubernetes コンポーネントのログと、クラスター診断用のその他の重要なサービス。
ネットワークと接続性
- ネットワーク接続追跡情報: ファイアウォール診断の Conntrack 統計と接続リスト。
- ネットワーク構成とインターフェイスの詳細: インターフェイスの構成、IP ルーティング、アドレス、および近隣情報。
- 追加のインターフェイス構成とログ: ノード内のすべてのインターフェイスの構成に関連するログ。
- ネットワーク接続テスト: 外部ネットワーク接続と Kubernetes API サーバー通信をテストします。
- DNS 解決の構成: ドメイン名解決の問題を診断するための DNS リゾルバーの構成。
- ネットワークの構成とログ: 接続の追跡やインターフェイスの構成を含む包括的なネットワーク データ。
- コンテナー ネットワーク インターフェイス (CNI) の構成: コンテナー ネットワーク診断用の CNI の構成。
セキュリティとコンプライアンス
- SELinux の状態: SELinux モードを報告して、アクセス制御とセキュリティ コンテキストを理解します。
- IPtables ルール: ファイアウォール設定に関する分析情報を得るための IPtables ルールセットの構成。
ストレージとファイルシステム
- マウント ポイントとボリュームの情報: マウント ポイント、ボリューム、ディスクの使用状況、およびファイルシステムの詳細。
Azure Arc azcmagent ログ
- Azure に接続されたマシン エージェントと拡張機能のログ ファイルを ZIP アーカイブに収集します。
構成と管理
- システム構成: カーネル ランタイム構成の包括的なビューの Sysctl パラメーター。
- Kubernetes の構成と正常性: 構成やサービスの一覧など、Kubernetes のセットアップの詳細。
- コンテナー ランタイム情報: 構成、バージョン情報、および実行中のコンテナーの詳細。
- コンテナー ランタイム インターフェイス (CRI) 情報: コンテナー ランタイム インターフェイスの操作データ。コンテナー オーケストレーション診断に役立ちます。
前提条件
- Nexus Kubernetes クラスター ノードへの SSH アクセス権があることを確認します。 ノードへの直接 IP 到達可能性がある場合は、SSH 接続を直接確立します。 それ以外の場合は、コマンド
az ssh arcでサーバーに Azure Arc を使用します。 さまざまな接続方法の詳細については、 クラスターへの接続 に関する記事を参照してください。
Execution
ノードへの 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)
注
プレースホルダー変数を、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 サポートのサポート チケットにアップロードしてログを確認できます。