(一)prometheus與grafana介紹與安裝

#(1)prometheus介紹

prometheus是一款 強大的監控系統和時序系統
采集數據: 在目標主機上安裝exporter, exporter組件會在目標處收集監控數據, 并暴露一個http接口供prometheus查詢, prometheus通過pull的方式來采集數據; 
目前exporter已經采集絕大多數的第三方數據, 比如nginx, mysql等; 支持的exporter列表https://prometheus.io/docs/instrumenting/exporters/prometheus組件: prometheus server   : 負責收集和存儲指標數據,支持表達式查詢,和告警的生成prometheus exporter altermanager PushgatewayWeb UI 

#(2)安裝 Prometheus server
prometheus支持多種安裝方式, 例如docker, ansible;
1)方式一:二進制安裝

test -d /tools || mkdir /tools; cd /tools 
wget https://github.com/prometheus/prometheus/releases/download/v2.4.3/prometheus-2.4.3.linux-amd64.tar.gz
tar xvfz prometheus-2.4.3.linux-amd64.tar.gz
cd prometheus-2.4.3.linux-amd64
./prometheus --version
./prometheus --config.file=prometheus.yml   #啟動

2)方式二安裝 docker安裝

docker run -d -p 9090:9090 prom/prometheus

3)配置文件

# cat prometheus.yml 
# 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.
# 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 `job=<job_name>` to any timeseries scraped from this config.- job_name: Prometheusstatic_configs:- targets: ['localhost:9090']labels:instance: Prometheus- job_name: mysqlstatic_configs:- targets: ['192.168.1.42:9104']labels:instance: db1- job_name: linux01static_configs:- targets: ['192.168.1.42:9100']labels:instance: db1global 塊:Prometheus 的全局配置,比如 scrape_interval 表示 Prometheus 多久抓取一次數據,evaluation_interval 表示多久檢測一次告警規則;
alerting 塊:關于 Alertmanager 的配置,這個我們后面再看;
rule_files 塊:告警規則,這個我們后面再看;
scrape_config 塊:這里定義了 Prometheus 要抓取的目標,我們可以看到默認已經配置了一個名稱為 prometheus 的 job,這是因為 Prometheus 在啟動的時候也會通過 HTTP 接口暴露自身的指標數據,這就相當于 Prometheus 自己監控自己,雖然這在真正使用 Prometheus 時沒啥用處,但是我們可以通過這個例子來學習如何使用 Prometheus;可以訪問 http://localhost:9090/metrics 查看 Prometheus 暴露了哪些指標;

#(3)學習 PromQL

1)進入prometheus的http頁面, http://localhost:9090

(一)prometheus與grafana介紹與安裝

    Alerts 展示了定義的所有告警規則Status 可以查看各種 Prometheus 的狀態信息Graph頁面  提供的一種特殊表達式來查詢監控數據,這個表達式被稱為 PromQL(Prometheus Query Language)通過 PromQL 不僅可以在 Graph 頁面查詢數據,而且還可以通過 Prometheus 提供的 HTTP API 來查詢

2) 數據模型

一條 Prometheus 數據由一個指標名稱(metric)和 N 個標簽(label,N >= 0)組成的promhttp_metric_handler_requests_total{code="200",instance="Prometheus",job="Prometheus"}  14數據的指標名稱為 promhttp_metric_handler_requests_total 并且包含三個標簽 code、instance 和 job ,這條記錄的值為 14Prometheus 是一個時序數據庫,相同指標相同標簽的數據構成一條時間序列

3)Prometheus 的數據分類

Counter 用于計數 例如:請求次數、任務完成數、錯誤發生次數,這個值會一直增加,不會減少
Gauge 就是一般的數值,可大可小,例如:溫度變化、內存使用變化
Histogram 是直方圖,或稱為柱狀圖,常用于跟蹤事件發生的規模,例如:請求耗時、響應大小 ,它特別之處是可以對記錄的內容進行分組,提供 count 和 sum 的功能
Summary: 和 Histogram 十分相似,也用于跟蹤事件發生的規模,不同之處是,它提供了一個 quantiles 的功能,可以按百分比劃分跟蹤的結果。例如:quantile 取值 0.95,表示取采樣值里面的 95% 數據

4)PromQL 入門

up :  表示 Prometheus 能否抓取 target 的指標,用于 target 的健康檢查
up{job="prometheus"}  指定某個 label 來查詢 不僅可以使用 = 號,還可以使用 !=、=~、!~
up{job!="prometheus"}
up{job=~"192\.168\.0\.107.+"}
up{job=~"server|mysql"}  =~ 是根據正則表達式來匹配
http_requests_total[5m]   查出 5 分鐘內所有抓取的 HTTP 請求數  注意它返回的數據類型是 Range vector,沒辦法在 Graph 上顯示成曲線圖, 會用在 Counter 類型的指標上,并和 rate() 或 irate() 函數一起使用rate(http_requests_total[5m])  計算的是每秒的平均值,適用于變化很慢的 counter
irate(http_requests_total[5m]) 計算的是每秒瞬時增加速率,適用于變化很快的 counter
PromQL 還支持 count、sum、min、max、topk 等 聚合操作

#(4)安裝 Grafana
雖然 Prometheus 提供的 Web UI 也可以很好的查看不同指標的視圖,但是這個功能非常簡單,只適合用來調試。要實現一個強大的監控系統,還需要一個能定制展示不同指標的面板,能支持不同類型的展現方式(曲線圖、餅狀圖、熱點圖、TopN 等),這就是儀表盤(Dashboard)功能。因此 Prometheus 開發了一套儀表盤系統 PromDash,不過很快這套系統就被廢棄了,官方開始推薦使用 Grafana 來對 Prometheus 的指標數據進行可視化,這不僅是因為 Grafana 的功能非常強大,而且它和 Prometheus 可以完美的無縫融合。

1)docker安裝

docker run -d -p 3000:3000 grafana/grafana

2)訪問: http://localhost:3000/ , 默認用戶名和密碼是admin和admin
(一)prometheus與grafana介紹與安裝

3)配置數據源
(一)prometheus與grafana介紹與安裝

要注意的是,這里的 Access 指的是 Grafana 訪問數據源的方式,有 Browser 和 Proxy 兩種方式。
Browser 方式表示當用戶訪問 Grafana 面板時,瀏覽器直接通過 URL 訪問數據源的;
而 Proxy 方式表示瀏覽器先訪問 Grafana 的某個代理接口(接口地址是 /api/datasources/proxy/),由 Grafana 的服務端來訪問數據源的 URL,如果數據源是部署在內網,用戶通過瀏覽器無法直接訪問時,這種方式非常有用。

參考文檔: https://www.aneasystone.com/archives/2018/11/prometheus-in-action.html

轉載于:https://blog.51cto.com/1000682/2361984

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

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

相關文章

男人該知道的人生感悟(圖)

一、家庭篇&#xff1a; 1、孝敬自己的父母&#xff0c;男人往往沒有女人心細&#xff0c;所以你要經常提醒自己&#xff0c;常回家看看&#xff0c;不要等到“子欲養而親不待”。 2、遇到事情&#xff0c;多聽聽父母的意見&#xff0c;他們是這個世界上最愛你的人。 3、好好…

2020-4-3

題目一 如何讓IE8和IE8以下瀏覽器支持HTML5 <!–[if IE]> <script src"http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]–>上面這段代碼僅會在IE瀏覽器下運行&#xff0c;還有一點需要注意&#xff0c;在頁面中…

三維人臉前期調研

多張人臉照片進行3D人臉重建一種開源方法VisualSMeshlab目前的主流是VisualSFM&#xff08;找出各張照片中的特征點&#xff0c;進行兩兩匹配&#xff0c;根據匹配的結果&#xff0c;利用射影定理計算得到相機位置等場景信息&#xff0c;將場景信息與原始照片結合在一起得到照片…

git 報錯:was cached in the local repository, resolution will not be reattempted until the upda

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 Could not resolve dependencies for project com.foreveross:gaei-syncpm:jar:0.0.1-SNAPSHOT: Failure to find com.oracle.jdbc:ojd…

6000個邊緣Kubernetes節點驅動城市80萬次智能停車,如何成為可能?

城市的街道因為汽車數量的增長越來越繁忙&#xff0c;對于駕車一族而言&#xff0c;在熱門區域尋找停車場更是無比頭痛的事情。然而與此同時&#xff0c;其實也許很多辦公樓、住宅樓、酒店和公共車庫中仍有許多付費停車的資源未被充分利用。 ParkBee就是這樣一家為城市提供智能…

英語學習之道小談

想學好英語&#xff0c;首先要培養對英語的興趣。興趣是最好的老師&#xff0c;是學習英語的巨大動力&#xff0c;有了興趣&#xff0c;學習就會事半功倍。我們都有這樣的經驗&#xff1a;喜歡的事&#xff0c;就容易堅持下去&#xff1b;不喜歡的事&#xff0c;是很難堅持下去…

2020-4-4

題目一 post方式get方式提交表單的主要區別? post一般用于傳遞較大的數據&#xff0c;在數據傳遞之前會有打包操作&#xff0c;所以可能會造成數據傳遞數據相對較慢的情況&#xff0c;不過傳輸的數據都能夠被正確的解析&#xff0c;不會出現類似于中文亂碼的狀況。通過url鏈接…

python 進程與線程(理論部分)

一、理論部分 一 什么是進程 進程&#xff1a;正在進行的一個過程或者說一個任務。而負責執行任務則是cpu。 舉例&#xff08;單核多道&#xff0c;實現多個進程的并發執行&#xff09;&#xff1a; egon在一個時間段內有很多任務要做&#xff1a;python備課的任務&#xff0c;…

Maven : 將 Jar 安裝到本地倉庫和 Jar 上傳到私服

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 Jar的maven配置 <dependency><groupId>org.apache.thrift</groupId><artifactId>libthrift</artifactId&g…

Flink 1.7.2 dataset transformation 示例

Flink 1.7.2 dataset transformation 示例 源碼 https://github.com/opensourceteams/flink-maven-scala概述 Flink transformation示例map,flatMap,filter,reduce,groupBy,reduceGroup,combineGroup,Aggregate(sum,max,min)distinct,join,join funtion,leftOuterJoin,rightOut…

2020-4-5

題目一&#xff1a; <!DOCTYPE html> <html> <head> <meta charset" utf-8"> <script> window.onloadfunction(){let txtdocument.getElementById("txt");let stdocument.getElementById("st");let formdocumen…

腎臟的保養

飲食方面保養腎臟&#xff1a; 1、適量飲水不憋尿&#xff0c;每天需喝1500&#xff5e;2000ml的水&#xff0c;保持每天的尿量在1500ml左右。 2、飲食不要重口味&#xff0c;少吃不健康的腌制品或其他加工的食品。 不可縱欲&#xff1a; 縱欲會令腎臟受損害&#xff0c;…

sql 中 between 的邊界問題 ---- between 邊界:閉區間,not between 邊界:開區間

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 BETWEEN 用以查詢確定范圍的值&#xff0c;這些值可以是數字&#xff0c;文本或日期 。BETWEEN 運算符是閉區間的&#xff1a;包括開始…

取代ZooKeeper!高并發下的分布式一致性開源組件StateSynchronizer

StateSynchronizer是開源分布式流存儲平臺Pravega的核心組件。StateSynchronizer組件以stream為基礎&#xff0c;對外提供一致性狀態共享服務。StateSynchronizer允許一組進程同時讀寫同一共享狀態而不必擔心一致性問題。本文將從共享狀態和一致性的角度出發&#xff0c;詳細描…

[51nod1773]A國的貿易

題目鏈接&#xff1a; 51nod1773 首先可以很簡單的寫出每一天的DP轉移式&#xff1a; \(f[i][x]\sum f[i-1][x\ xor\ k](k0\ or\ k2^j,0\le j<n)\) 其中\(f[i][x]\)表示第\(i\)天\(x\)國貨物數量\((0\le x<2^n)\)。 那么因為\(k\)有固定的取值&#xff0c;設數組\(A\)表示…

Linux基礎學習導圖

網上教程太多啦&#xff0c;先水一波導圖&#xff0c;筆記日后慢慢上傳~ 一款常用的軟件很簡單易用&#xff0c;推薦大家下載xmind vim學習相關的思維導圖&#xff1a; 可以通過ubuntu自帶的vim書學習&#xff08;終端輸入vimtutor&#xff09;

一個學中醫女生的保養身體法

首先是關于皮膚的外部保養法。1.關于頭發 頭發油是因為肝火太旺了&#xff0c;身體里內臟不能消化油脂&#xff0c;所以就把它排到臉上和頭上了,辦法是&#xff1a;每天晚上用滾燙的熱水泡腳泡上半個小時&#xff0c;慢慢就會好了。注&#xff1a;水不會一直熱&#xff0c;所以…

實現 SSH 無密碼登錄 、 ssh 常用命令

OpenSSH是互聯網技術用戶所依賴的SSH連接工具的免費版本。 telnet&#xff0c;rlogin 和 ftp 用戶可能沒有意識到他們的密碼是通過互聯網傳輸的&#xff0c;并且是未加密的。 但是 OpenSSH 加密所有流量&#xff08;包括密碼&#xff09;以有效消除竊聽&#xff0c;連接劫持和其…

團隊項目沖刺第一天

今天&#xff0c;開了第一天的團隊會議&#xff0c;我們把團隊任務分配了一下&#xff0c;今天的任務是學習了一下Android開發的基礎知識&#xff0c;看了嗶哩嗶哩上面的教學視頻&#xff0c;對于一些轉換頁面&#xff0c;按鈕&#xff0c;文本的配置有所了解&#xff0c;明天開…

簡單的C語言五子棋(兩種模式:移動光標輸入坐標和移動光標按鍵)

五子棋&#xff1a; 需要的數據&#xff1a; 1、定義棋盤數組 2、定義變量用于記錄棋子位置 3、定義角色變量 業務邏輯&#xff1a; 是否需要對數據進行初始化 for(;; ) { 1、清理屏幕&#xff0c;顯示棋盤 2、落子 坐標要合法&#xff0c;原位置不能有棋子 3、檢查是否形成五子…