Docker的监控

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: Docker的监控

docker-compose回顾:


模板命令:

docker-compose.yml


version: "3"     #最新支持到3.8 https://docs.docker.com/engine/reference/builder/


services:    #用来书写当前项目中的那些容器、服务

 tomcat:

   image: hub.c.163.com/library/tomcat #指定使用镜像

   container_name: tomcat        #指定容器名

   ports:                 #指定端口映射

     - "8080:8080"

   volumes:                #数据卷共享

    #- /root/apps:/usr/local/tomcat/webapps    #使用自定义路径映射数据卷

     - tomcatwebapps:/usr/local/tomcat/webapps #使用自动数据卷

   networks:    #当前服务使用哪个网桥

     - tomnet

   depends_on:    #把下列依赖的服务先启动,自己再启动;体现了容器的编排

     - mysql

     - redis

   healthcheck: #实现docker引擎和容器的心跳检查

     test: ["CMD","curl","-f","http://localhost"]

     interval: 1m30s

     timeout: 10s

     retries: 3

   ulimits:    #修改容器中最大进程数和文件数限制

     nproc: 65535

     nofile:

       soft: 20000

       hard: 40000


 mysql:

   image: mysql:5.7

   container_name: mysql

   ports:

     - "3306:3306"

   volumes:

     - mysqldata:/var/lib/mysql

     - mysqlconf:/etc/mysql

   environment:

     MYSQL_ROOT_PASSWORD: 123.com    #修改环境信息,改root密码

   networks:

     - tomnet


 redis:

   image: redis:5.0.10

   container_name: redis

   ports:

     - "6379:6379"

   volumes:

     - redisdata:/data

   networks:

     - tomnet

   command: "redis-server --appendonly yes"    #容器执行命令


volumes:    #声明上面自动数据卷

 tomcatwebapps:    #声明数据卷名,自动创建项目名开头的卷名

   external:        #使用自定义外部卷名

     true/false    #true 需要提前手动创建这个命名的数据卷

 mysqldata:

 mysqlconf:

 redisdata:


networks:    #声明服务的网桥

 tomnet:    #定义项目开头的网桥名,默认类型bridge

   external:  #是否使用外部提前创建的网桥,true为确定

     true


============================================

Docker自带的监控命令


docker top   #容器的动态进程

docker stats #列出每个容器的cpu、内存、io  

docker logs  #查看容器日志  emerg  alert   crit  error  warning  notice  info  debug



一、sysdig


轻量级的系统监控程序


docker run -it --rm --name sysdig --privileged=true \

--volume=/var/run/docker.sock:/host/var/run/docker.sock \

--volume=/dev:/host/dev --volume=/proc:/host/proc:ro \

--volume=/boot:/host/boot:ro --volume=/lib/modules:/host/lib/modules:ro \

--volume=/usr:/host/usr:ro sysdig/sysdig



//如果下载插件失败,可以运行下边的命令,重新下载

sysdig-probe-loader


//下载成功之后,可以运行sysdig命令,查看监控项

csysdig


sysdig容器是以privileged方式运行,而且会读取操作系统 /dev,/proc等数据,这是为了获取足够的系统信息。


csysdig

view

Containers

选择对应容器

sysdig的特点:


(1)监控信息全,包括Linux操作系统和容器


(2)界面交互性强


(3)缺点是sysdig显示的是实时数据,看不到变化和趋势。而且是命令行操作方式,需要ssh到host上执行,不是太方便


二.Weave scope

图形化的显示,能够直观的看到容器资源使用情况,便于理解,监控和控制容器


官方安装命令:

sudo curl -L git.io/scope -o /usr/local/bin/scope

sudo chmod a+x /usr/local/bin/scope

scope launch



推荐安装命令,提供基本身份验证功能:

sudo curl -L https://github.com/weaveworks/scope/releases/download/latest_release/scope -o /usr/local/bin/scope


sudo chmod a+x /usr/local/bin/scope

 

scope launch -app.basicAuth -app.basicAuth.password 123456 -app.basicAuth.username user -probe.basicAuth -probe.basicAuth.password 123456 -probe.basicAuth.username user


使用 Scope:

成功启动scope后,可以在浏览器中方法http://ip:4040,如果端口没有修改默认是4040。之后输入用户名和密码进入监控首页


一般我们可以点击Container查看容器的情况,这里一般会列出你自己的容器和weave自带的容器,通过名字可以区别。点击相应容器可以对它进行在线bash操作,或者重启,暂停,关闭容器


点击Hosts按钮,可以对自己的主机进行监控和操作,当然也可以在线bash


点击by image可以看到自己现在docker中所有的镜像



PS: scope可以监控单台dockerhost,也可以监控多台的dockerhost,监控 效果只需在运行scope launch  本机IP地址   其他IP地址,不过需要注意的是如果是多台的dockerhost,在运行前,保证主机名不能冲突,区别主机名。


若要监控多台dockerhost  以docker01和docker02举例,需要分别运行scope launch 本地ip 另外一台主机ip来实现


[root@docker01 ~]# scope launch 192.168.8.10 192.168.8.20

1c4f97ee6dc2543e32961bd7be155fda256797532a6787807c28c666f9612ab7

Scope probe started

Weave Scope is listening at the following URL(s):

 * http://172.19.0.1:4040/

 * http://172.20.0.1:4040/

 * http://192.168.10.100:4040/

 * http://172.22.16.1:4040/

 * http://192.168.122.1:4040/


root@docker02 ~]# scope launch 192.168.8.20 192.168.8.10

3d1f206dda3f5a0aa476b646eccb86814bb48611b11aac771ba60b7e5476875c

Scope probe started

Weave Scope is listening at the following URL(s):

 * http://192.168.10.101:4040/

 * http://192.168.122.1:4040/


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
3月前
|
监控 网络协议 Linux
使用Docker部署监控服务Uptime Kuma并实现无公网ip远程访问本地服务
使用Docker部署监控服务Uptime Kuma并实现无公网ip远程访问本地服务
151 0
|
9月前
|
Prometheus 监控 Cloud Native
Docker的监控-Prometheus(普罗米修斯)
Docker的监控-Prometheus(普罗米修斯)
641 0
|
7月前
|
Prometheus 监控 Cloud Native
【云原生】Docker容器命令监控+Prometheus监控平台
【云原生】Docker容器命令监控+Prometheus监控平台
223 0
【云原生】Docker容器命令监控+Prometheus监控平台
|
5月前
|
监控 Ubuntu Docker
Sentry 监控 Docker 方式部署
Sentry 监控 Docker 方式部署
142 0
|
5天前
|
存储 运维 监控
【Docker专栏】Docker日志管理与监控的最佳方法
【5月更文挑战第7天】本文探讨了Docker容器的日志管理与监控,强调其在运维中的重要性。Docker默认使用`json-file`日志驱动,可通过`docker logs`命令查看。建议选择合适日志驱动,配置日志选项,并集成ELK Stack等工具进行高级分析。实时监控、设置警报、分析数据和审计日志是实践关键。最佳实践包括日志数据与容器数据分离、使用日志代理、保护敏感信息及遵守法规。关注新技术以提升系统稳定性和安全性。
【Docker专栏】Docker日志管理与监控的最佳方法
|
13天前
|
运维 Prometheus 监控
构建高效稳定的Docker容器监控体系
【4月更文挑战第29天】在微服务架构日益普及的当下,Docker作为轻量级容器的代表,被广泛应用于服务部署与管理。然而,随之而来的是复杂化的服务监控问题。本文旨在探讨如何构建一个高效且稳定的Docker容器监控体系,确保服务的高可用性。我们将从监控工具的选择、关键监控指标的确定,以及告警机制的设计等方面进行详细阐述,并提供一系列优化实践,以期为运维人员提供参考和指导。
|
14天前
|
Prometheus 监控 Cloud Native
构建高效的Docker容器监控体系
【4月更文挑战第28天】 在微服务架构和容器化部署日益普及的今天,对容器进行有效的性能监控成为确保系统稳定性的关键。本文将深入探讨如何构建一个高效的Docker容器监控体系,覆盖从监控指标的选择、数据采集、存储到可视化展示的全流程。我们将分析现有监控工具的优势与局限,并提出一种综合使用Prometheus、Grafana和自定义监控脚本的解决方案,旨在为运维人员提供实时、准确的容器监控数据,帮助快速定位并解决潜在问题。
17 1
|
24天前
|
存储 运维 监控
构建高效稳定的Docker容器监控体系
【4月更文挑战第18天】 在现代微服务架构中,Docker容器已成为部署和运行应用的标准环境。随之而来的挑战是如何有效监控这些容器的性能与健康状况,确保系统的稳定性和可靠性。本文将探讨构建一个高效稳定的Docker容器监控体系的关键技术和方法,包括日志管理、性能指标收集以及异常检测机制,旨在为运维人员提供实用的指导和建议。
|
1月前
|
运维 监控 安全
构建高效稳定的Docker容器监控体系
【4月更文挑战第3天】 在微服务架构和云计算的大潮中,Docker容器技术以其轻量级、快速部署和易于管理的优势成为了众多企业的选择。然而,随着容器化应用的增多,如何保障这些运行在容器中的应用稳定高效地工作,成为运维人员面临的新挑战。本文将探讨构建一个高效且稳定的Docker容器监控体系的方法和实践,以期帮助企业更好地管理其容器化环境。
16 1
|
2月前
|
运维 监控 云计算
构建高效稳定的Docker容器监控体系
随着微服务架构的普及,Docker容器作为其核心承载单元,在系统运维中扮演着日益重要的角色。本文旨在探讨如何构建一个高效且稳定的Docker容器监控体系,以确保容器运行的可靠性和系统的高可用性。文章首先分析了容器监控的必要性,接着详细介绍了监控体系的设计理念和组件选择,最后提供了实施过程中的关键步骤与最佳实践。通过本文,读者将掌握构建和维护Docker容器监控体系的有效方法。