网站首页 > 开源技术 正文
Docker能够将应用程序与基础架构分开,从而可以快速交付软件。通过利用 Docker 的方法来快速交付,测试和部署代码,可以大大减少编写代码和在生产环境中运行代码之间的延迟。
现在不少公司使用了Docker技术,它给我们带来便利的同时,也带来了挑战,比如对Docker的监控,本文介绍两种比较快捷的方法:
Docker Stats
该监控工具是Docker引擎自带的,使用起来比较方便,在shell中直接输入“docker stats”:
监控项默认包含CPU、内存、网络、硬盘和容器创建的进程或线程的数量。如果想查看指定容器使用的CPU使用情况,可以使用过滤,
aneirin@host-1:~$ docker stats --format "{{.Name}}\t{{.CPUPerc}}" coredns_coredns_1 trickster-demo_trickster_1
cAdvisor
“cAdvisor”是由Google开发的一款容器监控软件,提供内容丰富的Web UI做展示。cAdvisor不仅可以对Docker运行的容器进行监控,其他类型的“容器”也可以监控。cAdvisor运行也特别方便,但它需要访问物理机的一些目录,下面所示:
docker run \
--rm \
--name cadvisor \
-p 8080:8080 \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:rw \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
google/cadvisor
运行后,访问链接“http://localhost:8080”,可以查看cAdvisor的Web UI界面,如下,
如前文所讲,依赖google的“lmctfy”,cAdvisor可以监控多种类型的容器,点击指定的“Subcontainers”可以查看详情,
Prometheus
上面介绍的两种方法可以实时得到Docker的metrics,但是不方便对容器历史性能Metrics进行分析,这时需要依赖“Prometheus”的协助。
Prometheus是开源的监控和告警套件,诞生于2012年,非常适合用来存储时序数据,即按相同时序(相同名称和标签),以时间维度存储连续的数据集合。Prometheus有几种获取metrics的方式,最常用是直接请求暴露Metrics的Web API。
输出Docker引擎的实时Metrics到Prometheus,这里介绍两种方法,
1,直接采集Docker引擎暴露的Metrics
Docker引擎可以使能输出Metrics(默认是关闭的),修改Docker的配置文件,
/etc/docker/daemon.json
{
"metrics-addr" : "10.1.1.2:9323",
"experimental" : true
}
2,通过cAdvisor采集Docker引擎的Metrics
采用这种方式,不用额外做任何配置,因为默认cAdvisor就会输出Docker引擎的各类Metrics,通过访问“http://localhost:8080/metrics”便可得到Metrics。
配置Prometheus
Prometheus访问Web API获取Metrics,因此配置文件中需要写明拉取的目标URL,示例配置文件,
global:
scrape_interval: 15s
scrape_timeout: 10s
evaluation_interval: 15s
scrape_configs:
- job_name: cAdvisor
scrape_interval: 5s
static_configs:
- targets:
- cadvisor-IP:8080
- job_name: docker-deamon
scrape_interval: 5s
static_configs:
- targets:
- host-running-docker-IP:9323
容器方式运行Prometheus,
docker run \
--rm \
-p 9090:9090 \
--name prometheus \
-v ${PWD}/prometheus.yml:/etc/prometheus/prometheus.yml:ro \
prom/prometheus --config.file=/etc/prometheus/prometheus.yml
通过上面的方式从两个不同的数据源获取Docker引擎Metrics并存储。这样就能方便的查看历史数据,配合Grafana便可以得到美观清晰的Dashboard。
总结
文章介绍了两种比较常用的获取Docker Metrics的方法,最后对Prometheus的使用做了简单介绍。
希望这篇文章能帮到正在努力的你,欢迎评论关注!
猜你喜欢
- 2024-10-15 Docker命令大全:从基础管理到高级实践
- 2024-10-15 10分钟知晓这些Docker监控工具(docker swarm 监控)
- 2024-10-15 Prometheus(普罗米修斯)介绍(普罗米修斯深度解析知乎)
- 2024-10-15 自动伸缩你的应用(自动伸缩装置怎么做?)
- 2024-10-15 十次方社交系统 第10章-容器管理与容器监控
- 2024-10-15 APO 集成生态exporter一键完成指标采集
- 2024-10-15 容器化时代的默认的监控方式(什么是容器化运行)
- 2024-10-15 详解docker部署prometheus+grafana监控系统体系,值得收藏
- 2024-10-15 docker 监控方案介绍(docker 网络监控)
- 2024-10-15 一起学习Kubernetes:通信、控制器、租约、cgroupv2、CRI和GC
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)