【dockers监控】

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 【dockers监控】

一.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自带的监控命令 
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.1.100 192.168.1.101
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/
oot@docker02 ~]# scope launch 192.168.10.101 192.168.10.1003d1f206dda3f5a0aa476b646eccb86814bb48611b11aac771ba60b7e5476875c
Scope probe started
Weave Scope is listening at the following URL(s):
  * http://192.168.10.101:4040/
  * http://192.168.122.1:4040/

谢谢大家今天的学习。

相关文章
|
JSON 缓存 NoSQL
Spring Boot/Spring Cloud中Redis报错Connection reset
本文目录 1. 现象 2. 思路 3. 实现 4. 实验
2370 0
|
网络安全 文件存储 虚拟化
【阿里云镜像】使用VM虚拟机安装OpenWRT并更换阿里云镜像源
【阿里云镜像】使用VM虚拟机安装OpenWRT并更换阿里云镜像源
2159 0
【阿里云镜像】使用VM虚拟机安装OpenWRT并更换阿里云镜像源
|
9月前
|
人工智能 自然语言处理 Java
Spring 集成 DeepSeek 的 3大方法(史上最全)
DeepSeek 的 API 接口和 OpenAI 是兼容的。我们可以自定义 http client,按照 OpenAI 的rest 接口格式,去访问 DeepSeek。自定义 Client 集成DeepSeek ,可以通过以下步骤实现。步骤 1:准备工作访问 DeepSeek 的开发者平台,注册并获取 API 密钥。DeepSeek 提供了与 OpenAI 兼容的 API 端点(例如),确保你已获取正确的 API 地址。
Spring 集成 DeepSeek 的 3大方法(史上最全)
|
数据安全/隐私保护
(只需五步)注册谷歌账号详细步骤,解决“此电话号码无法验证”问题
注册google一直不方便,因为如果直接去google官网注册,那么它大概率会显示“此电话号码无法用于进行验证”接下来,按着教程来一步步做,就可以实现跳过此限制,成功用手机号注册google了。很简单的。
19198 1
java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must b
java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must b
1291 0
|
NoSQL 网络协议 Java
Redis客户端Lettuce深度分析介绍(上)
Spring Boot自2.0版本开始默认使用Lettuce作为Redis的客户端(注1)。Lettuce客户端基于Netty的NIO框架实现,对于大多数的Redis操作,只需要维持单一的连接即可高效支持业务端的并发请求 —— 这点与Jedis的连接池模式有很大不同。同时,Lettuce支持的特性更加全面,且其性能表现并不逊于,甚至优于Jedis。本文通过分析Lettuce的特性和内部实现(基于6.0版本),及其与Jedis的对照比较,对这两种客户端,以及Redis服务端进行深度探讨。
103032 8
|
安全 Linux 数据安全/隐私保护
阿里云镜像仓库:拉取和推送Docker镜像
阿里云镜像仓库:拉取和推送Docker镜像
42534 2
阿里云镜像仓库:拉取和推送Docker镜像
|
NoSQL Java Redis
【问题篇】解决Unable to connect to Redis; nested exception is io.lettuce.core.RedisConnectionException
【问题篇】解决Unable to connect to Redis; nested exception is io.lettuce.core.RedisConnectionException
3976 0
|
Prometheus 监控 Cloud Native
微服务框架(十九)Spring Boot 可视化监控 Prometheus + Grafana
  此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。   本文为Spring Boot 通过 micrometer 的监控门面,实现Prometheus + G...