天天看點

普羅米修斯監控docker 服務

環境

192.168.254.127 (監控伺服器)

192.168.254.128 (被監控機器)

首先在監控伺服器安裝:

1.安裝Node Exporter 來收集硬體資訊

所有節點運作以下指令安裝Node Exporter 容器

docker run -d -p 9100:9100 \

-v "/proc:/host/proc" \

-v "/sys:/host/sys" \

-v "/:/rootfs" \

-v "/etc/localtime:/etc/localtime" \

--net=host \

prom/node-exporter \

--path.procfs /host/proc \

--path.sysfs /host/sys \

--collector.filesystem.ignored-mount-points "^/(sys|proc|dev|host|etc)($|/)"

注意,這裡我們使用了 --net=host,這樣 Prometheus Server 可以直接與 Node Exporter 通信

2.安裝cAdvisor 來收集容器資訊 所有節點運作以下指令來安裝cAdvisor

docker run \

--volume=/:/rootfs:ro \

--volume=/var/run:/var/run:rw \

--volume=/sys:/sys:ro \

--volume=/var/lib/docker/:/var/lib/docker:ro \

--publish=8080:8080 \

--detach=true \

--name=cadvisor \

google/cadvisor:latest

注意,這裡我們使用了 --net=host,這樣 Prometheus Server 可以直接與 cAdvisor 通信。

在Dockermachine伺服器上安裝普羅米修斯服務

安裝之前需要将普羅米修斯的啟動檔案建立好, 在/root目錄下建立prometheus.yml檔案檔案内容如下:主要修改highlight部分

#my global config

global:

scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.

evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.

#scrape_timeout is set to the global default (10s).

#Alertmanager configuration

alerting:

alertmanagers:

static_configs:

targets:

#- alertmanager:9093

#Load rules once and periodically evaluate them according to the global 'evaluation_interval'.

rule_files:

#- "first_rules.yml"

#- "second_rules.yml"

#A scrape configuration containing exactly one endpoint to scrape:

#Here it's Prometheus itself.

scrape_configs:

#The job name is added as a label <code>job=&amp;lt;job_name&amp;gt;</code> to any timeseries scraped from this config.

job_name: 'prometheus'

#metrics_path defaults to '/metrics'

#scheme defaults to 'http'.

targets: ['localhost:9090','localhost:8080','localhost:9100','192.168.254.128:8080','192.168.254.128:9100']

指定從哪些 exporter 抓取資料。這裡指定了兩台 host 上的 Node Exporter 和 cAdviso

另外 localhost:9090 就是 Prometheus Server 自己,可見 Prometheus 本身也會收集自己的監控資料。同樣地,我們也可以通

3.運作以下指令安裝普羅米修斯服務

docker run -d -p 9090:9090 \

-v /root/prometheus.yml:/etc/prometheus/prometheus.yml \

--name prometheus \

prom/prometheus

prometheus.yml 是 Prometheus Server 的配置檔案

安裝完畢後浏覽器中打開http://192.168.254.127:9090 點選菜單 status ----&gt; target,狀态顯示為up,說明普羅米修斯服務能夠正常擷取監控資料,點選endpoint可以檢視收集的詳細資訊由于沒有安裝UI 伺服器Granfana

普羅米修斯監控docker 服務

4.在DockerMachine上運作Grafana

docker run -d -i -p 3000:3000 \

-e "GF_SERVER_ROOT_URL=http://grafana.server.name" \

-e "GF_SECURITY_ADMIN_PASSWORD=admin8888" \

grafana/grafana

5.現在檢視各個Host上都運作了那些容器 Dockermachine: 共4個 Grafana,Prometheus, cadvisor, node-exporter

普羅米修斯監控docker 服務

Grafana啟動後,在浏覽器中打開http://192.168.254.127:3000 登入界面,登入用admin 密碼為剛建立Grafana時的admin8888

普羅米修斯監控docker 服務

6.添加DataSource

添加普羅米修斯伺服器,重點看框部分,其它預設即可

普羅米修斯監控docker 服務

點選Save &amp; Test 如果一切順利該DataSource可以正常工作了,也就是說Grafana可以正常跟Prometheus正常通信了,name怎麼展示資料呢,答案是通過dashboard.

7.自己手工建立dashboard有點困難,可以借助開元的力量通路https://grafana.com/dashboards?dataSource=prometheus&amp;search=docker 将會看到很多用于監控 Docker 的 Dashboard。監控模闆位址(多種監控模闆根據自己需求下載下傳不同的模闆)

普羅米修斯監控docker 服務

有些dashboard可以下載下傳後直接導入,而有些需要修改後再導入,需要看dashboard的overview

普羅米修斯監控docker 服務

例如導入Docker and system monitoring dashboard

普羅米修斯監控docker 服務

8.最後監控頁面展示

普羅米修斯監控docker 服務

最後說明:

監控伺服器 需要安裝4個服務

Prometheus Server(普羅米修斯監控主伺服器 )

Node Exporter (收集Host硬體和作業系統資訊)

cAdvisor (負責收集Host上運作的容器資訊)

Grafana (展示普羅米修斯監控界面)

被監控的隻有安裝2個