一、搭建
step 1 拉取鏡像
docker pull prom/node-exporter #用來監控系統CPU、內存、硬盤等
docker pull prom/prometheus
docker pull grafana/grafana
docker pull google/cadvisor #用來監控容器
step2 創建prometheus配置文件路徑,編輯配置文件
mkdir prometheus
cd prometheus
vim prometheus.yml
prometheus.xml文件
global:
scrape_interval: 15s # By default, scrape targets every 15 seconds.
# Attach these labels to any time series or alerts when communicating with
# external systems (federation, remote storage, Alertmanager).
external_labels:
monitor: 'codelab-monitor'
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# Override the global default and scrape targets from this job every 5 seconds.
scrape_interval: 5s
static_configs:
- targets: ['localhost:9090'] #prometheus自身地址和端口
- job_name: 'linux'
# Override the global default and scrape targets from this job every 5 seconds.
scrape_interval: 5s
static_configs:
- targets: ['10.168.2.53:9100'] #監控linux的地址和端口
labels:
instance: node
- job_name: 'container'
# Override the global default and scrape targets from this job every 5 seconds.
scrape_interval: 5s
static_configs:
- targets: ['10.168.2.53:9001'] #監控docker的地址和端口
labels:
instance: container
step 3 創建grafana目錄,並賦予權限。因爲是掛載,grafana文件夾需要一些權限,否則容器不能創建成功。
mkdir grafana
chmod 777 -R grafana
step 4 創建容器
# 創建監控docker的容器
docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:ro --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --publish=9001:8080 --detach=true --name=cadvisor google/cadvisor
# 創建監控linux的容器
docker run -d -p 9100:9100 --name=prometheus-node -v "/proc:/host/proc" -v "/sys:/host/sys" -v "/:/rootfs" --net=host prom/node-exporter --path.procfs /host/proc --path.sysfs /host/sys --collector.filesystem.ignored-mount-points "^/(sys|proc|dev|)"
# 創建prometheus容器
docker run -it -p 9091:9090 -v /opt/prometheus:/etc/prometheus --name=prometheus prom/prometheus:latest --config.file=/etc/prometheus/prometheus.yml
# 創建grafana容器
docker run -d -p 9002:3000 --name=grafana -v /opt/grafana:/var/lib/grafana grafana/grafana
step5 驗證搭建結果
訪問prometheus地址 http://ip:9091
從首頁->Status->Targets 進入targets頁面,查看監控是否正常運行。當state=up時,正常運行。
二、grafana可視化配置
訪問grafana地址,http://ip:9002
step1:配置數據源,選擇Prometheus數據源,配置prometheus相關內容(name、url),保存(save&test)
step2: 選擇監控模塊
進入grafana官網 https://grafana.com/,從菜單欄Grafana中選擇Dashboards,進入dashboards模板頁面
選擇合適的模板(linux監控模板/container監控模板) ,比如 監控linux的(node),dashboardID是8919
step3:在grafana中使用模板
在grafana中,在下圖輸入框中輸入dashboardsID,load即可。
效果如下:
其他模板樣式,可在grafana中查找使用。
參考: