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角色的用户访问集群。
流程
将现有
KataConfigCR 中的logLevel字段更改为debug:oc patch kataconfig <kataconfig> --type merge --patch '{"spec":{"logLevel":"debug"}}'$ oc patch kataconfig <kataconfig> --type merge --patch '{"spec":{"logLevel":"debug"}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 监控
kata-oc机器配置池,直到UPDATED的值为True,表示所有 worker 节点都已更新:oc get mcp kata-oc
$ oc get mcp kata-ocCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE kata-oc rendered-kata-oc-169 False True False 3 1 1 0 9h
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE kata-oc rendered-kata-oc-169 False True False 3 1 1 0 9hCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
使用机器配置池中的节点启动 debug 会话:
oc debug node/<node_name>
$ oc debug node/<node_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将根目录改为
/host:chroot /host
# chroot /hostCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证
crio.conf文件中的更改:crio config | egrep 'log_level
# crio config | egrep 'log_levelCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
log_level = "debug"
log_level = "debug"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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
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”
$ oc debug node/<nodename> -- journalctl -D /host/var/log/journal -t kata -g “reading guest console”Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要查看 Kata 运行时日志,请运行以下命令:
oc debug node/<nodename> -- journalctl -D /host/var/log/journal -t kata
$ oc debug node/<nodename> -- journalctl -D /host/var/log/journal -t kataCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要查看
virtiofsd日志,请运行以下命令:oc debug node/<nodename> -- journalctl -D /host/var/log/journal -t virtiofsd
$ oc debug node/<nodename> -- journalctl -D /host/var/log/journal -t virtiofsdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要查看 QEMU 日志,请运行以下命令:
oc debug node/<nodename> -- journalctl -D /host/var/log/journal -t kata -g "qemuPid=\d+"
$ oc debug node/<nodename> -- journalctl -D /host/var/log/journal -t kata -g "qemuPid=\d+"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其他资源
- 在 OpenShift Container Platform 文档中收集有关集群的数据 https://docs.redhat.com/documentation/en/openshift_container_platform/4.18/html/support/index#support_gathering_data_gathering-cluster-data