1、用什么监控
CAdvisor是谷歌开发的用于分析运行中容器的资源占用和性能指标的开源工具。CAdvisor是一个运行时的守护进程,负责收集、聚合、处理和输出运行中容器的信息。
2、实验环境
IP | 作用 |
---|---|
10.1.5.56 | 部署了prometheus服务 |
10.1.5.58 | 部署了docker服务,以及cadvisor |
3、启动几个测试的docker容器
我们启动几个nginx容器来做验证;
[root@mysql-2 ~]# docker pull nginx
[root@mysql-2 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 605c77e624dd 2 years ago 141MB
[root@mysql-2 ~]#
然后我们批量启动5个nginx容器;
[root@mysql-2 ~]# for x in $( seq 1 5 );do docker run -d --name nginx${x} nginx;done
2db4aa317d92d5849ad1d3d55da775344c8708f991af811cce477810c92a327c
5012e729483992fb49d44e5870a8351dc5fbbbb551aa71918f6cfcf4a26540f1
9bac136aaa51a817e076d16f175fbe6639623f41c7dc4faf49022fd13a53649d
759fc3f5eaae982b428fd8936f4a4b94721cd42e70698f9b0527c227618c758d
566e118752ee1f3586a43d3b462335011d41a15c6fc4f57e680a294b7b7d31ed
[root@mysql-2 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
566e118752ee nginx "/docker-entrypoint.…" 6 seconds ago Up 4 seconds 80/tcp nginx5
759fc3f5eaae nginx "/docker-entrypoint.…" 7 seconds ago Up 5 seconds 80/tcp nginx4
9bac136aaa51 nginx "/docker-entrypoint.…" 8 seconds ago Up 7 seconds 80/tcp nginx3
5012e7294839 nginx "/docker-entrypoint.…" 9 seconds ago Up 8 seconds 80/tcp nginx2
2db4aa317d92 nginx "/docker-entrypoint.…" 10 seconds ago Up 8 seconds 80/tcp nginx1
[root@mysql-2 ~]#
然后我们的测试环境就搞完了,接下来我们部署cadvisor服务;
4、部署cadvisor服务
[root@mysql-2 ~]# docker pull lagoudocker/cadvisor:v0.37.0
[root@mysql-2 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 605c77e624dd 2 years ago 141MB
lagoudocker/cadvisor v0.37.0 6e37caacdfed 3 years ago 159MB
[root@mysql-2 ~]#
[root@mysql-2 ~]# docker run \
> --volume=/:/rootfs:ro \
> --volume=/var/run:/var/run:ro \
> --volume=/sys:/sys:ro \
> --volume=/var/lib/docker/:/var/lib/docker:ro \
> --volume=/dev/disk/:/dev/disk:ro \
> --publish=8080:8080 \
> --detach=true \
> --name=cadvisor \
> --privileged \
> --device=/dev/kmsg \
> lagoudocker/cadvisor:v0.37.0
0196bfffd811a401bc333fe16406355e96196a865391a35e566d63233fab0e62
[root@mysql-2 ~]#
[root@mysql-2 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0196bfffd811 lagoudocker/cadvisor:v0.37.0 "/usr/bin/cadvisor -…" 15 seconds ago Up 14 seconds (health: starting) 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp cadvisor
566e118752ee nginx "/docker-entrypoint.…" 10 minutes ago Up 10 minutes 80/tcp nginx5
759fc3f5eaae nginx "/docker-entrypoint.…" 10 minutes ago Up 10 minutes 80/tcp nginx4
9bac136aaa51 nginx "/docker-entrypoint.…" 10 minutes ago Up 10 minutes 80/tcp nginx3
5012e7294839 nginx "/docker-entrypoint.…" 10 minutes ago Up 10 minutes 80/tcp nginx2
2db4aa317d92 nginx "/docker-entrypoint.…" 10 minutes ago Up 10 minutes 80/tcp nginx1
[root@mysql-2 ~]#
浏览器访问:http://10.1.5.58:8080/从这个地址可以访问到cadvisor服务的界面,如下:这个服务自带一些监控界面,可以点击看看,例如:可以看到cpu等信息,还是比较实用的。
5、配置prometheus
修改prometheus的配置文件;
[root@test-01 ~]# systemctl cat prometheus
# /usr/lib/systemd/system/prometheus.service
[Unit]
Description=Prometheus service
After=network-online.target
[Service]
Type=simple
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --log.level=warn --storage.tsdb.path=/usr/local/prometheus/data/
Restart=on-failure
ExecStop=/usr/bin/kill -9 MAINPID
[Install]
WantedBy=multi-user.target
[root@test-01 ~]#
[root@test-01 ~]# vim /usr/local/prometheus/prometheus.yml
# 省略部分内容
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
# 省略部分内容
- job_name: "test-01"
- job_name: "windows-01"
static_configs:
- targets: ["10.1.30.238:9182"]
# 以下三行为新增内容
- job_name: "docker-01"
static_configs:
- targets: ["10.1.5.58:8080"]
[root@test-01 ~]# systemctl restart prometheus
访问界面看一下;可以看到已经上线了,然后我们看下是否进行了数据采集;由此可见,数据已经开始正常采集了,就没有问题了。
领取红包,能省则省
“🎉🎁 独家福利来啦!美团、饿了么、滴滴打车、菜鸟裹裹、电影票红包大放送!每天都有哦!🎁🎉
👀 快来瞅瞅,动动手指就能省下一笔!别错过,赶紧按照下方操作领取你的专属红包吧!👇
💬 如果你还有其他想要的红包类型,记得留言告诉我们哦,我们会尽力满足大家的需求!🎁💖”