下载
中文
注册

边缘容器日志输出指导

使用背景

由于边缘设备(如Atlas 500 A2 智能小站)存储空间有限,并且边缘设备多采用eMMC等flash作为存储介质,该介质存在使用寿命的限制。为避免存储空间过快被写满从而影响业务或存储介质过快达到使用寿命,用户可以参考本章节边缘容器日志的输出建议,使边缘容器以合适的方式输出日志。

输出方式

当前Atlas硬件上运行的边缘容器应用一般是通过K8s兼容的边缘管理平台来进行管理,如华为云IEF或基于KubeEdge搭建的第三方边缘平台等。在该平台下,容器日志的输出方式主要分为以下三种:

  • 容器控制台标准输出(STDOUT和STDERR)方式
  • (推荐)挂载到主机目录方式
  • 容器日志直接输出到日志服务

如果系统中有日志服务器,建议直接在容器中将日志输出到日志服务中;如果没有,建议采用挂载到主机目录的方式输出日志,减少日志对硬件和其他业务影响的风险。

容器控制台标准输出方式

在这种方式下,应用将容器的日志输出到标准输出。缺省情况下,Docker引擎捕捉所有容器的标准输出,使用JSON格式写入到文件里,该文件会保存到主机的“/var/lib/docker/containers/containerid”目录下,如图1所示。

图1 containerid-json.log文件所在路径示例

如果边缘管理平台不支持该目录下日志文件的绕接或日志绕接配置错误,会导致/var/lib/docker被占满,从而影响新容器的部署及其他容器业务的正常运行。故不建议采用该方式。

(推荐)挂载到主机目录方式

该方式下边缘平台日志收集的方式如图2所示。

图2 方案架构

应用将容器日志挂载到边缘主机上。边缘管理平台提供主机上日志收集能力,并将主机文件日志进行绕接。

  • 应用可以将容器日志挂载到主机上的非关键大容量目录,建议不要挂载到eMMC等存储介质上,避免影响硬件整体寿命。
  • 边缘容器管理平台一般会支持该能力,以减少对系统目录var/lib/docker的影响。基于安全性考虑,该配置需要符合所在组织的安全要求。

容器日志直接输出到日志服务

图3所示,应用环境里如果有日志服务器,可以将日志直接输出到外部日志服务器,使日志不在边缘环境里落盘,最大限度减少对硬件和其他业务的影响。

图3 方案架构