AKS中kubelet日志存储位置及Log Analytics查看问题咨询
Azure AKS中Log Analytics未采集kubelet日志的排查要点
- 先查omsagent的采集配置
默认的omsagent DaemonSet不一定会自动开启kubelet日志采集,得看看container-azm-ms-agentconfig这个ConfigMap里有没有相关规则。执行命令:
kubectl get configmap container-azm-ms-agentconfig -n kube-system -o yaml
如果没找到kubelet相关配置,就在log_collection_settings.linux节点下加上:
kubelet: enabled: true path: /var/log/kubelet.log
修改后重启omsagent DaemonSet生效。
确认Log Analytics的Kubernetes解决方案已启用
光有OperationalInsights工作区还不够,得确保工作区里加了Kubernetes服务这个解决方案——它专门负责收集kubelet这类组件日志。去Azure门户的Log Analytics工作区里,找“解决方案”选项,检查Kubernetes服务是不是已经添加了。找对日志存储的表
kubelet日志在Log Analytics里一般存在ContainerLog或者KubeletLog表(不同版本可能有区别),可以用Kusto查询试试:
ContainerLog | where LogEntry contains "kubelet" | take 10
或者直接查KubeletLog表:
KubeletLog | take 10
- 检查omsagent Pod的状态和日志
看看kube-system下的omsagent Pod是不是都正常Running,有没有权限或者采集报错:
kubectl get pods -n kube-system | grep omsagent kubectl logs <你的omsagent Pod名称> -n kube-system
如果Pod因为权限问题读不了/var/log/kubelet.log,得调整Pod的权限配置,确保它能访问日志目录。
内容的提问来源于stack exchange,提问作者Jan Navrátil
相关产品推荐
相关产品推荐

