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

          Prometheus 監(jiān)控系統(tǒng)入門學(xué)習(xí)

          共 3501字,需瀏覽 8分鐘

           ·

          2021-11-27 07:42


          學(xué)習(xí)目標(biāo)

          能夠安裝prometheus服務(wù)器

          能夠通過安裝node_exporter監(jiān)控遠(yuǎn)程linux

          能夠通過安裝mysqld_exporter監(jiān)控遠(yuǎn)程mysql數(shù)據(jù)庫

          能夠安裝grafana

          能夠在grafana添加prometheus數(shù)據(jù)源

          能夠在grafana添加監(jiān)控cpu負(fù)載的圖形

          能夠在grafana圖形顯示mysql監(jiān)控?cái)?shù)據(jù)

          能夠通過grafana+onealert實(shí)現(xiàn)報警

          任務(wù)背景

          某某某公司是一家電商網(wǎng)站,由于公司的業(yè)務(wù)快速發(fā)展,公司要求對現(xiàn)有機(jī)器進(jìn)行業(yè)務(wù)監(jiān)控,責(zé)成運(yùn)維部門來實(shí)施這個項(xiàng)目。

          任務(wù)要求

          1)部署監(jiān)控服務(wù)器,實(shí)現(xiàn)7x24實(shí)時監(jiān)控

          2)針對公司的業(yè)務(wù)及研發(fā)部門設(shè)計(jì)監(jiān)控系統(tǒng),對監(jiān)控項(xiàng)和觸發(fā)器拿出合理意見

          3)做好問題預(yù)警機(jī)制,對可能出現(xiàn)的問題要及時告警并形成嚴(yán)格的處理機(jī)制

          4)做好監(jiān)控告警系統(tǒng),要求可以實(shí)現(xiàn)告警分級

          一級報警 電話通知

          二級報警 微信通知

          三級報警 郵件通知

          5)處理好公司服務(wù)器異地集中監(jiān)控問題,K8S內(nèi)部使用的監(jiān)控系統(tǒng)就是普羅米修斯

          任務(wù)分析

          為什么要監(jiān)控?

          答: 實(shí)時收集數(shù)據(jù),通過報警及時發(fā)現(xiàn)問題,及時處理。數(shù)據(jù)為優(yōu)化也可以提供依據(jù)。

          監(jiān)控四要素:

          監(jiān)控對象 [主機(jī)狀態(tài) 服務(wù) 資源 頁面,url]

          用什么監(jiān)控 [zabbix-server zabbix-agent] => 普羅米修斯監(jiān)控

          什么時間監(jiān)控 [7x24 5x8]

          報警給誰 [管理員]

          一、Prometheus概述

          Prometheus(由go語言(golang)開發(fā))是一套開源的監(jiān)控&報警&時間序列數(shù)據(jù)庫的組合。適合監(jiān)控docker容器。因?yàn)閗ubernetes(俗稱k8s)的流行帶動了prometheus的發(fā)展。

          https://prometheus.io/docs/introduction/overview/

          二、時間序列數(shù)據(jù)

          1、什么是序列數(shù)據(jù)

          時間序列數(shù)據(jù)(TimeSeries Data) : 按照時間順序記錄系統(tǒng)、設(shè)備狀態(tài)變化的數(shù)據(jù)被稱為時序數(shù)據(jù)。

          應(yīng)用的場景很多, 如:

          • 無人駕駛車輛運(yùn)行中要記錄的經(jīng)度,緯度,速度,方向,旁邊物體的距離等等。每時每刻都要將數(shù)據(jù)記錄下來做分析。

          • 某一個地區(qū)的各車輛的行駛軌跡數(shù)據(jù)

          • 傳統(tǒng)證券行業(yè)實(shí)時交易數(shù)據(jù)

          • 實(shí)時運(yùn)維監(jiān)控?cái)?shù)據(jù)等

          2、時間序列數(shù)據(jù)特點(diǎn)

          • 性能好

          關(guān)系型數(shù)據(jù)庫對于大規(guī)模數(shù)據(jù)的處理性能糟糕。NOSQL可以比較好的處理大規(guī)模數(shù)據(jù),讓依然比不上時間序列數(shù)據(jù)庫。

          • 存儲成本低

          高效的壓縮算法,節(jié)省存儲空間,有效降低IO

          Prometheus有著非常高效的時間序列數(shù)據(jù)存儲方法,每個采樣數(shù)據(jù)僅僅占用3.5byte左右空間,上百萬條時間序列,30秒間隔,保留60天,大概花了200多G(來自官方數(shù)據(jù))

          3、Prometheus的主要特征

          • 多維度數(shù)據(jù)模型

          • 靈活的查詢語言

          • 不依賴分布式存儲,單個服務(wù)器節(jié)點(diǎn)是自主的

          • 以HTTP方式,通過pull模型拉去時間序列數(shù)據(jù)

          • 也可以通過中間網(wǎng)關(guān)支持push模型

          • 通過服務(wù)發(fā)現(xiàn)或者靜態(tài)配置,來發(fā)現(xiàn)目標(biāo)服務(wù)對象

          • 支持多種多樣的圖表和界面展示

          4、普羅米修斯原理架構(gòu)圖



          三、實(shí)驗(yàn)環(huán)境準(zhǔn)備

          1. 靜態(tài)ip(要求能上外網(wǎng))

          2. 主機(jī)名

          3. 時間同步(時間同步一定要確認(rèn)一下)

          4. 關(guān)閉防火墻,selinux

          1、安裝prometheus

          從 https://prometheus.io/download/ 下載相應(yīng)版本,安裝到服務(wù)器上

          官網(wǎng)提供的是二進(jìn)制版,解壓就能用,不需要編譯

          2、prometheus界面

          通過瀏覽器訪問http://服務(wù)器IP:9090就可以訪問到prometheus的主界面

          默認(rèn)只監(jiān)控了本機(jī)一臺,點(diǎn)Status --》點(diǎn)Targets --》可以看到只監(jiān)控了本機(jī)

          3、主機(jī)數(shù)據(jù)展示

          通過http://服務(wù)器IP:9090/metrics可以查看到監(jiān)控的數(shù)據(jù)

          在web主界面可以通過關(guān)鍵字查詢監(jiān)控項(xiàng)

          4、監(jiān)控遠(yuǎn)程Linux主機(jī)

          ① 在遠(yuǎn)程linux主機(jī)(被監(jiān)控端agent1)上安裝node_exporter組件

          下載地址: https://prometheus.io/download/

          擴(kuò)展: nohup命令: 如果把啟動node_exporter的終端給關(guān)閉,那么進(jìn)程也會隨之關(guān)閉。nohup命令會幫你解決這個問題。

          ② 通過瀏覽器訪問http://被監(jiān)控端IP:9100/metrics就可以查看到node_exporter在被監(jiān)控端收集的監(jiān)控信息

          ③ 回到prometheus服務(wù)器的配置文件里添加被監(jiān)控機(jī)器的配置段

          ④ 回到web管理界面 --》點(diǎn)Status --》點(diǎn)Targets --》可以看到多了一臺監(jiān)控目標(biāo)

          練習(xí): 加上本機(jī)prometheus的監(jiān)控

          答: 在本機(jī)安裝node_exporter,也使用上面的方式監(jiān)控起來。

          5、監(jiān)控遠(yuǎn)程MySQL

          ① 在被管理機(jī)agent1上安裝mysqld_exporter組件

          下載地址: https://prometheus.io/download/

          ② 回到prometheus服務(wù)器的配置文件里添加被監(jiān)控的mariadb的配置段

          ③ 回到web管理界面 --》點(diǎn)Status --》點(diǎn)Targets --》可以看到監(jiān)控mariadb了

          四、Grafana可視化圖形工具

          1、什么是Grafana

          Grafana是一個開源的度量分析和可視化工具,可以通過將采集的數(shù)據(jù)分析,查詢,然后進(jìn)行可視化的展示,并能實(shí)現(xiàn)報警。

          網(wǎng)址: https://grafana.com/

          2、使用Grafana連接Prometheus

          ① 在grafana服務(wù)器上安裝grafana

          下載地址:https://grafana.com/grafana/download

          ② 通過瀏覽器訪問 http:// grafana服務(wù)器IP:3000就到了登錄界面,使用默認(rèn)的admin用戶,admin密碼就可以登陸了

          ③ 下面我們把prometheus服務(wù)器收集的數(shù)據(jù)做為一個數(shù)據(jù)源添加到grafana,讓grafana可以得到prometheus的數(shù)據(jù)。

          ④ 然后為添加好的數(shù)據(jù)源做圖形顯示

          ⑤ 保存

          ⑥ 最后在dashboard可以查看到

          ⑦ 匹配條件顯示

          3、Grafana圖形顯示MySQL監(jiān)控?cái)?shù)據(jù)

          ① 在grafana上修改配置文件,并下載安裝mysql監(jiān)控的dashboard(包含相關(guān)json文件,這些json文件可以看作是開發(fā)人員開發(fā)的一個監(jiān)控模板)

          參考網(wǎng)址: https://github.com/percona/grafana-dashboards

          ② 在grafana圖形界面導(dǎo)入相關(guān)json文件

          ③ 點(diǎn)import導(dǎo)入后,報prometheus數(shù)據(jù)源找不到,因?yàn)檫@些json文件里默認(rèn)要找的就是叫Prometheus的數(shù)據(jù)源,但我們前面建立的數(shù)據(jù)源卻是叫prometheus_data(坑啊)

          那么請自行把原來的prometheus_data源改名為Prometheus即可(注意:第一個字母P是大寫)

          然后再回去刷新,就有數(shù)據(jù)了(如下圖所示)

          ④ 過段時間再看,就會有數(shù)據(jù)了(如下圖所示)

          4、Grafana+onealert報警

          prometheus報警需要使用alertmanager這個組件,而且報警規(guī)則需要手動編寫(對運(yùn)維來說不友好)。所以我這里選用grafana+onealert報警。

          注意: 實(shí)現(xiàn)報警前把所有機(jī)器時間同步再檢查一遍.

          ① 先在onealert里添加grafana應(yīng)用(申請onealert賬號在zabbix已經(jīng)講過)

          ② 配置通知策略

          ③ 在grafana增加通知通道

          ④ 現(xiàn)在可以去設(shè)置一個報警來測試了(這里以我們前面加的cpu負(fù)載監(jiān)控來做測試)

          ⑤ 保存后就可以測試了

          如果agent1上的cpu負(fù)載還沒有到0.5,你可以試試0.1,或者運(yùn)行一些程序把a(bǔ)gent1負(fù)載調(diào)大。最終能測試報警成功。

          最終的郵件報警效果:

          測試mysql鏈接數(shù)報警

          5、總結(jié)報警不成功的可能原因

          • 各服務(wù)器之間時間不同步,這樣時序數(shù)據(jù)會出問題,也會造成報警出問

          • 必須寫通知內(nèi)容,留空內(nèi)容是不會發(fā)報警的

          • 修改完報警配置后,記得要點(diǎn)右上角的保存

          • 保存配置后,需要由OK狀態(tài)變?yōu)閍lerting狀態(tài)才會報警(也就是說,你

          • 配置保存后,就已經(jīng)是alerting狀態(tài)是不會報警的)

          • grafana與onealert通信有問題

          來自twt社區(qū)會員分享,版權(quán)歸原作者所有

          Linux學(xué)習(xí)指南

          有收獲,點(diǎn)個在看?

          瀏覽 59
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <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>
                  波多野结衣av在线免费观看 | 殴美日日视频 | 免费在线观看av 欧美成人在线网址 | 7777视频 | 毛片在线网站 |