在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

從零入門Prometheus:構建企業級監控與報警系統的最佳實踐指南

馬哥Linux運維 ? 來源:馬哥Linux運維 ? 2025-02-10 11:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

測試環境

prometheus-2.26.0.linux-amd64.tar.gz
下載地址:https://github.com/prometheus/prometheus/releases/download/v2.26.0/prometheus-2.26.0.linux-amd64.tar.gz
prometheus-2.54.1.linux-amd64.tar.gz
下載地址:https://github.com/prometheus/prometheus/releases/download/v2.26.0/prometheus-2.26.0.linux-amd64.tar.gz
CentOS 7.9

下載并運行Prometheus

# wget https://github.com/prometheus/prometheus/releases/download/v2.26.0/prometheus-2.26.0.linux-amd64.tar.gz
# tar xvzf prometheus-2.26.0.linux-amd64.tar.gz
# cd prometheus-2.26.0.linux-amd64
# ls
console_libraries  consoles  LICENSE  NOTICE  prometheus  prometheus.yml  promtool

開始運行之前,先對它進行配置。

配置Prometheus自身監控

Prometheus通過抓取度量HTTP端點來從目標收集指標。由于Prometheus以同樣的方式暴露自己的數據,它也可以搜集和監控自己的健康狀況。
雖然只收集自身數據的Prometheus服務器不是很有用,但它是一個很好的開始示例。保存以下Prometheus基礎配置到一個名為prometheus.yml的文件(安裝包自動解壓后,解壓目錄下,默認就就有一個名為prometheus.yml的文件)

global:
  scrape_interval:     15s # 默認,每15秒采樣一次目標

  # 與其它外部系統(比如federation, remote storage, Alertmanager)交互時,會附加這些標簽到時序數據或者報警
  external_labels:
    monitor: 'codelab-monitor'

# 一份采樣配置僅包含一個 endpoint 來做采樣
# 下面是 Prometheus 本身的endpoint:
scrape_configs:
  # job_name 將被被當作一個標簽 `job=`添加到該配置的任意時序采樣.
  - job_name: 'prometheus'

    # 覆蓋全局默認值,從該job每5秒對目標采樣一次
    scrape_interval: 5s

    static_configs:
      # 如果需要遠程訪問, localhost  也可以替換為具體IP,比如10.118.71.170
      - targets: ['localhost:9090']

有關配置選項的完整說明,請參閱配置文檔。

啟動Prometheus

使用新創建的配置文件來啟動 Prometheus,切換到包含 Prometheus 二進制文件的目錄并運行

# 啟動 Prometheus.
# 默認地, Prometheus 在 ./data 路徑下存儲其數據庫 (flag --storage.tsdb.path).
# ./prometheus --config.file=prometheus.yml

通過訪問localhost:9000來瀏覽狀態頁。等待幾秒讓他從自己的 HTTP metric endpoint 來收集數據。

還可以通過訪問到其 metrics endpoint(http://localhost:9090/metrics)來驗證 Prometheus 是否正在提供有關其自身的 metrics

開放防火墻端口

# firewall-cmd --permanent --zone=public --add-port=9090/tcp
success
# firewall-cmd --reload
success

使用expressin browser

使用 Prometheus 內置的expressin browser訪問localhost:9090/graph,選擇Graph導航菜單下的Tabletab頁 (Classic UI下為Consoletab頁)。

通過查看localhost:9090/metrics頁面內容可知,Prometheus 導出了關于其自身的一個名為prometheus_target_interval_length_seconds指標(目標采樣之間的實際間隔)。將其作為搜索表達式,輸入到表達式搜索框中,點擊Execute按鈕,如下,將返回多個不同的時間序列(以及每個時間序列的最新值),所有時間序列的 metric 名稱均為prometheus_target_interval_length_seconds,但具有不同的標簽。這些標簽具有不同的延遲百分比和目標組間隔(target group intervals)。

7f3e8e9c-e6df-11ef-9310-92fbcf53809c.png

如果我們只對第 99 個百分位延遲感興趣,則可以使用以下查詢來檢索該信息:

prometheus_target_interval_length_seconds{quantile="0.99"}

如果需要計算返回的時間序列數,可以修改查詢如下:

count(prometheus_target_interval_length_seconds)

更多有關 expression language 的更多信息,請查看 expression language 文檔。

使用繪圖界面

要繪制圖形表達式,請使用 “Graph” 選項卡。

例如,輸入以下表達式以繪制在自采樣的 Prometheus 中每秒創建 chunk 的速率:

rate(prometheus_tsdb_head_chunks_created_total[1m])

7f5a7e9a-e6df-11ef-9310-92fbcf53809c.png

啟動一些采樣目標

現在讓我們增加一些采樣目標供 Prometheus 進行采樣。

使用Node Exporter作為采樣目標,多關于它的使用請查閱

# wget https://github.com/prometheus/node_exporter/releases/download/v1.1.2/node_exporter-1.1.2.linux-amd64.tar.gz
# tar -xvzf node_exporter-1.1.2.linux-amd64.tar.gz
# ./node_exporter --web.listen-address 127.0.0.1:8001
# ./node_exporter --web.listen-address 127.0.0.1:8002
# ./node_exporter --web.listen-address 127.0.0.1:8003

現在,應該存在監聽http://localhost:8080/metrics, http://localhost:8081/metrics 和http://localhost:8082/metrics的示例目標

配置 Prometheus 來監控示例目標

現在,我們將配置 Prometheus 來采樣這些新目標。讓我們將所有三個 endpoint 分組為一個稱為 “node” 的 job。但是,假設前兩個 endpoint 是生產目標,而第三個 endpoint 代表金絲雀實例。為了在 Prometheus 中對此建模,我們可以將多個端組添加到單個 job 中,并為每個目標組添加額外的標簽。在此示例中,我們將group=“ production”標簽添加到第一個目標組,同時將group=“ canary”添加到第二個目標。

為此,請將以下job定義添加到prometheus.yml中的scrape_configs部分,然后重新啟動 Prometheus 實例。修改后的prometheus.yml內容如下

global:
  scrape_interval:     15s # 默認,每15秒采樣一次目標

  # 與其它外部系統(比如federation, remote storage, Alertmanager)交互時,會附加這些標簽到時序數據或者報警
  external_labels:
    monitor: 'codelab-monitor'

# 一份采樣配置僅包含一個 endpoint 來做采樣
# 下面是 Prometheus 本身的endpoint:
scrape_configs:
  # job_name 將被被當作一個標簽 `job=`添加到該配置的任意時序采樣.
  - job_name: 'prometheus'

    # 覆蓋全局默認值,從該job每5秒對目標采樣一次
    scrape_interval: 5s

    static_configs:
      - targets: ['10.118.71.170:9090']

  - job_name: 'node'

    # Override the global default and scrape targets from this job every 5 seconds.
    scrape_interval: 5s

    static_configs:
      - targets: ['localhost:8001', 'localhost:8002']
        labels:
          group: 'production'

      - targets: ['localhost:8003']
        labels:
          group: 'canary'

查看Targets(Status->Targets)

7f6f2dc2-e6df-11ef-9310-92fbcf53809c.png

Graph查詢

7f92cdc2-e6df-11ef-9310-92fbcf53809c.png

配置規則以將采樣的數據聚合到新的時間序列

盡管在我們的示例中并不會有問題,但是在聚集了數千個時間序列中查詢時可能會變慢。為了提高效率,Prometheus 允許通過配置的記錄規則將表達式預記錄到全新的持久化的時間序列中。假設我們感興趣的是 5 分鐘的窗口內測得的每個實例的所有cpu上平均的cpu時間(node_cpu_seconds_total,保留 Job,instance,和mode 維度))。我們可以這樣寫:

avg by (job, instance, mode) (rate(node_cpu_seconds_total[5m]))

Graph中執行查詢,結果如下

7fc71302-e6df-11ef-9310-92fbcf53809c.png

現在,要將由該表達式產生的時間序列記錄到一個名為:job_instance_modeavg_rate5m的新指標,使用以下記錄規則創建文件并將其保存prometheus.rules.yml

groups:
- name: cpu-node
  rules:
  - record: job_instance_modeavg_rate5m
    expr: avg by (job, instance, mode) (rate(node_cpu_seconds_total[5m]))

在prometheus.yml中添加rule_files語句,以便 Prometheus 選擇此新規則。現在,prometheus.yml配置應如下所示:

global:
  scrape_interval:     15s # 默認,每15秒采樣一次目標

  # 與其它外部系統(比如federation, remote storage, Alertmanager)交互時,會附加這些標簽到時序數據或者報警
  external_labels:
    monitor: 'codelab-monitor'

rule_files:
  - 'prometheus.rules.yml'

# 一份采樣配置僅包含一個 endpoint 來做采樣
# 下面是 Prometheus 本身的endpoint:
scrape_configs:
  # job_name 將被被當作一個標簽 `job=`添加到該配置的任意時序采樣.
  - job_name: 'prometheus'

    # 覆蓋全局默認值,從該job每5秒對目標采樣一次
    scrape_interval: 5s

    static_configs:
      - targets: ['10.118.71.170:9090']

  - job_name: 'node'

    # Override the global default and scrape targets from this job every 5 seconds.
    scrape_interval: 5s

    static_configs:
      - targets: ['localhost:8001', 'localhost:8002']
        labels:
          group: 'production'

      - targets: ['localhost:8003']
        labels:
          group: 'canary'

通過新的配置重新啟動 Prometheus,并通過expression brower查詢job_instance_modeavg_rate5m,結果如下

7fee26ea-e6df-11ef-9310-92fbcf53809c.png

鏈接:https://www.cnblogs.com/shouke/p/18667439

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 監控
    +關注

    關注

    6

    文章

    2317

    瀏覽量

    57367
  • Prometheus
    +關注

    關注

    0

    文章

    30

    瀏覽量

    1887

原文標題:從零開始掌握Prometheus:企業級監控與報警系統的最佳實踐

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Prometheus的架構原理監控”談起

    Prometheus是繼Kubernetes(k8s)之后,CNCF畢業的第二個開源項目,其來源于Google的Borgmon。本文監控這件事說起,深入淺出Prometheus的架構
    的頭像 發表于 10-10 15:47 ?4692次閱讀
    <b class='flag-5'>Prometheus</b>的架構原理<b class='flag-5'>從</b>“<b class='flag-5'>監控</b>”談起

    Prometheus的基本原理與開發指南

    ? 導讀??? ? 本文由梯度科技云管研發部高級工程師周宇明撰寫,共分為7章,緊密圍繞Prometheus的基本原理與開發指南展開介紹: 監控系統概述
    的頭像 發表于 11-09 10:45 ?1587次閱讀
    <b class='flag-5'>Prometheus</b>的基本原理與開發<b class='flag-5'>指南</b>

    SAS走進企業級存儲應用

    SAS走進企業級存儲應用串行SCSI(SAS)的出現已經有幾年了。2005年,在主要的接口技術中,由于OEM服務器制造商和系統集成商開始提供串行SCSI解決方案,企業級存儲市場將會顯現革命性的進展
    發表于 11-13 21:58

    采用nvSRAM確保企業級SSD故障時電源可靠性

    數據傳輸速度超過了NAND閃存的寫入速度,因此企業級SSD的寫入性能可通過高速數據緩存加以提高。企業級SSD通常采用SDRAM作為緩存,保存并處理存儲系統控制器接收到的數據流有關部分
    發表于 09-26 09:44

    大話企業級Android開發

    大話企業級Android開發
    發表于 07-11 19:39

    大話企業級Android開發

    大話企業級Android開發
    發表于 03-31 11:37

    企業級的LInux系統日志管理

    企業級LInux系統日志管理
    發表于 05-29 11:33

    prometheus監控服務的整個流程介紹

    Prometheus,然后Prometheus通過定期拉取的方式來獲取監控數據;數據的來源多種多樣包括:系統
    發表于 12-23 17:34

    大話企業級Android開發

    大話企業級Android開發
    發表于 03-05 11:15

    iPhone OS企業級部署指南

    iPhone OS企業級部署指南
    發表于 12-10 14:51 ?57次下載

    戴爾“企業級”視頻監控解決方案

    戴爾提供整套包括采集、傳輸、處理、存儲、分析和視頻云相關的視頻監控解決方案。結合高可靠、高兼容和性能強大的企業級承載平臺,除了可滿足基本的視頻采集和存儲需求外,戴爾整體視頻監控解決方
    發表于 11-25 15:37 ?1529次閱讀
    戴爾“<b class='flag-5'>企業級</b>”視頻<b class='flag-5'>監控</b>解決方案

    基于企業級信息集成平臺的數據存儲備份系統構建_王永平

    基于企業級信息集成平臺的數據存儲備份系統構建_王永平
    發表于 03-16 10:10 ?0次下載

    使用Thanos+Prometheus+Grafana構建監控系統

    對于彈性伸縮和高可用的系統來說,一般有大量的指標數據需要收集和存儲,如何為這樣的系統打造一個監控方案呢?本文介紹了如何使用 Thanos+Prometheus+Grafana
    的頭像 發表于 05-05 21:14 ?2997次閱讀

    基于kube-prometheus的大數據平臺監控系統設計

    本文介紹了如何基于 kube-prometheus 設計一個監控系統, 以靈活簡單的方式對 kubernetes 上的應用進行指標采集,并實現監控
    的頭像 發表于 05-30 17:02 ?880次閱讀

    企業級MySQL數據庫管理指南

    在當今數字化時代,MySQL作為全球最受歡迎的開源關系型數據庫,承載著企業核心業務數據的存儲與處理。作為數據庫管理員(DBA),掌握MySQL的企業級部署、優化、維護技能至關重要。本文將從實戰角度出發,系統闡述MySQL在
    的頭像 發表于 07-09 09:50 ?110次閱讀
    主站蜘蛛池模板: 最新日韩中文字幕 | 亚洲午夜久久久久影院 | 曰本又色又爽又黄三级视频 | 韩国三级视频在线观看 | 在线免费视频手机版 | 奇米色吧| 美女一级毛片免费观看 | 男女免费观看视频 | 婷婷综合 在线 | 69xxxx欧美老师| 亚洲国产一区二区三区a毛片 | 男人j进入女人j视频大全 | 免费番茄社区性色大片 | 欧美成人26uuu欧美毛片 | 亚洲色图日韩精品 | 无内丝袜透明在线播放 | 久久精品免费在线观看 | 一级看片免费视频囗交 | 天天色综合2 | 亚洲一区二区高清 | 四虎看片| 天堂资源www天堂在线 | 亚洲国产激情在线一区 | 啪啪网站视频 | 夜夜夜夜夜夜夜工噜噜噜 | ass日本69| 女人本色高清在线观看wwwwww国产 | 日本视频www| 国产亚洲欧美一区二区 | 美女一级一级毛片 | 色狠狠综合 | 日韩高清在线日韩大片观看网址 | 综合久色 | 视频一区二区免费 | 夜夜摸天天操 | 女人大毛片一级毛片一 | 精品亚洲欧美无人区乱码 | 色噜噜色偷偷 | 淫五月| 一区视频在线 | 一色桃子juy774在线播放 |