我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Docker容器的日志如何处理

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Docker容器的日志如何处理

这篇文章主要介绍“Docker容器的日志如何处理”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Docker容器的日志如何处理”文章能帮助大家解决问题。

docker有很多的日志插件,默认使用 json-file,只有使用json-file时,sudo docker logs -f 才可以显示,输入以下命令查看docker日志插件:

$ sudo docker info | grep logging

这里先说明一下,当容器运行时,docker会在宿主机上创建一个该容器相关的文件,然后将容器产生的日志转存到该文件下。docker logs -f 命令就会找到该文件内容并显示在终端上。

我们都知道docker logs -f会将所有对应的服务日志输出到终端,无论服务的部署在哪个节点上,那么我现在提出一个问题,是否每个节点对应的容器文件,都会保存该服务的完整日志备份,还是只保存该节点服务对应容器产生的日志?

因为这个问题涉及到每个节点如果都用filebeat监听宿主机的容器日志文件,那么如果每个节点的容器日志都是一个完整的备份,日志就会重复,如果只是保存该节点上容器的日志,就不会。

答案是只保留该节点上容器的日志,docker logs -f 命令只不过在overlay网络模型上走了一层协议,把在其它节点上的相同的容器日志汇聚起来。

默认使用docker的json-file,首先配置daemon:

$ sudo dockerd \
--log-driver=json-file \
--log-opt labels=servicename

启动容器需要添加如下参数:

$ sudo docker service update --label servicename=test

或者直接在docker-compose.yml中标记:

version: "3"

services:
 go-gin-demo:
  image: chenghuizhang/go-gin-demo:v3
  ports:
   - 8081:8081
  networks:
   - overlay
  deploy:
   mode: replicated
   replicas: 3
  labels:
   servicename: go-gin-demoxxxxxxx
  logging:
   options:
    labels: "servicename"

networks:
 overlay:

在每个节点安装filebeat,并且filebeat.yml配置如下:

filebeat.prospectors:
- type: log
  paths:
  		# 容器的日志目录
   - /var/lib/docker/containers 目录中,格式如下:

{
  "log":"[gin-debug] [warning] now gin requires go 1.6 or later and go 1.7 will be required soon.",
  "stream":"stderr",
  "attrs":{
    "tag":"chenghuizhang/go-gin-demo:v3@sha256:e6c0419d64e5eda510056a38cfb803750e4ac2f0f4862d153f7c4501f576798b/mygo.2.jhqptjugfti2t4emf55sehamo/647eaa4b3913",
    "servicename":"test"
  },
  "time":"2019-01-29t10:08:59.780161908z"
}

在logstash中格式化日志:

filter {
 grok {
  patterns_dir => "/etc/logstash/conf.d/patterns"
  match => {"message" => "%{timestamp_iso8601:time}%{servicename:attr.servicename}%{docker_tag:attr.tag}"}
}

关于“Docker容器的日志如何处理”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Docker容器的日志如何处理

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

docker logs如何查看docker容器日志

这篇文章将为大家详细讲解有关docker logs如何查看docker容器日志,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。通过docker logs命令可以查看容器的日志。命令格式:$ docker l
2023-06-14

Docker容器日志如何查看和清理

这篇文章主要介绍了Docker容器日志如何查看和清理的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Docker容器日志如何查看和清理文章都会有所收获,下面我们一起来看看吧。问题:docker容器日志随着时间变得
2023-07-05

docker如何查看运行容器日志

这篇文章主要讲解了“docker如何查看运行容器日志”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“docker如何查看运行容器日志”吧!1. 查看运行着的容器docker ps -a2. 查
2023-07-05

Docker容器中的Nginx日志管理与分析(如何管理和分析运行在Docker中的Nginx日志?)

Docker容器中的Nginx日志管理和分析至关重要,分为收集、查看和分析三个步骤。常用日志格式包括CLF、ELF和JSON。最佳实践包括日志轮换、压缩和监控。使用Docker日志驱动程序、日志分析工具和命令行命令来管理和分析日志。DockerCompose和自定义日志级别提供了进一步的灵活性。
Docker容器中的Nginx日志管理与分析(如何管理和分析运行在Docker中的Nginx日志?)
2024-04-02

docker容器启动失败如何查看日志

这篇文章主要介绍了docker容器启动失败如何查看日志问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-05-20

如何理解docker日志引擎

这篇文章将为大家详细讲解有关如何理解docker日志引擎,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。docker原生支持众多的日志引擎,适用于各种不同的应用场景,小编对其作一个简单的说明。
2023-06-04

docker查看运行容器日志的步骤

本文主要介绍了docker查看运行容器日志的步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-03-02

filebeat如何收集容器日志

要使用Filebeat收集容器日志,首先需要安装和配置Filebeat。1. 安装Filebeat:根据操作系统的不同,可以从Elastic官方网站下载并安装适合的Filebeat版本。2. 配置Filebeat:打开Filebeat配置文
2023-10-11

PHP中如何处理日志错误?

PHP是一种广泛应用于Web开发的脚本语言,其应用场景很多,例如网站、CMS、后台管理系统等。随着业务的复杂度提高,出现错误的可能性也会增大,这时候就需要系统的错误日志记录,方便开发人员及时排查问题。以下是针对PHP中如何处理日志错误的一些
PHP中如何处理日志错误?
2023-12-18

编程热搜

目录