分享好友 最新动态首页 最新动态分类 切换频道
Docker--容器监控与日志管理
2024-12-26 23:36

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除

Docker--容器监控与日志管理

一、Docker监控工具

二、容器日志工具docker logs

三、第三方日志工具

四、容器日志驱动

五、示例

5.1、查看容器中运行的进程的信息

5.2、查看容器的资源使用情况

5.3、使用cAdvisor监控容器

5.4、使用Weave Scope监控容器

六、使用docker logs命令查看容器日志

七、配置日志驱动

7.1、配置默认的日志驱动

7.2、配置容器的日志驱动

八、容器日志清理

九、将容器的日志重定向到Linux日志

9.1、将容器日志记录到syslog

9.2、将容器日志记录到journald

十、使用Logspout收集所有容器的日志

10.1、将所有容器的输出路由到远程syslog

10.2、通过HTTP查看Logsput收集的日志


Docker自带监控命令docker psdocker topdocker stats等命令(输出的数据比较有限)。

第三方工具:Google的cAdvisor

Weave Scope是一款开源的故障诊断与监控工具,除Docker外,还可用于Kubernetes集群

Docker自带的docker logs命令输出正在运行的容器的日志信息,而docker service logs命显示服务中的所有容器的日志信息(这个命令适用于集群环境)。

常用的是由3个开源组件ElasticsearchLogstashKibana组成的ELK日志系统

  • Elasticsearch分布式搜索引擎
  • Logstash可以日志进行收集和分析,并将其存储下来供以后使用
  • Kibana可以为Logstash和Elasticsearch提供日志分析Web界面,用来汇总、分析和搜索重要的日志数据。

在ELK日志系统中Logstash获取Docker中的日志,然后将日志转发给Elasticsearch进行索引,Kibana提供日志的分析和可视化

 

Logspout将来自某个主机上的所有容器的所有日志汇集到所需的何目标中。它是一个无状态的容器化程序,并不是用来管理日志文件或查看日志的,主要用于将所在机上容器的日志转发到其他地方。目前它只捕获容器中的程序发送到STDOUT和STDERR的日志。

Docker默认的日志驱动是json-file。在启动容器时可以通过--log-driver选项配置日志驱动

选项值说明none禁用容器日志,docker logs 命令不会输出任何日志信息json-fileDocker默认的日志驱动。该驱动将日志保存在JSON文件中,Docker 负责格式化其内容并输出到STDOUT和STDERRsyslog将日志信息写入syslog日志系统,syslog守护进程必须在主机上运行journald将日志信息写入joumald 日志系统,joumald 守护进程必须在主机上运行gelf将日志信息写入像Graylog 或 Logstash这样的GELF(Graylog Extended Log Format)终端fluentd将日志信息写入fluentd, fuentd守护进程必须在主机上运行splunksplunk 将日志信息写入使用 HTTP 事件搜集器的 splunk

使用Docker CE时,docker logs 命令只能用于localjson-filejournald日志驱动。

docker top命令查看容器中正在运行的进程的信息,其语法

 

容器运行时不一定提供/bin/bash终端来交互执行top命令,而且容器中可能没有top命令

 

该命令后面的ps选项是指Linux操作系统ps命令的选项,可用于显示特定信息:例如

 

查看所有正在运行的容器中的进程信息

 
 

docker stats命令实时查看容器的系统资源使用情况,其语法

 

主要选项有下

选项说明--all(-a)显示所有的容器,包括未运行的。默认仅显示正在运行的容器。--format根据指定格式显示内容--no-stream仅显示第1条记录(只输出当前的状态)--no-trunc不截断输出,显示完整的信息
 

若不想持续监控容器使用资源情况,可通过--no-stream选项只输出当前的状态

 

可以提供容器名称或ID参数查看指定容器的资源使用情况。

通过--format选项自定义输出的内容和格式

 
 

cAdvisor是一个开源软件,可以在主机上以原生程序的方式安装,也可以作为容器运行。

5.3.1、启动两个容器作为测试

 

5.3.2、创建并启动cAdvisor容器

 

其中4个 --volume:选项所定义的绑定挂载都不能缺少,否则会无法连接到Docker守护进程

--publish 8080:8080:示对外暴露8080以提供服务

--detach:选项表示容器创建以后以分离方式在后台运行,让其自动完成监视功能。

对于运行CentOS或RHEL操作系统的主机来说,应当加上选项(容器中的root才拥有真正的root权限)。

5.3.3、访问cAdvisor监控服务

5.3.4、cAdvisor配置

--storage_duration:历史数据保存的时间,默认为2min

--allow_dynamic_housekeeping:控制cAdvisor如何和何时执行周期性的容器状态收集工作

--global_housekeeping_interval:设置检测是否有新容器的时间周期

--housekeeping_interval:统计每个容器数据的时间周期,默认每1s读取一次数据,选取统计到的最近60个数据

 

当然还可设置相应的存储驱动以及配置参数将数据导出到数据库。

功能

  • 实时了解容器状态
  • 提供内部细节与深度链接
  • 支持容器的交互与管理
  • 提供插件进程扩展与定制

5.4.1、安装Weave Scope

(1)创建文件夹并上传weave scope二进制文件

 

scope.bin资源已上传

(2)修改scope.bin文件为可执行文件

 

(3)执行文件

 
 

5.4.2、熟悉Weave Scope操作界面

5.4.4、监控主机

实验完毕,自行恢复实验环境。

对于一个运行中的容器,Docker会将日志发送到容器的STDOUT和STDERR上,可以将STDOUT和STDERR视为容器的控制台终端。

  • 如果容器以前台方式运行,日志就会输出到当前的终端端口
  • 如果容器以后台方式运行,使用docker attach连接到后台容器的控制台终端,查看日志(没必要使用)Docker自带的docker logs命令专门查看容器的日志。

 

其他选项说明如下

  • --details:显示更为详细的日志信息
  • --follow(-f):跟踪日志输出
  • --since:显示自某个时间开始的所有日志
  • --tail:仅列出最新N条容器日志
  • --timestamps(-t):显示时间戳
  • --until:显示到某个截止时间的所有日志
 
 
 

daemon.json文件(Linux主机中一般位于/etc/docker目录,Windows中一般位于C:ProgramDataDockerconfig)中的log-driver值设为日志驱动名称即可配置驱动。

 

如果日志驱动有可配置的选项,则可以在daemon.json文件的关键字log-opts中以JSON格式设置。

 

获取当前Docker守护进程的默认日志驱动

 
 

启动容器时,通过选项将其匹配成与Docker守护进程使用不同的日志驱动。如果日志驱动有可配置选项,则可通过一个或多个选项--log-opt<名称>=<值>)进行设置。

 
 

容器的日志文件会占据大量的磁盘空间。在Linux中,容器日志一般放在/var/lib/docker/containers/container_id目录下以josn.log结尾的文件中。

这里提供一个shell脚本清理正在运行的容器的日志

 

根本上解决日志占用空间问题--限制容器的日志大小上限。在deamon.json配置文件中为Docker守护进程设置日志驱动时,可通过log-opts选项来限制日志大小的上限

 

对于某个容器的日志大小限制,可以通过Docker Compose配置文件的max-size选项来实现

 
 
 
  • syslogLinux标配的日志记录工具rsyslog是syslog的多线程增强版,也是CentOS7默认的日志系统
  • syslog用来收集系统产生的各种日志,日志文件默认放在/var/log目录下。
  • 选择syslog作为日志驱动可将日志定向输出到syslog日志系统,前提是syslog守护进程必须在容器所在Docker主机运行

 

默认情况,系统在日志数据中使用容器ID的前12个字符来标识容器。

使用docker logs命令获取redis容器的日志信息,会给出

 
 

journald是一个收集并存储日志数据的systemd日志系统服务,将日志数据存储在带有索引的结构化二进制文件中,便于集中查看和管理,使用journalctl命令查看

选择journald作为日志驱动可将日志定向输出到systemd日志系统

 
 

Logspout本身是基于Alpine Linux构建的Docker容器。Docker主机启动一个容器运行Logspout服务,Logspout复制将同一主机上其他容器的日志根据路由设置转发给不同的日志接收端。实际中,Logspout通常将所有容器的全部日志发布到Logstash。这里转发到简单的syslog服务器中为例

将syslog的URL作为命令即可。这里以本机rsyslog服务作为远程syslog服务器。修改配置文件/etc/rsyslog.conf

 

这样就运行rsyslog服务在UDP的514端口上接收日志信息了

保存配置,重启rsyslog,然后检查确认514端口已开启

 

启动louspout容器,将日志转发到Docker主机的syslog服务中

 

logspout容器要访问守护进程来获取日志信息,因此将Docker主机的UNIX Socket挂载到容器内部

打开一个终端窗口,使用tail工具监控系统日志文件/var/log/messages

 

打开另一个窗口,执行以下命令启动一个redis容器

 

回到tail监控窗口,会发现显示了关于该容器输出的日志信息,再使用docker logs获取redis容器的日志信息,两者完全一致。实验完毕,关闭删除容器。

只需读取HTTP数据流,即可实时查看生成的聚合日志。使用Logspout的HTTP流模块

 

打开另一个终端,执行容器操作。切回前面的终端窗口,会发现关于容器操作的日志流,如果收集到多个容器的日志流,则将以不同的颜色显示不同容器的日志


在此,我要对所有为知识共享做出贡献的个人和机构表示最深切的感谢。同时也感谢每一位花时间阅读这篇文章的读者,如果文章中有任何错误,欢迎留言指正。

最新文章
滁州琅琊区蛙人水下封堵-善于管理「施工单位」(2025新+排名一览)
滁州琅琊区蛙人水下封堵-善于管理「施工单位」(2025新+排名一览)标题:滁州琅琊区蛙人水下封堵:守护城市水下安全近年来,我国城市化进程的加快,城市水下基础设施的安全维护日益受到重视。滁州琅琊区作为一座历史悠久的城市,其水下基础设
“适度宽松”所释放的重要信号(2024版)(文字版+视频版合集)
每年的年底都有定调来年楼市关键会议,今天会议也出来了,房地产相关,天狼明天在给大家细说,今晚同样也是说重点的,那么是什么样的重点呢?适度宽松,对于这四个字,稍微熟悉楼市的购房者基本是熟悉的,今晚天狼给大家说下对于楼市而言,
如何搭建小程序?
随着移动互联网的普及,小程序已经成为了一种非常流行的应用方式,因为它可以在不需要下载安装的情况下提供完整的应用体验。因此,越来越多的人开始关注如何搭建小程序。下面,我们来简单介绍一下如何搭建小程序。现在,无需找app开发公司
附件上传的大小限制
IIS6 默认允许的附件最大上传大小为4M,在IIS7之前,当我们需要扩大这个上传限制时,比如需要将允许上传的附件上限设置为50M,则可以在web.config中做如下配置:system.webhttpRuntime maxRequestLength="51200" //system.web2. maxAllowed
百度怎么开户投放广告
百度怎么开户投放广告?作为中国最大的搜索引擎,百度每天都要处理数以亿计的搜索请求,这也为广告主们提供了一个广阔的广告投放平台。如何在百度上开户并投放广告,让自己的品牌和产品得到更好的曝光和推广,是许多广告主关注的问题。本文
高清美女写真生成:超简单的AI绘图工具推荐与使用指南
限时免费,点击体验最近超火的AI生图神器,坐拥3000美女的大男主就是你! https://ai.sohu.com/pc/generate/textToImg?_trans_=030001_yljdaimn 宝子们,想象一下,你在家里随便拍拍,竟能产生出超逼真的美女写真,这不是电影里的情节,而
sem竞价代运营公司主要负责哪些工作?揭秘sem代运营的核心职责!
在数字营销这片浩瀚的海洋中,SEM竞价代运营公司就像那艘稳健的航船,载着企业在波涛汹涌的市场中破浪前行。那么,这些代运营公司究竟负责哪些工作?他们又是如何助力企业实现营销目标的呢?今天,咱们就来揭秘SEM代运营的核心职责,让您对
以图搜图
点击详情进入查看更多搜图工具网站服务:常用搜索,以图搜图,识图,以图搜图,图像检索,图像识别,图片识别,图片搜索,图像搜索,识图,搜图,找图,拍图,拍照,常用推荐,常用搜索,以图搜图。百度图像搜索-领先的图像识别技术连接人
长沙NOIP信息学奥赛集训营咨询热线:   在线咨询: 点击交谈
长沙NOIP信息学奥赛信息 长沙NOIP信息学奥赛集训营是长沙青少儿教育品牌,形成了以乐高创意启蒙课程、人工智能编程、智能机器人编程、信息学奥赛编程等课程体系为核心,集国内外大型权威科技赛事、少儿资格认证考试、科技主题的国内外游学
相关文章
推荐文章
发表评论
0评