cAdvisor+Prometheus+Grafana 搞定Docker容器監控平臺

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、``kubernetsETCD`

2.1、架構圖

image-20240302162553611

普羅米修斯的核心組件

Prometheus server主程序

組件:

  • ``TSDB--->time series database 時序數據庫 --》hdd/ssd hdd機械磁盤 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端口了

image-20240302164553027

image-20240302165316640

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]# 

image-20240302170049296

賬號:admin

密碼:admin

更新密碼:123456

  • 在grafana里添加數據源是Prometheus的數據庫
  • 使用模板: 13946 模板編號

image-20240302170915268

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/714611.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/714611.shtml
英文地址,請注明出處:http://en.pswp.cn/news/714611.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL事務和鎖機制

MySQL技術——事務和鎖機制 一、事務(1)概述(2)ACID特性(3)事務并發存在的問題(4)事務的隔離級別 二、鎖機制(1)鎖的力度(2)表的分類&…

網絡編程-編碼與解碼(Protobuf)

編碼與解碼 下面的文字都來自于極客時間 為什么要編解碼呢?因為計算機數據傳輸的是二進制的字節數據 解碼:字節數據 --> 字符串(字符數據) 編碼:字符串(字符數據)–> 字節數據 我們在編…

Python 實現海康機器人工業相機 MV-CS050-10GC 的實時顯示視頻流及拍照功能(實時顯示視頻流同時可以進行拍照)

參考鏈接: https://www.cnblogs.com/HanYork/p/17388506.html https://www.cnblogs.com/miracle-luna/p/16960556.html#5138211 Flask搭建流媒體服務器:使用Flask搭建一個流媒體服務器_multipart/x-mixed-replace; boundaryframe-CSDN博客

公共字段自動填充

在開發中經常面臨對于一些公共字段的賦值。 如在下表中: 如何讓程序自動為我們需要賦值的公共字段進行賦值,避免在業務代碼中重復寫這些公共字段的賦值代碼 如下圖所示: 實現思路: 1.自定義注解AutoFill,用于標識需…

linux環境安裝cuda toolkit

1 全新安裝 如果環境中沒安裝過cuda版本, 這種情況下比較簡單。 直接在https://developer.nvidia.com/cuda-toolkit-archive選擇對應版本下載安裝即可。 如下為安裝cuda toolkit 11.8. 2 環境中已經存在其他版本 這種情況下比較復雜一些。 首先要確認最高支持的…

李沐動手學習深度學習——4.2練習

1. 在所有其他參數保持不變的情況下,更改超參數num_hiddens的值,并查看此超參數的變化對結果有何影響。確定此超參數的最佳值。 通過改變隱藏層的數量,導致就是函數擬合復雜度下降,隱藏層過多可能導致過擬合,而過少導…

Git多人合作的推送流程

多人合作時,使用Git進行代碼推動(push)需要一定的協調和規范,以確保代碼庫的整體健康。以下是一個常見的多人合作時的Git代碼推動流程: 同步主分支: 在推送之前,確保你的本地主分支(…

【Java】四大函數式接口

消費型接口Consumer 消費型接口接收一個輸入,沒有返回值 在stream流計算中 forEach() 接收一個消費型接口Consumer用于 遍歷元素 /*** 消費型接口* 接收一個輸入,沒有返回值*/ public class demo01 {public static void main(String[] args) {//TODO 消…

【MySQL】表的內連和外連(重點)

表的連接分為內連和外連。 一、內連接 內連接實際上就是利用 where 子句對兩種表形成的笛卡兒積進行篩選,前面學習的查詢都是內連接,也是在開發過程中使用的最多的連接查詢。 select 字段 from 表1 inner join 表2 on 連接條件 and 其他條件; 注意&…

【數倉】Hadoop集群配置常用參數說明

Hadoop集群中,需要配置的文件主要包括四個 配置核心Hadoop參數: 編輯core-site.xml文件,設置Hadoop集群的基本參數,如文件系統、Hadoop臨時目錄等。 配置HDFS參數: 編輯hdfs-site.xml文件,設置HDFS的相關參…

策略開發:EMA如何計算

EMA的計算原理 EMA 是MA(平滑移動平均線)的另一種形式。全名“加權指數移動平均線”。 2/13就是12日移動平均線的平滑因子,他的意思是指:給予新價格 2/13的權重,給予過去的EMA 11/13的權重。 在計算的時候第一天的M…

Linux使用基礎命令

1.常用系統工作命令 (1).用echo命令查看SHELL變量的值 qiangziqiangzi-virtual-machine:~$ echo $SHELL /bin/bash(2).查看本機主機名 qiangziqiangzi-virtual-machine:~$ echo $HOSTNAME qiangzi-virtual-machine (3).date命令用于顯示/設置系統的時間或日期 qiangziqian…

Linux多線程服務端編程:使用muduo C++網絡庫 學習筆記 附錄B 從《C++ Primer(第4版)》入手學習C++

這是作者為《C Primer(第4版)(評注版)》寫的序言,文中“本書”指的是這本書評注版。 B.1 為什么要學習C 2009年本書作者Stanley Lippman先生應邀來華參加上海祝成科技舉辦的C技術大會,他表示人們現在還用…

MySQL存儲過程和Function

一、存儲過程 MySQL中提供存儲過程和存儲函數機制,將其統稱為存儲程序。 SQL語句要先編譯,然后執行,存儲程序是一組為了完成特定功能的SQL語句,編譯后存到數據庫中。 用戶通過指定存儲程序的名字并給定參數來調用才會執行。 存…

擴展學習|大數據分析的現狀和分類

文獻來源:[1] Mohamed A , Najafabadi M K , Wah Y B ,et al.The state of the art and taxonomy of big data analytics: view from new big data framework[J].Artificial Intelligence Review: An International Science and Engineering Journal, 2020(2):53. 下…

藍橋杯(3.2)

1209. 帶分數 import java.io.*;public class Main {static BufferedReader br new BufferedReader(new InputStreamReader(System.in));static PrintWriter pw new PrintWriter(new OutputStreamWriter(System.out));static final int N 10;static int n, cnt;static int[…

LabVIEW流量控制系統

LabVIEW流量控制系統 為響應水下航行體操縱舵翼環量控制技術的試驗研究需求,通過LabVIEW開發了一套小量程流量控制系統。該系統能夠滿足特定流量控制范圍及精度要求,展現了其在實驗研究中的經濟性、可靠性和實用性,具有良好的推廣價值。 項…

tritonserver學習之八:redis_caches實踐

tritonserver學習之一:triton使用流程 tritonserver學習之二:tritonserver編譯 tritonserver學習之三:tritonserver運行流程 tritonserver學習之四:命令行解析 tritonserver學習之五:backend實現機制 tritonserv…

【C++初階】內存管理

目錄 一.C語言中的動態內存管理方式 二.C中的內存管理方式 1.new/delete操作內置類型 2.new和delete操作自定義類型 3.淺識拋異常 (內存申請失敗) 4.new和delete操作自定義類型 三.new和delete的實現原理 1.內置類型 2.自定義類型 一.C語…

C++學習筆記:二叉搜索樹

二叉搜索樹 什么是二叉搜索樹?搜索二叉樹的操作查找插入刪除 二叉搜索樹的應用二叉搜索樹的代碼實現K模型:KV模型 二叉搜索樹的性能怎么樣? 什么是二叉搜索樹? 二叉搜索樹又稱二叉排序樹,它或者是一棵空樹,或者是具有以下性質的二叉樹: 若它的左子樹…