| 服務 | 端口 | 是否有web界面 | 作用 |
| prometheus |
9090 | 有 | 作為監控主服務器,拉取並存儲時序數據 |
| node-exporter |
9100 | 有 | 收集內核公開的硬件和操作系統指標 |
| grafana |
3000 | 有 | 數據展示可視化 |
| cadvisor |
9595 | 有 | 收集宿主機上運行的所有容器的性能數據 |
一、安裝prometheus server
docker pull prom/prometheus
# 拉取prometheus鏡像
docker run -d --name prometheus2020 prom/prometheus
# 啟動容器
docker cp -a prometheus2020:/etc/prometheus/ $PWD/prometheus
# 復制容器內部的配置文件到宿主機,不用事先創建$PWD/prometheus目錄
docker rm -f prometheus2020
# 刪除容器
docker run -d --name prometheus2020 -p 9090:9090 -v $PWD/prometheus:/etc/prometheus prom/prometheus
# 啟動容器
firewall-cmd --zone=public --add-port=9090/tcp --permanent
firewall-cmd --reload
# 開放防火牆9090端口
訪問
http://192.168.1.113:9090
prometheus使用的是UTC時間,比當前的北京時間晚8個小時,可勾選Use local time選項使用本地時間

二、安裝node-exporter
docker pull prom/node-exporter
# 拉取鏡像
docker run -d --name node-exporter2020 -p 9100:9100 -v "/proc:/host/proc:ro" -v "/sys:/host/sys:ro" -v "/:/rootfs:ro" --net="host" prom/node-exporter
# 啟動容器
firewall-cmd --zone=public --add-port=9100/tcp --permanent
firewall-cmd --reload
# 開放防火牆9100端口
訪問
http://192.168.1.113:9100/metrics

vim prometheus/prometheus.yml
# 修改宿主機prometheus配置文件,重啟后會同步到容器內部

scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['192.168.1.113:9090']
labels:
instance: prometheus
- job_name: 'centos_1'
static_configs:
- targets: ['192.168.1.113:9100']
labels:
instance: centos_1
docker restart prometheus2020
重啟容器
此時再訪問
http://192.168.1.113:9090/targets

三、安裝grafana
docker pull grafana/grafana
# 拉取鏡像
mkdir grafana
# 在宿主機的當前目錄下創建grafana目錄
chmod 777 -R ./grafana/
# 賦予grafana目錄讀寫權限
# grafana是以grafana用戶啟動,不是以root用戶啟動
docker run -d --name=grafana2020 -p 3000:3000 -v $PWD/grafana:/var/lib/grafana grafana/grafana
# 啟動容器
firewall-cmd --zone=public --add-port=3000/tcp --permanent
firewall-cmd --reload
# 開放防火牆3000端口
訪問
http://192.168.1.113:3000
用戶名:admin
密碼:admin

修改密碼為:123456
並二次確認

首頁:

添加數據源,選擇Prometheus:

配置Prometheus數據源:

測試一下並保存:

配置模板
可在官網搜索一個模板
https://grafana.com/grafana/dashboards?dataSource=prometheus
選擇8919這個模板
https://grafana.com/grafana/dashboards/8919




四、安裝cadvisor
docker pull google/cadvisor
# 拉取鏡像
docker run -d \
--name=cadvisor2020 \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:rw \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--volume=/cgroup:/cgroup:ro \
--publish=9595:8080 \
--detach=true \
--privileged=true \
google/cadvisor
# 啟動容器
firewall-cmd --zone=public --add-port=9595/tcp --permanent
firewall-cmd --reload
# 開放防火牆9595端口
訪問
http://192.168.1.113:9595/

http://192.168.1.113:9595/metrics

