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
$ oc adm node-logs --role=master -u kubelet1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- クエリーを実行して他のユニットログを取得するために、
kubeletを適宜置き換えます。
クラスターノードの
/var/log/の下にある特定のサブディレクトリーからログを収集します。/var/log/サブディレクトリー内に含まれるログの一覧を取得します。以下の例では、すべてのコントロールプレーンノードの/var/log/openshift-apiserver/にあるファイルをリスト表示します。oc adm node-logs --role=master --path=openshift-apiserver
$ oc adm node-logs --role=master --path=openshift-apiserverCopy to Clipboard Copied! Toggle word wrap Toggle overflow /var/log/サブディレクトリー内の特定ログを確認します。以下の例は、すべてのコントロールプレーンノードから/var/log/openshift-apiserver/audit.logコンテンツを出力します。oc adm node-logs --role=master --path=openshift-apiserver/audit.log
$ oc adm node-logs --role=master --path=openshift-apiserver/audit.logCopy to Clipboard Copied! Toggle word wrap Toggle overflow 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
$ ssh core@<master-node>.<cluster_name>.<base_domain> sudo tail -f /var/log/openshift-apiserver/audit.logCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記Red Hat Enterprise Linux CoreOS (RHCOS) を実行する OpenShift Container Platform 4.15 クラスターノードは変更できません。クラスターの変更は、Operator を使用して適用します。SSH を使用したクラスターノードへのアクセスは推奨されません。SSH 経由で診断データの収集を試行する前に、
oc adm must gatherおよびその他のocコマンドを実行して収集されるデータが十分であるかどうかを確認してください。ただし、OpenShift Container Platform API が利用できない場合や、kubelet がターゲットノードで適切に機能しない場合、oc操作がその影響を受けます。この場合は、代わりにssh core@<node>.<cluster_name>.<base_domain>を使用してノードにアクセスできます。