在Kubernetes Pod中获取日志的选项

时间:2019-12-17 12:26:53

标签: linux ubuntu logging kubernetes

在kubernetes容器中几乎没有开发人员日志,什么是获取日志以供开发人员查看的最佳方法。

我们可以使用任何特定工具吗?

我可以选择使用Graylog,但是不确定是否可以对其进行自定义以使开发人员登录日志。

2 个答案:

答案 0 :(得分:1)

最基本的方法是只使用kubectl logs命令:

  

在容器或指定资源中打印容器的日志。如果   pod只有一个容器,容器名称是可选的。

Here,您可以找到有关该命令及其标志的更多详细信息以及一些有用的示例。

此外,您可能需要使用:

这两种方法都可以解决您的问题。

请告诉我您是否在想什么,我的回答是否有帮助。

答案 1 :(得分:0)

如果要查看应用程序日志-从开发方面,您只需将日志打印到STDOUTSTDERR流中。

容器运行时(我想是Docker)将重定向这些流 到/var/log/containers
(因此,如果您使用ssh进入Node,则可以运行docker logs <container-id>,并且会看到所有相关日志)。

Kuberentes提供了一种通过kubectl logs <pod-name>访问它的简便方法,就像@Wytrzymały_Wiktor所述。
(请注意,日志每10MB自动旋转一次,因此kubectl logs命令将仅显示最后一次旋转的日志条目。)

如果要将日志发送到中央日志记录系统(例如,ELK,Splunk,Graylog等),则必须通过在群集内运行日志转发器来转发群集中的日志。

例如,可以通过运行 daemonset 来完成此操作,该程序管理每个节点上的Pod,该节点将通过/var/log/containers卷访问日志路径(hostPath),并且将将日志转发到远程端点。参见示例here