<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          干掉ELK | 使用Prometheus+Grafana搭建監(jiān)控平臺(tái)

          共 4129字,需瀏覽 9分鐘

           ·

          2020-07-11 11:25

          點(diǎn)擊上方藍(lán)色字體,選擇“設(shè)為星標(biāo)

          回復(fù)”資源“獲取更多資源

          2a802ca3777f01dd42c59ac9f88005e7.webp

          1dc56819425a955064fec4f3ebf0cfa7.webp

          大數(shù)據(jù)技術(shù)與架構(gòu)點(diǎn)擊右側(cè)關(guān)注,大數(shù)據(jù)開(kāi)發(fā)領(lǐng)域最強(qiáng)公眾號(hào)!

          75d9e8d70e402e07f2522dfe707ee860.webp

          暴走大數(shù)據(jù)點(diǎn)擊右側(cè)關(guān)注,暴走大數(shù)據(jù)!0ee841f08309ae37f665432e1d6b410a.webp什么是Prometheus?Prometheus是由SoundCloud開(kāi)發(fā)的開(kāi)源監(jiān)控報(bào)警系統(tǒng)和時(shí)序列數(shù)據(jù)庫(kù)(TSDB)。Prometheus使用Go語(yǔ)言開(kāi)發(fā),是Google BorgMon監(jiān)控系統(tǒng)的開(kāi)源版本。
          Prometheus的特點(diǎn)· 多維度數(shù)據(jù)模型。· 靈活的查詢語(yǔ)言。· 不依賴分布式存儲(chǔ),單個(gè)服務(wù)器節(jié)點(diǎn)是自主的。· 通過(guò)基于HTTP的pull方式采集時(shí)序數(shù)據(jù)。· 可以通過(guò)中間網(wǎng)關(guān)進(jìn)行時(shí)序列數(shù)據(jù)推送。· 通過(guò)服務(wù)發(fā)現(xiàn)或者靜態(tài)配置來(lái)發(fā)現(xiàn)目標(biāo)服務(wù)對(duì)象。· 支持多種多樣的圖表和界面展示,比如Grafana等
          Prometheus的組件Prometheus生態(tài)系統(tǒng)由多個(gè)組件組成,它們中的一些是可選的。多數(shù)Prometheus組件是Go語(yǔ)言寫(xiě)的,這使得這些組件很容易編譯和部署。· Prometheus Server主要負(fù)責(zé)數(shù)據(jù)采集和存儲(chǔ),提供PromQL查詢語(yǔ)言的支持。· 客戶端SDK官方提供的客戶端類庫(kù)有g(shù)o、java、scala、python、ruby,其他還有很多第三方開(kāi)發(fā)的類庫(kù),支持nodejs、php、erlang等。· Push Gateway支持臨時(shí)性Job主動(dòng)推送指標(biāo)的中間網(wǎng)關(guān)。· ExporterExporter是Prometheus的一類數(shù)據(jù)采集組件的總稱。它負(fù)責(zé)從目標(biāo)處搜集數(shù)據(jù),并將其轉(zhuǎn)化為Prometheus支持的格式。與傳統(tǒng)的數(shù)據(jù)采集組件不同的是,它并不向中央服務(wù)器發(fā)送數(shù)據(jù),而是等待中央服務(wù)器主動(dòng)前來(lái)抓取。Prometheus提供多種類型的Exporter用于采集各種不同服務(wù)的運(yùn)行狀態(tài)。目前支持的有數(shù)據(jù)庫(kù)、硬件、消息中間件、存儲(chǔ)系統(tǒng)、HTTP服務(wù)器、JMX等。· alertmanager警告管理器,用來(lái)進(jìn)行報(bào)警。· 其他輔助性工具c990fa654eb6ccbd67c282aa2f30ab58.webp它的服務(wù)過(guò)程是這樣的 Prometheus daemon 負(fù)責(zé)定時(shí)去目標(biāo)上抓取 metrics(指標(biāo)) 數(shù)據(jù),每個(gè)抓取目標(biāo)需要暴露一個(gè)http服務(wù)的接口給它定時(shí)抓取。Prometheus支持通過(guò)配置文件、文本文件、zookeeper、Consul、DNS SRV lookup等方式指定抓取目標(biāo)。Alertmanager 是獨(dú)立于Prometheus的一個(gè)組件,可以支持Prometheus的查詢語(yǔ)句,提供十分靈活的報(bào)警方式。Prometheus支持很多方式的圖表可視化,例如十分精美的Grafana,自帶的Promdash,以及自身提供的模版引擎等等,還提供HTTP API的查詢方式,自定義所需要的輸出。PushGateway這個(gè)組件是支持Client主動(dòng)推送 metrics 到PushGateway,而Prometheus只是定時(shí)去Gateway上抓取數(shù)據(jù)。
          Prometheus 的數(shù)據(jù)模型Prometheus 從根本上所有的存儲(chǔ)都是按時(shí)間序列去實(shí)現(xiàn)的,相同的 metrics(指標(biāo)名稱) 和 label(一個(gè)或多個(gè)標(biāo)簽) 組成一條時(shí)間序列,不同的label表示不同的時(shí)間序列。為了支持一些查詢,有時(shí)還會(huì)臨時(shí)產(chǎn)生一些時(shí)間序列存儲(chǔ)。metrics name & label 指標(biāo)名稱和標(biāo)簽每條時(shí)間序列是由唯一的 指標(biāo)名稱 和 一組 標(biāo)簽 (key=value)的形式組成。指標(biāo)名稱 一般是給監(jiān)測(cè)對(duì)像起一名字,例如 http_requests_total 這樣,它有一些命名規(guī)則,可以包字母數(shù)字_之類的的。通常是以應(yīng)用名稱開(kāi)頭_監(jiān)測(cè)對(duì)像_數(shù)值類型_單位這樣。例如:
          • push_total

          • userlogin_mysql_duration_seconds

          • app_memory_usage_bytes

          標(biāo)簽 就是對(duì)一條時(shí)間序列不同維度的識(shí)別了,例如 一個(gè)http請(qǐng)求用的是POST還是GET,它的endpoint是什么,這時(shí)候就要用標(biāo)簽去標(biāo)記了。最終形成的標(biāo)識(shí)便是這樣了。
          http_requests_total{method="POST",endpoint="/api/tracks"}

          記住,針對(duì)http_requests_total這個(gè)metrics name 無(wú)論是增加標(biāo)簽還是刪除標(biāo)簽都會(huì)形成一條新的時(shí)間序列。查詢語(yǔ)句就可以根據(jù)上面標(biāo)簽的組合來(lái)查詢聚合結(jié)果了。
          如果以傳統(tǒng)數(shù)據(jù)庫(kù)的理解來(lái)看這條語(yǔ)句,則可以考慮 http_requests_total是表名,標(biāo)簽是字段,而timestamp是主鍵,還有一個(gè)float64字段是值了。(Prometheus里面所有值都是按float64存儲(chǔ))。

          Prometheus 的四種數(shù)據(jù)類型

          Counter

          • Counter 用于累計(jì)值,例如 記錄 請(qǐng)求次數(shù)、任務(wù)完成數(shù)、錯(cuò)誤發(fā)生次數(shù)。

          • 一直增加,不會(huì)減少。

          • 重啟進(jìn)程后,會(huì)被重置。

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

          Gauge

          • Gauge 常規(guī)數(shù)值,例如 溫度變化、內(nèi)存使用變化。

          • 可變大,可變小。

          • 重啟進(jìn)程后,會(huì)被重置

          例如:memory_usage_bytes{host="master-01"} 100 < 抓取值memory_usage_bytes{host="master-01"} 30memory_usage_bytes{host="master-01"} 50memory_usage_bytes{host="master-01"} 80 < 抓取值

          Histogram

          • Histogram 可以理解為柱狀圖的意思,常用于跟蹤事件發(fā)生的規(guī)模,例如:請(qǐng)求耗時(shí)、響應(yīng)大小。它特別之處是可以對(duì)記錄的內(nèi)容進(jìn)行分組,提供 count 和 sum 全部值的功能。

          例如:{小于10=5次,小于20=1次,小于30=2次},count=7次,sum=7次的求和值
          SummarySummary和Histogram十分相似,常用于跟蹤事件發(fā)生的規(guī)模,例如:請(qǐng)求耗時(shí)、響應(yīng)大小。同樣提供 count 和 sum 全部值的功能。例如:count=7次,sum=7次的值求值它提供一個(gè)quantiles的功能,可以按%比劃分跟蹤的結(jié)果。例如:quantile取值0.95,表示取采樣值里面的95%數(shù)據(jù)。大部分監(jiān)控項(xiàng)都可以使用Counter來(lái)實(shí)現(xiàn),少部分使用Gauge和Histogram,其中Histogram在服務(wù)端計(jì)算是相當(dāng)費(fèi)CPU的,所以也沒(méi)要導(dǎo)出太多Histogram數(shù)據(jù)。
          Prometheus適用的場(chǎng)景Prometheus在記錄純數(shù)字時(shí)間序列方面表現(xiàn)非常好。它既適用于面向服務(wù)器等硬件指標(biāo)的監(jiān)控,也適用于高動(dòng)態(tài)的面向服務(wù)架構(gòu)的監(jiān)控。對(duì)于現(xiàn)在流行的微服務(wù),Prometheus的多維度數(shù)據(jù)收集和數(shù)據(jù)篩選查詢語(yǔ)言也是非常的強(qiáng)大。Prometheus是為服務(wù)的可靠性而設(shè)計(jì)的,當(dāng)服務(wù)出現(xiàn)故障時(shí),它可以使你快速定位和診斷問(wèn)題。它的搭建過(guò)程對(duì)硬件和服務(wù)沒(méi)有很強(qiáng)的依賴關(guān)系。
          Prometheus不適用的場(chǎng)景Prometheus它的價(jià)值在于可靠性,甚至在很惡劣的環(huán)境下,你都可以隨時(shí)訪問(wèn)它和查看系統(tǒng)服務(wù)各種指標(biāo)的統(tǒng)計(jì)信息。如果你對(duì)統(tǒng)計(jì)數(shù)據(jù)需要100%的精確,它并不適用,例如:它不適用于實(shí)時(shí)計(jì)費(fèi)系統(tǒng)。Prometheus安裝官網(wǎng)地址: https://prometheus.io/下載prometheus7631fd013a798e1ca56906d4efd5a4df.webp
          下載node_exporternode_exporter收集遠(yuǎn)程機(jī)器的監(jiān)控?cái)?shù)據(jù),提供給Prometheus定時(shí)來(lái)抓取。6c373b8de790325885e91d584bae3a07.webp
          安裝node_exporter
          tar xvfz node_exporter-*.tar.gzcd node_exporter-*nohup ./node_exporter &
          安裝Prometheus
          tar xvfz prometheus-*.tar.gzcd prometheus-*
          編輯prometheus.yml, 將node_exporter添加到Prometheus目標(biāo)對(duì)象,因?yàn)檫@里node_exporter和Prometheus安裝在同一臺(tái)機(jī)器,使用localhost即可,node_exporter端口9100。
          - job_name: 'node'    static_configs:      - targets: ['localhost:9100']
          使用配置文件啟動(dòng)Prometheusnohup ./prometheus --config.file=prometheus.yml &驗(yàn)證Prometheus是否安裝成功26285aded8ab4740f41b63982177f675.webpGrafanaGrafana 是一個(gè)開(kāi)箱即用的可視化工具,具有功能齊全的度量?jī)x表盤(pán)和圖形編輯器,有靈活豐富的圖形化選項(xiàng),可以混合多種風(fēng)格,支持多個(gè)數(shù)據(jù)源特點(diǎn)。
          安裝grafana
          # Download and unpack Grafana from binary tar (adjust version as appropriate).curl -L -O https://grafanarel.s3.amazonaws.com/builds/grafana-2.5.0.linux-x64.tar.gztar zxf grafana-2.5.0.linux-x64.tar.gz
          # Start Grafana.cd grafana-2.5.0/./bin/grafana-server web
          打開(kāi)Grafana,初始用戶名/密碼是:admin/admin,登錄后需及時(shí)修改3d448923bb8b6c35a2483581c5e35724.webp配置數(shù)據(jù)源
          ccfeef0e21449efde802537495c82397.webp添加表盤(pán),右下角選擇數(shù)據(jù)源,選擇監(jiān)控項(xiàng),保存即可a28efc45fa31c06ccb7e926ac0f97b16.webp到此Prometheus+Grafana監(jiān)控平臺(tái)搭建完成。下一篇文章將介紹如何使用Prometheus監(jiān)控web項(xiàng)目,及如何使用AlertManager報(bào)警模塊。


          歡迎點(diǎn)贊+收藏+轉(zhuǎn)發(fā)朋友圈素質(zhì)三連

          文章不錯(cuò)?點(diǎn)個(gè)【在看】吧!??

          瀏覽 47
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  大香蕉网青青 | 国内成人做爱视频播放 | 日韩欧美超清 | 天堂在线免费视屏 | 牛牛澡牛牛爽一区二区 |