使用Logstash解析Kubernetes系统日志

kxkpmulp  于 12个月前  发布在  Logstash
关注(0)|答案(2)|浏览(147)

Kubernetes将日志保存在/var/log/syslog中。范例:

I1021 12:57:47.052671   35084 setters.go:73] Using node IP: "10.11.22.33."

我知道I代表info,后面跟着一个特定的代码,然后是一个时间戳。但之后的代码是什么?setters.go是什么意思我还看到实际的日志消息出现在]之后。
我想用Logstash解析这些,但我找不到任何关于头中每个字段的含义的文档。
当然,我可以用grok过滤器自己编写这些解析器,但首先我想了解每条消息的含义。

qc6wkl3g

qc6wkl3g1#

I1021 12:57:47.052671 35084 setters.go:73]使用节点IP:“10.11.22.33”

/var/log/syslog或**/var/log/messages**:一般消息以及系统相关信息。从本质上讲,此日志存储全局系统中的所有活动数据。请注意,基于Redhat的系统(如CentOS或Rhel)的活动存储在消息中,而Ubuntu和其他基于Debian的系统则存储在Syslog中。

这是kubelet的入口:
setters.go-是用GO编写的脚本,用于更新节点上的守护进程端点。
73-打印消息的行数
klog.V(2).Infof("Using node IP: %q", nodeIP.String())
如果您使用的是systemd,则应该使用jurnalctl -u kubelet
您还应该检查Kubernetes文档以查看日志。
目前,要深入挖掘集群,需要登录到相关的机器。以下是相关日志文件的位置。(注意,在基于systemd的系统上,您可能需要使用journalctl

Master

  • /var/log/kube-apiserver.log- API服务器,负责提供API服务
  • /var/log/kube-scheduler.log-调度程序,负责制定调度决策
  • /var/log/kube-controller-manager.log-管理复制控制器的控制器

工作节点

  • /var/log/kubelet.log- Kubelet,负责在节点上运行容器
  • /var/log/kube-proxy.log- Kube Proxy,负责服务负载均衡

如果您正在寻找应用程序日志,请检查Troubleshoot Applications

mspsb9vt

mspsb9vt2#

除了Crou提供的内容外,35084还引用了写入日志的进程的PID。然而,查看klog代码,在某个时候,它会出现,这可以改为线程id。

相关问题