11.2. 收集日志数据
以下功能和对象与 OpenShift 沙盒容器关联:
- 属于 OpenShift 沙盒容器资源的所有命名空间及其子对象
- 所有 OpenShift 沙盒容器自定义资源定义 (CRD)
您可以为使用 kata
运行时运行的每个 pod 收集以下组件日志:
- Kata 代理日志
- Kata 运行时日志
- QEMU 日志
- 审计日志
- CRI-O 日志
11.2.1. 为 CRI-O 运行时启用调试日志
您可以通过更新 KataConfig
CR 中的 logLevel
字段来启用调试日志。这会更改运行 OpenShift 沙盒容器的 worker 节点的 CRI-O 运行时中的日志级别。
先决条件
-
已安装 OpenShift CLI(
oc
)。 -
您可以使用具有
cluster-admin
角色的用户访问集群。
流程
将现有
KataConfig
CR 中的logLevel
字段更改为debug
:$ oc patch kataconfig <kataconfig> --type merge --patch '{"spec":{"logLevel":"debug"}}'
监控
kata-oc
机器配置池,直到UPDATED
的值为True
,表示所有 worker 节点都已更新:$ oc get mcp kata-oc
输出示例
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE kata-oc rendered-kata-oc-169 False True False 3 1 1 0 9h
验证
使用机器配置池中的节点启动 debug 会话:
$ oc debug node/<node_name>
将根目录改为
/host
:# chroot /host
验证
crio.conf
文件中的更改:# crio config | egrep 'log_level
输出示例
log_level = "debug"
11.2.2. 查看组件的调试日志
集群管理员可以使用调试日志进行故障排除。每个节点的日志会输出到节点日志中。
您可以查看以下 OpenShift 沙盒容器组件的日志:
- Kata 代理
-
Kata runtime (
containerd-shim-kata-v2
) -
virtiofsd
QEMU 仅生成警告和错误日志。这些警告和错误会在 Kata 运行时日志和带有额外的 qemuPid
字段的 CRI-O 日志中打印到节点日志。
QEMU 日志示例
Mar 11 11:57:28 openshift-worker-0 kata[2241647]: time="2023-03-11T11:57:28.587116986Z" level=info msg="Start logging QEMU (qemuPid=2241693)" name=containerd-shim-v2 pid=2241647 sandbox=d1d4d68efc35e5ccb4331af73da459c13f46269b512774aa6bde7da34db48987 source=virtcontainers/hypervisor subsystem=qemu Mar 11 11:57:28 openshift-worker-0 kata[2241647]: time="2023-03-11T11:57:28.607339014Z" level=error msg="qemu-kvm: -machine q35,accel=kvm,kernel_irqchip=split,foo: Expected '=' after parameter 'foo'" name=containerd-shim-v2 pid=2241647 qemuPid=2241693 sandbox=d1d4d68efc35e5ccb4331af73da459c13f46269b512774aa6bde7da34db48987 source=virtcontainers/hypervisor subsystem=qemu Mar 11 11:57:28 openshift-worker-0 kata[2241647]: time="2023-03-11T11:57:28.60890737Z" level=info msg="Stop logging QEMU (qemuPid=2241693)" name=containerd-shim-v2 pid=2241647 sandbox=d1d4d68efc35e5ccb4331af73da459c13f46269b512774aa6bde7da34db48987 source=virtcontainers/hypervisor subsystem=qemu
当 QEMU 启动时,Kata 运行时会在 QEMU 启动时打印 Start logging QEMU
,并在 QEMU 停止时停止日志记录 QEMU
。使用 qemuPid
字段的两个日志消息之间会出现这个错误。QEMU 的实际错误消息以红色显示。
QEMU 客户机的控制台也会输出到节点日志中。您可以查看客户机控制台日志以及 Kata 代理日志。
先决条件
-
已安装 OpenShift CLI(
oc
)。 -
您可以使用具有
cluster-admin
角色的用户访问集群。
流程
要查看 Kata 代理日志和客户机控制台日志,请运行以下命令:
$ oc debug node/<nodename> -- journalctl -D /host/var/log/journal -t kata -g “reading guest console”
要查看 Kata 运行时日志,请运行以下命令:
$ oc debug node/<nodename> -- journalctl -D /host/var/log/journal -t kata
要查看
virtiofsd
日志,请运行以下命令:$ oc debug node/<nodename> -- journalctl -D /host/var/log/journal -t virtiofsd
要查看 QEMU 日志,请运行以下命令:
$ oc debug node/<nodename> -- journalctl -D /host/var/log/journal -t kata -g "qemuPid=\d+"
其他资源
- 在 OpenShift Container Platform 文档中收集有关集群的数据 https://docs.redhat.com/documentation/en/openshift_container_platform/4.17/html/support/index#support_gathering_data_gathering-cluster-data