Routing on Docker 系列之监控

在本系列的一开始部分我们秉着方便和节约资源的原则来部署我们的路由系统,方便性我们通过脚本方式感受到了,但在节约资源这部分我们还没有提及。今天我将带大家通过对容器性能的监控来一起看一下。

对于容器的监控我推荐使用Prometheus+cAdvisor工具,然后使用Grafana来展示。下面是部署的步骤,相关的代码可以参考我的GitHub.

监控工具部署

1.部署cAdvisor

<code>docker run --name cadvisor --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro -p 8080:8080 -d  google/cadvisor:latest/<code>

我们将容器内部的8080端口映射到主机的8080端口,通过把主机上的相关目录映射到容器中来达到监控其他容器的目的。

运行完成后,我们可以在浏览器中输入http://:8080来查看相关信息。

2.部署Promethus

<code>docker run -d -p 9090:9090 --name prometheus  -v $PWD/monitor/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus/<code>

Prometheus安装有很多种方式,我们将采用Prometheus团队提供的Docker方式来运行。

同理我们将容器内部的9090端口映射到主机的9090端口,然后通过挂载monitor目录下的prometheus.yml配置文件到容器中。 在prometheus.yml中我们手工指定了要抓取的Prometheus容器本身和cAdvisor容器

<code>scrape_configs:
# The job name is added as a label `job=` to any timeseries scraped from this config.
- job_name: 'prometheus'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.

static_configs:
- targets: ['localhost:9090']
- job_name: 'cAdvisor'
static_configs:
# 10.110.204.54 is host IP not docker container IP
- targets: ['10.110.204.54:8080']
/<code>

3.部署Grafana

<code>docker run -d -p 3000:3000 --name grafana grafana/grafana/<code>

对于Grafana的部署依然采用Grafana团队提供的Docker方式来运行,并且把容器内部的3000端口映射到主机的3000端口。

设置Grafana

在部署完以上的容器后,让我们来看看Grafana的设置

  • 在浏览器上输入http://<host>:3000进入设置界面,默认的用户名和密码都是admin/<host>
  • 依照之前的配置,关于设置data source如下
Routing on Docker 系列之监控

  • 加载Dashboard,我们使用ID:10619


Routing on Docker 系列之监控

查看各容器使用情况

通过其Dashboard我们看到:在Routing正常运行下每个容器时间使用的Memory都在30MB左右,CPU使用率也只有区区的1%. 就我个人而言,大大超出了了我的预期。


Routing on Docker 系列之监控


分享到:


相關文章: