5.6. クラスターノードジャーナルログのクエリー
個別のクラスターノードの /var/log
内で journald
ユニットログおよびその他のログを収集できます。
前提条件
-
cluster-admin
ロールを持つユーザーとしてクラスターにアクセスできる。 - API サービスが機能している。
-
OpenShift CLI (
oc
) がインストールされている。 - ホストへの SSH アクセスがあること。
手順
OpenShift Container Platform クラスターノードから
kubelet
のjournald
ユニットログをクエリーします。以下の例では、コントロールプレーンノード (別名マスターノード) のみをクエリーします。$ oc adm node-logs --role=master -u kubelet 1
- 1
- 他のユニットログをクエリーするために、
kubelet
を適宜置き換えます。
クラスターノードの
/var/log/
の下にある特定のサブディレクトリーからログを収集します。/var/log/
サブディレクトリー内に含まれるログの一覧を取得します。以下の例では、すべてのコントロールプレーンノードの/var/log/openshift-apiserver/
にあるファイルを一覧表示します。$ oc adm node-logs --role=master --path=openshift-apiserver
/var/log/
サブディレクトリー内の特定ログを確認します。以下の例は、すべてのコントロールプレーンノードから/var/log/openshift-apiserver/audit.log
コンテンツを出力します。$ oc adm node-logs --role=master --path=openshift-apiserver/audit.log
API が機能しない場合は、代わりに SSH を使用して各ノードのログを確認します。以下の例は、
/var/log/openshift-apiserver/audit.log
をベースとしています。$ ssh core@<master-node>.<cluster_name>.<base_domain> sudo tail -f /var/log/openshift-apiserver/audit.log
注記Red Hat Enterprise Linux CoreOS (RHCOS) を実行する OpenShift Container Platform 4.7 クラスターノードは変更できず、Operator を使用してクラスターの変更を適用します。SSH を使用したクラスターノードへのアクセスは推奨されず、ノードは accessed のテイントのマークが付けられます。SSH 経由で診断データの収集を試行する前に、
oc adm must gather
およびその他のoc
コマンドを実行して収集されるデータが十分であるかどうかを確認してください。ただし、OpenShift Container Platform API が利用できない場合や、kubelet がターゲットノードで適切に機能しない場合、oc
操作がその影響を受けます。この場合は、代わりにssh core@<node>.<cluster_name>.<base_domain>
を使用してノードにアクセスできます。