在本系列的一開始部分我們秉著方便和節約資源的原則來部署我們的路由系統,方便性我們通過腳本方式感受到了,但在節約資源這部分我們還沒有提及。今天我將帶大家通過對容器性能的監控來一起看一下。
對於容器的監控我推薦使用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://
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. /<code>
- 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']
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如下
- 加載Dashboard,我們使用ID:10619
查看各容器使用情況
通過其Dashboard我們看到:在Routing正常運行下每個容器時間使用的Memory都在30MB左右,CPU使用率也只有區區的1%. 就我個人而言,大大超出了了我的預期。
閱讀更多 飛輪的海 的文章