博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
日志管理之 Docker logs - 每天5分钟玩转 Docker 容器技术(87)
阅读量:6946 次
发布时间:2019-06-27

本文共 1060 字,大约阅读时间需要 3 分钟。

高效的监控和日志管理对保持生产系统持续稳定地运行以及排查问题至关重要。

在微服务架构中,由于容器的数量众多以及快速变化的特性使得记录日志和监控变得越来越重要。考虑到容器短暂和不固定的生命周期,当我们需要 debug 问题时有些容器可能已经不存在了。因此,一套集中式的日志管理系统是生产环境中不可或缺的组成部分。

本章我们将讨论监控容器的各种可用技术和方案,首先会介绍 Docker 自带的 logs 子命令,然后讨论 Docker 的 logging driver,接下来通过实践学习几个已经广泛应用的日志管理方案:ELK、Fluentd 和 Graylog。

Docker logs

我们首先来看一看默认配置下 Docker 的日志功能。

对于一个运行的容器,Docker 会将日志发送到 容器的 标准输出设备(STDOUT)和标准错误设备(STDERR),STDOUT 和 STDERR 实际上就是容器的控制台终端。

举个例子,用下面的命令运行 httpd 容器:

docker run -p 80:80 httpd

因为我们在启动日志的时候没有用 -d 参数,httpd 容器以前台方式启动,日志会直接打印在当前的终端窗口。

如果加上 -d 参数以后台方式运行容器,我们就看不到输出的日志了。

这种情况下如果要查看容器的日志,有两种方法:

  1. attach 到该容器。

  2.  docker logs 命令查看日志。

先来看 attach 的方法。运行 docker attach 命令。

attach 到了 httpd 容器,但并没有任何输出,这是因为当前没有新的日志信息。

为了产生一条新的日志,可以在 host 的另一个命令行终端执行 curl localhost

这时,attach 的终端就会打印出新的日志。

attach 的方法在实际使用中不太方便,因为:

  1. 只能看到 attach 之后的日志,以前的日志不可见。

  2. 退出 attach 状态比较麻烦(Ctrl+p 然后 Ctrl+q 组合键),一不小心很容器将容器杀掉(比如按下 Ctrl+C)。

查看容器日志推荐的方法是用 docker logs 命令。

docker logs 能够打印出自容器启动以来完整的日志,并且 -f 参数可以继续打印出新产生的日志,效果上与 Linux 命令 tail -f 一样。

下一节我们讨论 Docker 如何支持多种日志方案。

书籍:
1.《每天5分钟玩转Docker容器技术》


2.《每天5分钟玩转OpenStack》

转载地址:http://zponl.baihongyu.com/

你可能感兴趣的文章
笔记:非阻塞读终端和等待超时
查看>>
sublime2 text编辑器最新使用技巧
查看>>
Ionic3--禁用页面返回按钮
查看>>
软件版本定义【转、原】
查看>>
微服务架构设计基础之立方体模型
查看>>
linux通过Git快速部署项目
查看>>
CDN a,b,c三种鉴权的PHP代码
查看>>
Else从句
查看>>
DIV盒子模型理解的总结
查看>>
win7始终以管理员权限运行软件
查看>>
percona-server-5.6.25-73.1安装笔记---配置篇
查看>>
Function和function
查看>>
java socket 注意的地方
查看>>
Oracle11gR2DataGuardSetupusingOracleGridControl
查看>>
Android 之 JNI 开发 详解 - NDK从入门到精通
查看>>
pyspider爬虫学习-教程1-HTML-and-CSS-Selector.md
查看>>
乐视秒杀:每秒十万笔交易的数据架构解读
查看>>
设置ToggleButton、Switch、CheckBox和RadioButton的显示效果
查看>>
[MySQL优化案例]系列 — 索引、提交频率对InnoDB表写入速度的影响
查看>>
windows上传文件到linux及从linux下载文件到windows
查看>>