第六章:用prometheus来监控docker应用

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服务的界面,如下:c69ff6518b9b1c093bff948cd82e9b4d.png这个服务自带一些监控界面,可以点击看看,例如:adff37cf577345fd4dbea9bb9d29a180.png可以看到cpu等信息,还是比较实用的。fb5cdb90cf611766c3056e8e464342f5.png

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

访问界面看一下;394a57d5a8c7d895906263c44c8212d5.png可以看到已经上线了,然后我们看下是否进行了数据采集;996cf9039b5dcf25c3f2c20fbcf0cab3.png由此可见,数据已经开始正常采集了,就没有问题了。

领取红包,能省则省

“🎉🎁 独家福利来啦!美团、饿了么、滴滴打车、菜鸟裹裹、电影票红包大放送!每天都有哦!🎁🎉

👀 快来瞅瞅,动动手指就能省下一笔!别错过,赶紧按照下方操作领取你的专属红包吧!👇

25e8b145808c5e5b2618eddded2cde8c.png

💬 如果你还有其他想要的红包类型,记得留言告诉我们哦,我们会尽力满足大家的需求!🎁💖”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值