日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

搭建prometheus+grafana监控系统

發布時間:2025/3/21 windows 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 搭建prometheus+grafana监控系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

prometheus簡介

Prometheus是最初在SoundCloud上構建的開源系統監視和警報工具包 。自2012年成立以來,許多公司和組織都采用了Prometheus,該項目擁有非?;钴S的開發人員和用戶社區?,F在,它是一個獨立的開源項目,并且獨立于任何公司進行維護。為了強調這一點并闡明項目的治理結構,Prometheus 于2016年加入了 Cloud Native Computing Foundation,這是繼Kubernetes之后的第二個托管項目。
官網地址

Prometheus是一個時間序列數據庫。但是,它不僅僅是一個時間序列數據庫。它涵蓋了可以綁定的整個生態系統工具集及其功能。

Prometheus主要用于對基礎設施的監控。包括服務器,數據庫,VPS,幾乎所有東西都可以通過Prometheus進行監控。Prometheus希望通過對Prometheus配置中定義的某些端點執行的HTTP調用來檢索度量標準。

普羅米修斯的主要特點是:.

  • 業務持續性(及時預警,監控)

  • 一個多維數據模型,其中包含通過度量標準名稱和鍵/值對標識的時間序列數據

  • PromQL,一種靈活的查詢語言,可以利用此維度完成復雜的查詢

  • 不依賴分布式存儲;單服務器節點是自治的

  • 時間序列收集通過HTTP上的拉模型進行

  • 通過中間網關支持推送時間序列

  • 通過服務發現或靜態配置發現目標

  • 多種圖形和儀表板支持模式

Prometheus 基本服務與作用

主要服務作用
Prometheus Server收集指標和存儲時間序列數據,并提供查詢接口
ClientLibrary客戶端庫
Push Gateway短期存儲指標數據。主要用于臨時性的任務
Exporters采集已有的第三方服務監控指標并暴露metrics
Alertmanager告警
Web UI簡單的Web控制臺

Prometheus 各組件運行流程

  • Prometheus Server:Prometheus Sever 是 Prometheus 組件中的核心部分,負責實現對監 控數據的獲取,存儲及查詢
    • Prometheus Server 可以通過靜態配置管理監控目標,也可以配合使用 Service Discovery(服務發現)的方式動態管理監控目標,并從這些監控目標中獲取數據。
    • 其次 Prometheus Sever 需要對采集到的數據進行存儲,Prometheus Server 本身就是一個實時數據庫,將 采集到的監控數據按照時間序列的方式存儲在本地磁盤當中。
    • Prometheus Server 對外提供了自定義的PromQL,實現對數據的查詢以及分析。另外 Prometheus Server 的聯邦集群能力可以使其從其他的Prometheus Server 實例中獲取數據。
  • Exporters:Exporter將監控數據采集的端點通過 HTTP 服務的形式暴露給Prometheus Server, Prometheus Server 通過訪問該 Exporter 提供的 Endpoint 端點,即可以獲取到需要采集的監控數據??梢詫?Exporter 分為 2 類:
    • 直接采集:這一類 Exporter 直接內置了對 Prometheus 監控的支持,比如 cAdvisor,Kubernetes,Etcd等,都直接內置了用于向 Prometheus 暴露監控數據的端點。
    • 間接采集:原有監控目標并無直接支持 Prometheus,因此需要通過 Prometheus 提供的 Client Library 編寫該監控目標的監控采集程序。例如:Mysql Exporter,JMX Exporter,Consul Exporter等。
  • AlertManager:在 Prometheus Server 中支持基于 Prom QL 創建告警規則,如果滿足 Prom QL 定義的規則,則會產生一條告警。常見的接收方式有:電子郵件,webhook 等。
  • PushGateway:Prometheus 數據采集基于 Prometheus Server 從 Exporter pull 數據,因此 當網絡環境不允許 Prometheus Server和 Exporter 進行通信時,可以使用 PushGateway 來進行中轉。

Prometheus 的工作流程

  • Prometheus server 定期從配置好的 jobs 和 exporters 中拉取 metrics,或者接收來自Pushgateway 發送過來的 metrics,或者從其它的 Prometheus server 中拉 metrics。
  • Prometheus server 在本地存儲收集到的 metrics,并運行定義好的 alerts.rules,記錄新的時間序列或者向 Alertmanager 推送警報。
  • Alertmanager根據配置文件,對接收到的報進行處理,發出告警.
  • 在圖形界面中,可視化采集數據。
  • 安裝prometheus監控服務

    環境準備

    主機名角色地址
    serverprometheus+grafana192.168.2.10
    client1mysql+client192.168.2.11
    client2client192.168.2.12

    官網下載

    1.安裝Go語言環境 [root@server ~]# curl -s https://mirror.go-repo.io/centos/go-repo.repo | tee /etc/yum.repos.d/go-repo.repo [go-repo] name=go-repo - CentOS baseurl=https://mirror.go-repo.io/centos/$releasever/$basearch/ enabled=1 gpgcheck=1 gpgkey=https://mirror.go-repo.io/centos/RPM-GPG-KEY-GO-REPO [root@server ~]# yum install go -y [root@server ~]# go version go version go1.15.6 linux/amd642.下載prometheus軟件 [root@server ~]# cd /opt [root@server opt]# wget https://github.com/prometheus/prometheus/releases/download/v2.23.0/prometheus-2.23.0.linux-amd64.tar.gz [root@server opt]# ll 總用量 62792 -rw-r--r-- 1 root root 64298432 12月 17 16:12 prometheus-2.23.0.linux-amd64.tar.gz3.編輯解壓目錄下的prometheus.yml,配置監控linux主機和mysq|數據庫,配置文件為yml語法.注意縮進對齊 [root@server opt]# cd prometheus-2.23.0.linux-amd64/ [root@server prometheus-2.23.0.linux-amd64]# ls console_libraries consoles LICENSE NOTICE prometheus prometheus.yml promtool [root@server prometheus-2.23.0.linux-amd64]# vim prometheus.yml scrape_interval: 15s # 默認15秒到目標處抓取數據 job_name #這個配置是表示在這個配置內的時間序例,每一條都會自動添加上這個{job_name:"prometheus"}的標簽在最后進行配置: scrape_configs:# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: 'prometheus' # 每一個 job_name 都是一個監控項,這里代表監控操作系統狀態static_configs:- targets: ['localhost:9090']labels:instance: server- job_name: 'linux'static_configs:- targets: ['192.168.2.11:9100','192.168.2.12:9100'] # 被監控主機 IP 地址和端口labels:instance: client # 實例名稱,在 grafana 中表示對應的主機- job_name: 'mysql' # 監控 mysql 數據庫狀態static_configs:- targets: ['192.168.2.11:9104'] # 數據庫Ip地址+端口labels:intance: client # 實例名稱,在 grafana 中表示對應的主機4.后臺啟動 [root@server prometheus-2.23.0.linux-amd64]# nohup ./prometheus --config.file=prometheus.yml & [1] 2358 [root@server prometheus-2.23.0.linux-amd64]# nohup: 忽略輸入并把輸出追加到"nohup.out"5.瀏覽器訪問 使用瀏覽器打開該機器的 http://部署機器:9090 ,或者 http://localhost:9090/ 即可以看到Prometheus的graph頁面



    • 測試訪問,由于此時沒有配置被監控主機,所以不是up的狀態

    啟動用于采集 Linux 系統和 mysql 服務狀態的 exporter 服務

    prometheus常見的exporter及作用:
    (1). node. exporter 用于監控操作系統的性能和運行狀態
    (2). mysqld. exporter用于監控mysql服務
    (3). snmp. exporter 用于監控網絡設備

    更多exporter可在官網下載官方傳送門—

    1.安裝運行node_exporter [root@client1 ~]# cd /opt [root@client1 opt]# wget https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-amd64.tar.gz [root@client1 opt]# ll 總用量 9300 -rw-r--r-- 1 root root 9520728 12月 17 17:18 node_exporter-1.0.1.linux-amd64.tar.gz [root@client1 opt]# tar -xf node_exporter-1.0.1.linux-amd64.tar.gz [root@client1 opt]# cd node_exporter-1.0.1.linux-amd64/后臺啟動 [root@client1 node_exporter-1.0.1.linux-amd64]# nohup ./node_exporter & [1] 90003 [root@client1 node_exporter-1.0.1.linux-amd64]# nohup: 忽略輸入并把輸出追加到"nohup.out"2.配置 mysqld_exporter 用于監控client1上的mysql服務 mysqld_exporter需要連接到Mysql,所以需要Mysql的權限,我們先為它創建用戶并賦予所需的權限.進入mysql數據庫,8.0以上的數據庫需要先創建用戶再授權用戶 mysql> create user 'mysql_monitor'@localhost IDENTIFIED BY '123qqq...A'; Query OK, 0 rows affected (0.01 sec)mysql> grant replication client,process on *.* to 'mysql_monitor'@'localhost'; Query OK, 0 rows affected (0.00 sec)mysql> grant select on *.* to 'mysql_monitor'@'localhost'; Query OK, 0 rows affected (0.01 sec)3.創建.my.cnf文件并運行mysqld_exporter: [root@client1 opt]# wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz [root@client1 opt]# tar -xf mysqld_exporter-0.12.1.linux-amd64.tar.gz [root@client1 ~]# vim /opt/mysqld_exporter-0.12.1.linux-amd64/.my.cnf [client] user=mysql_monitor password=123qqq...A后臺啟動 [root@client1 ~]# nohup /opt/mysqld_exporter-0.12.1.linux-amd64/mysqld_exporter --config.my-cnf="/opt/mysqld_exporter-0.12.1.linux-amd64/.my.cnf" & [2] 114311 [root@client1 ~]# nohup: 忽略輸入并把輸出追加到"nohup.out"4.瀏覽器訪問



    總結prometheus使用方法:

    1.想監控操作系統,只需要一步:
    在被監控系統上安裝node. exporter并啟動就ok了
    2.想監控操mysql數據庫,只需要兩步:
    (1).創建一個mysql用戶
    (2).安裝mysqld. exporter 并啟動

    注意:prometheus里面的時區是GMT,圖形橫軸顯示的時間與后面的grafana顯示時間不同,我們用的主機時區是CST,大家可以自己了解這個時區間的關系

    Prometheus自帶的圖形并不夠強大,于是我們可以使用Grafana作為Prometheus的Dashboard。

    使用 Grafana 可視化工具美化監控數據

    grafana的下載地址

    grafana配置文件介紹

    [root@server opt]# wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.0.1-1.x86_64.rpm [root@server opt]# yum -y install grafana-5.0.1-1.x86_64.rpm 安裝插件 [root@server opt]# grafana-cli plugins install grafana-piechart-panel installing grafana-piechart-panel @ 1.6.1 from url: https://grafana.com/api/plugins/grafana-piechart-panel/versions/1.6.1/download into: /var/lib/grafana/plugins? Installed grafana-piechart-panel successfully Restart grafana after installing plugins . <service grafana-server restart>[root@server opt]# service grafana-server restart Restarting grafana-server (via systemctl): [ 確定 ]

    瀏覽器訪問3000端口,登錄,默認賬號密碼admin/admin

    登錄執行設置數據源

    進入配置頁面

    點擊保存并測試,如果出現如下內容則代表成功

    配置完成后可以把默認的dashboards導入

    這時候你再進入到datasource可以看到剛配置的數據源;


    點擊Prometheus 2.0 Stats:

    將監控 Linux 系統和 mysql 服務運行狀態的 web 儀表盤插件導入 grafana



    點擊導入,粘貼ID

    成功!

    《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

    總結

    以上是生活随笔為你收集整理的搭建prometheus+grafana监控系统的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。