5.7. クラスターノードジャーナルログのクエリー
個別のクラスターノードの /var/log
内で journald
ユニットログおよびその他のログを収集できます。
前提条件
-
cluster-admin
ロールを持つユーザーとしてクラスターにアクセスできる。 -
OpenShift CLI (
oc
) がインストールされている。 - API サービスが機能している。
- ホストへの 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.16 クラスターノードは、イミュータブルです。クラスターの変更を適用するには、Operator を使用します。SSH を使用したクラスターノードへのアクセスは推奨されません。SSH 経由で診断データの収集を試行する前に、
oc adm must gather
およびその他のoc
コマンドを実行して収集されるデータが十分であるかどうかを確認してください。ただし、OpenShift Container Platform API が利用できない場合や、kubelet がターゲットノードで適切に機能しない場合、oc
操作がその影響を受けます。この場合は、代わりにssh core@<node>.<cluster_name>.<base_domain>
を使用してノードにアクセスできます。