亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

基于docker 搭建Prometheus+Grafana

發布時間:2020-06-29 09:52:04 來源:網絡 閱讀:492 作者:mb5cd21e691f31a 欄目:云計算

一、介紹Prometheus

Prometheus(普羅米修斯)是一套開源的監控&報警&時間序列數據庫的組合,起始是由SoundCloud公司開發的。隨著發展,越來越多公司和組織接受采用Prometheus,社會也十分活躍,他們便將它獨立成開源項目,并且有公司來運作。Google SRE的書內也曾提到跟他們BorgMon監控系統相似的實現是Prometheus。現在最常見的Kubernetes容器管理系統中,通常會搭配Prometheus進行監控。

Prometheus基本原理是通過HTTP協議周期性抓取被監控組件的狀態,這樣做的好處是任意組件只要提供HTTP接口就可以接入監控系統,不需要任何SDK或者其他的集成過程。這樣做非常適合虛擬化環境比如VM或者Docker 。

Prometheus應該是為數不多的適合Docker、Mesos、Kubernetes環境的監控系統之一。

與其他監控系統相比,Prometheus的主要特點是:

一個多維數據模型(時間序列由指標名稱定義和設置鍵/值尺寸)。
非常高效的存儲,平均一個采樣數據占~3.5bytes左右,320萬的時間序列,每30秒采樣,保持60天,消耗磁盤大概228G。
一種靈活的查詢語言。
不依賴分布式存儲,單個服務器節點。
時間集合通過HTTP上的PULL模型進行。
通過中間網關支持推送時間。
通過服務發現或靜態配置發現目標。
多種模式的圖形和儀表板支持。

二、Prometheus架構概覽

該圖說明了普羅米修斯(Prometheus)及其一些生態系統組件的整體架構:
基于docker 搭建Prometheus+Grafana

它的服務過程是這樣的Prometheus daemon負責定時去目標上抓取metrics(指標) 數據,每個抓取目標需要暴露一個http服務的接口給它定時抓取。

Prometheus:支持通過配置文件、文本文件、zookeeper、Consul、DNS SRV lookup等方式指定抓取目標。支持很多方式的圖表可視化,例如十分精美的Grafana,自帶的Promdash,以及自身提供的模版引擎等等,還提供HTTP API的查詢方式,自定義所需要的輸出。

Alertmanager:是獨立于Prometheus的一個組件,可以支持Prometheus的查詢語句,提供十分靈活的報警方式。

PushGateway:這個組件是支持Client主動推送metrics到PushGateway,而Prometheus只是定時去Gateway上抓取數據。

如果有使用過statsd的用戶,則會覺得這十分相似,只是statsd是直接發送給服務器端,而Prometheus主要還是靠進程主動去抓取。

大多數Prometheus組件都是用Go編寫的,它們可以輕松地構建和部署為靜態二進制文件。訪問prometheus.io以獲取完整的文檔,示例和指南。

三、Prometheus四種數據類型

Counter

Counter用于累計值,例如記錄請求次數、任務完成數、錯誤發生次數。一直增加,不會減少。重啟進程后,會被重置。

例如:http_response_total{method=”GET”,endpoint=”/api/tracks”} 100,10秒后抓取http_response_total{method=”GET”,endpoint=”/api/tracks”} 100。

Gauge

Gauge常規數值,例如 溫度變化、內存使用變化。可變大,可變小。重啟進程后,會被重置。

例如: memory_usage_bytes{host=”master-01″} 100 < 抓取值、memory_usage_bytes{host=”master-01″} 30、memory_usage_bytes{host=”master-01″} 50、memory_usage_bytes{host=”master-01″} 80 < 抓取值。

Histogram

Histogram(直方圖)可以理解為柱狀圖的意思,常用于跟蹤事件發生的規模,例如:請求耗時、響應大小。它特別之處是可以對記錄的內容進行分組,提供count和sum全部值的功能。

例如:{小于10=5次,小于20=1次,小于30=2次},count=7次,sum=7次的求和值。

Summary

Summary和Histogram十分相似,常用于跟蹤事件發生的規模,例如:請求耗時、響應大小。同樣提供 count 和 sum 全部值的功能。

例如:count=7次,sum=7次的值求值。

它提供一個quantiles的功能,可以按%比劃分跟蹤的結果。例如:quantile取值0.95,表示取采樣值里面的95%數據。

五、實驗環境

docker01 docker02 docker03
192.168.1.11 192.168.1.13 192.168.1.20
NodeEXporter NodeEXporter NodeEXporter
cAdvisor cAdvisor cAdvisor
Prometheus Server
Grafana

全部關閉防火墻,禁用selinux

需要部署的組件:

Prometheus Server:普羅米修斯的主服務器。

Prometheus是一個開源的服務監控系統,它通過HTTP協議從遠程的機器收集數據并存儲在本地的時序數據庫上。

  • 多維數據模型(時序列數據由metric名和一組key/value組成)
  • 在多維度上靈活的查詢語言(PromQl)
  • 不依賴分布式存儲,單主節點工作.
  • 通過基于HTTP的pull方式采集時序數據
  • 可以通過push gateway進行時序列數據推送(pushing)
  • 可以通過服務發現或者靜態配置去獲取要采集的目標服務器
  • 多種可視化圖表及儀表盤支持
  • Prometheus通過安裝在遠程機器上的exporter來收集監控數據,后面我們將使用到node_exporter收集系統數據。

[NodeEXporter]():負責收集Host硬件信息和操作系統信息。

[cAdvisor]():負責收集Host.上運行的容器信息。

Grafana:負責展示普羅米修斯監控界面。

Grafana 是一個開箱即用的可視化工具,具有功能齊全的度量儀表盤和圖形編輯器,有靈活豐富的圖形化選項,可以混合多種風格,支持多個數據源特點。

這些可以直接docker pull下載鏡像(現在是本地導入鏡像)

本地上傳鏡像

docker01

[09:05:42][docker01$  docker load -i node-exporter.tar && docker load -i  mycadvisor.tar && docker load -i prometheus.tar  && docker load -i grafana.tar

docker02和docker03

[09:05:22]docker03]$ docker load -i node-exporter.tar && docker load -i  mycadvisor.tar

六、各主機部署

1) 3個節點,全部部署node-EXporter,和cAdvisor.

部署安裝node-EXporter收集節點硬件和操作系統信息。
[09:21:03[docker01]$  docker run -d -p 9100:9100 -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|host|etc)($|/)"
//部署node-EXporter,收集硬件和系統信息。

PS: 注意,這里使用了--net=host, 這樣Prometheus Server可以直接與Node-
EXporter通信。

驗證:打開瀏覽器驗證結果。http://192.168.1.11:9100/,http://192.168.1.13:9100/,http://192.168.1.20:9100/

基于docker 搭建Prometheus+Grafana

基于docker 搭建Prometheus+Grafana

部署安裝cAdvisor,收集節點容器信息。
[09:39:10[docker01]$ docker run -v /:/rootfs:ro -v /var/run:/var/run/:rw -v /sys:/sys:ro -v /var/lib/docker:/var/lib/docker:ro --detach=true --name=cadvisor --net=host google/cadvisor

驗證:打開瀏覽器驗證結果。http://192.168.1.11:8080,http://192.168.1.13:8080,http://192.168.1.20:8080

基于docker 搭建Prometheus+Grafana

2)在docker01上部署Prometheus Server服務。

在部署prometheus之前,我們需要對它的配置文件進行修改,所以我們先運行一個容器,先將其配置文件拷貝出來。

09:51:22][docker01]$ docker run -d -p 9090:9090 --name prometheus --net=host prom/prometheus
//打開一臺Prometheus
[09:51:00[docker01]$ docker cp prometheus:/etc/prometheus/prometheus.yml ./
//拷貝Prometheus的配置文件到本地
修改Prometheus的配置文件,添加監聽端口(29行)
[09:55:53][docker01][~]$ vim prometheus.yml 
//修改配置文件這里指定了prometheus的監控項,包括它也會監控自己手機到的數據。
- targets: ['localhost:9090','localhost:8080','localhost:9100','192.168.1.13:8080','192.168.1.13:9100','192.168.1.20:8080','192.168.1.20:9100']
重新運行prometheus容器
[10:00:27][docker01][~]$ docker rm -f prometheus 
//刪除 prometheus容器
[10:02:45][docker01][~]$ docker run -d -p 9090:9090 --name prometheus --net=host  -v /root/prometheus.yml:/etc/prometheus/prometheus.yml   prom/prometheus
//運行一臺新的 prometheus容器
瀏覽器訪問,驗證:http://192.168.1.11:9090/graph

基于docker 搭建Prometheus+Grafana

ps:這里能夠查看到我們各個監控項。

如果現在掛起一臺虛擬機(測試完之后繼續運行)

基于docker 搭建Prometheus+Grafana

3)在docker01.上,部署grafana服務,用來展示prometheus收集到的數據。

[root@docker01 ~]# mkdir grafana-storage
//創建收集信息的目錄
[root@docker01 ~]# chmod 777 grafana-storage/
//給予777權限
[root@docker01 ~]# docker run -d -p 3000:3000 --name grafana -v /root/grafana-storage:/var/lib/grafana -e "GF_SECURITY_ADMIN_PASSWORD=123.com" grafana/grafana
瀏覽器訪問驗證:

(<默認>用戶名:admin,密碼:123.com)

基于docker 搭建Prometheus+Grafana

添加數據源

基于docker 搭建Prometheus+Grafana

基于docker 搭建Prometheus+Grafana

基于docker 搭建Prometheus+Grafana
基于docker 搭建Prometheus+Grafana
基于docker 搭建Prometheus+Grafana
PS:看到這個提示, 說明prometheus和grafana服務的是 正常連接的。

此時,雖然grafana收集到了數據,但怎么顯示它,仍然是個問題,grafana支持自定 義顯示信息,不過要自定義起來非常麻煩,不過好在,grafana官方為我們提供了- -些模板,來供我們使用。

grafana官網:https://grafana.com/docs/grafana/latest/

基于docker 搭建Prometheus+Grafana
基于docker 搭建Prometheus+Grafana
基于docker 搭建Prometheus+Grafana
基于docker 搭建Prometheus+Grafana

選中一款模板,然后,我們有2種方式可以套用這個模板。
第一種方式:通過JSON文件使用模板。

基于docker 搭建Prometheus+Grafana

下載完成之后,來到grafana控制臺

基于docker 搭建Prometheus+Grafana

基于docker 搭建Prometheus+Grafana

基于docker 搭建Prometheus+Grafana
基于docker 搭建Prometheus+Grafana

第二種導入模板的方式:**

可以直接通過模板的ID號。

基于docker 搭建Prometheus+Grafana
//這個id不好用換成8321了

基于docker 搭建Prometheus+Grafana
復制模板id之后,來到grafana控制臺

基于docker 搭建Prometheus+Grafana

排錯思路

防火墻是否關閉,selinux是否禁用
主機名稱是否更改
鏡像是否正常
各服務啟動時掛載目錄是否正確
grafana服務,是否創建所需目錄,目錄是否有權限
Prometheus服務是否修改配置文件

總結

恭喜!您已經設置了Prometheus服務器,Node Exporter和Grafana 等所有這些都可以使用的Docker。盡管這些目前都在同一臺機器上運行,但這僅用于演示目的。在生產設置中,通常會在每臺受監控的計算機上運行節點導出器,多個Prometheus服務器(根據組織的需要),以及單個Grafana服務器來繪制來自這些服務器的數據。

參考:https://www.cnblogs.com/xiao987334176/p/9930517.html

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁夏| 松阳县| 灵宝市| 老河口市| 博野县| 平山县| 遂川县| 红河县| 乡宁县| 左贡县| 桓仁| 巴彦县| 新野县| 仙桃市| 云阳县| 古蔺县| 陆河县| 南岸区| 九江县| 诏安县| 偏关县| 通辽市| 聂拉木县| 佛坪县| 防城港市| 海阳市| 赣榆县| 农安县| 丁青县| 阿巴嘎旗| 富顺县| 满洲里市| 资阳市| 大城县| 凌云县| 元氏县| 浦东新区| 万盛区| 华阴市| 甘德县| 巴林右旗|