cAdvisor+Prometheus+Grafana
- cAdvisor+Prometheus+Grafana 搞定Docker容器監控平臺
- 1、先給虛擬機上傳cadvisor
- 2、What is Prometheus?
- 2.1、架構圖
- 3、利用docker安裝普羅米修斯
- 4、安裝grafana
cAdvisor+Prometheus+Grafana 搞定Docker容器監控平臺
1、先給虛擬機上傳cadvisor
cAdvisor(Container Advisor)
是 Google
開源的一個容器監控工具,可用于對容器資源的使用情況和性能進行監控。用于收集、聚合、處理和導出正在運行容器的有關信息。具體來說,該組件對每個容器都會記錄其資源隔離參數、歷史資源使用情況、完整歷史資源使用情況的直方圖和網絡統計信息。``cAdvisor 本身就對
Docker` 容器支持,并且還對其它類型的容器盡可能的提供支持,力求兼容與適配所有類型的容器。
[root@docker-1 ~]# mkdir /mointor
[root@docker-1 ~]# cd /mointor/
[root@docker-1 mointor]# ls
cadvisor.tar
[root@docker-1 mointor]#
[root@docker-1 mointor]# docker load -i cadvisor.tar
ace0eda3e3be: Loading layer 5.843MB/5.843MB
33bb68b99ee4: Loading layer 102.4MB/102.4MB
d3174d703c76: Loading layer 13.25MB/13.25MB
8b7599e512b6: Loading layer 44.19MB/44.19MB
Loaded image: gcr.io/cadvisor/cadvisor:latest
[root@docker-1 mointor]#
[root@docker-1 mointor]# docker images|grep cadvisor
gcr.io/cadvisor/cadvisor latest 68c29634fe49 3 years ago 163MB
google/cadvisor latest eb1210707573 5 years ago 69.6MB
[root@docker-1 mointor]#
2、What is Prometheus?
Prometheus
is an open-source systems
monitoring and alerting toolkit originally built at SoundCloud.
Prometheus joined the Cloud Native Computing Foundation
in 2016 as the second hosted project, after Kubernetes
.
Prometheus是一個開源系統監控和警報工具包,最初由SoundCloud構建。
Prometheus于2016年加入云原生計算基金會,成為繼Kubernetes之后的第二個托管項目。
Cloud Native Computing Foundation --》云原生計算基金會:
Prometheus
、``kubernets、
ETCD`
2.1、架構圖
普羅米修斯的核心組件
Prometheus server主程序
組件:
-
``TSDB
--->time series database 時序數據庫 --》
hdd/ssdhdd機械磁盤 hard disk drive ssd 固態磁盤 -->
solid state drive`- promQL: select ,insert等 promQL是普羅米修斯內部的sql
-
http server web
服務- Retrieval 是拉取數據的組件:每間隔15s去拉一次數據
-
pushgateway
中間件(代理)—–》臨時存放數據的軟件 -
alertmanager
告警的軟件 -
exporter
收集數據,采集數據 木馬程序 : 安裝到被監控的機器上 類似于agent代理
采集數據:exporter pushgateway 中間件(代理)
存儲數據:tsdb
提供數據:http server
顯示數據: grafana
告警、報警:alertmanager
獲取數據的方式:
1.pull server --》pull —》client 主動的獲取數據,避免大并發
2.push client —>push—》server client 主動送數據過來,數據會非常新,會出現大量的數據同時push過來
3、利用docker安裝普羅米修斯
1、編寫prometheus.yml文件
[root@docker-1 mointor]# vim prometheus.yml
scrape_configs:
- job_name: cadvisorscrape_interval: 5sstatic_configs:- targets:- cadvisor:8080
[root@docker-1 mointor]#
2、編寫dockerfile文件
'先確定8080和9090,6379端口是否被占用'
[root@docker-1 ~]# lsof -i :9090
[root@docker-1 ~]# lsof -i :8080
[root@docker-1 ~]# lsof -i :6379
[root@docker-1 mointor]# vim docker-compose.yml
version: '3.2'
services:prometheus:image: prom/prometheus:latestcontainer_name: prometheusports:- 9090:9090command:- --config.file=/etc/prometheus/prometheus.ymlvolumes:- ./prometheus.yml:/etc/prometheus/prometheus.yml:rodepends_on:- cadvisorcadvisor:image: gcr.io/cadvisor/cadvisor:latestcontainer_name: cadvisorports:- 8080:8080volumes:- /:/rootfs:ro- /var/run:/var/run:rw- /sys:/sys:ro- /var/lib/docker/:/var/lib/docker:rodepends_on:- redisredis:image: redis:latestcontainer_name: redisports:- 6379:6379
[root@docker-1 mointor]#
3、啟動monitor
[root@docker-1 mointor]# docker compose up -d
[+] Running 3/3? Container promredis Started 0.9s ? Container cadvisor Started 1.5s ? Container prometheus Started 1.7s
[root@docker-1 mointor]#
4、可以去訪問8080和9090端口了
4、安裝grafana
利用容器啟動grafana
[root@docker-1 mointor]# docker run -d --name=grafana -p 3000:3000 grafana/grafana
Unable to find image 'grafana/grafana:latest' locally
latest: Pulling from grafana/grafana
97518928ae5f: Pull complete
5b58818b7f48: Pull complete
d9a64d9fd162: Pull complete
4e368e1b924c: Pull complete
867f7fdd92d9: Pull complete
387c55415012: Pull complete
07f94c8f51cd: Pull complete
ce8cf00ff6aa: Pull complete
e44858b5f948: Pull complete
4000fdbdd2a3: Pull complete
Digest: sha256:18d94ae734accd66bccf22daed7bdb20c6b99aa0f2c687eea3ce4275fe275062
Status: Downloaded newer image for grafana/grafana:latest
0ae83fc8b36d15bc54a757479748ab34c71b620826a887dcb22b2e42275b732a
[root@docker-1 mointor]#
賬號:admin
密碼:admin
更新密碼:123456
- 在grafana里添加數據源是Prometheus的數據庫
- 使用模板: 13946 模板編號