Prometheus 監控實戰

[澳] 詹姆斯·特恩布爾(James Turnbull) 著

  • 出版商: 機械工業
  • 出版日期: 2019-08-01
  • 定價: $474
  • 售價: 8.5$403
  • 語言: 簡體中文
  • ISBN: 7111633113
  • ISBN-13: 9787111633112
  • 相關分類: DevOps
  • 已絕版

買這商品的人也買了...

商品描述

本書由淺入深地對Prometheus進行了全方位的介紹,內容通俗易懂,理論與實踐相結合。首先從監控體系講起,介紹了關於監控的各種經典理論和方法。然後循序漸進地介紹了Prometheus的各個功能組件和配置方法,包括監控主機和容器、服務發現、警報管理,以及Kubernetes和運行其上的應用程序的監控。本書覆蓋了目前的一些主流雲技術(比如AWS),但同樣適用於各種其他環境和技術棧。讀過本書後,相信你可以設計並構建出一個優秀的監控系統。
通過閱讀本書,你將學到以下內容:
·Prometheus監控:使用Prometheus來監控主機、應用程序和服務,內容涉及安裝、基本監視、服務發現、警報、日誌監控、伸縮和可視化。
·監控與度量:監控基礎、方法和途徑,介紹如何在以度量為中心的環境中進行監控,包括構建動態閾值、基本異常檢測以及監控聚合與聯合,研究如何應用現代模式,如谷歌的四個黃金指標、USE方法和RED方法。
·Kubernetes與容器:對Kubernetes、Docker和容器進行監控,專註於監控高度動態、瞬息萬變的環境和新架構(如微服務)的特殊挑戰。
·雲:在雲中進行監控,包括服務發現和雲平臺的監控。

作者簡介

詹姆斯·特恩布爾(James Turnbull)是一位作家和工程師。他最近出版的書包括《The Packer Book》《The Terraform Book》和《The Art of Monitoring》,以及關於開源容器虛擬化技術的《The Docker Book》,還有關於開源日誌工具的《The Logstash Book》 。詹姆斯還撰寫了兩本關於Puppet的書:《Pro Puppet》和《Pulling Strings with Puppet》。同時他還是另外三本書的作者:《Pro Linux System Administration》《Pro Nagios 2.0》和《Hardening Linux》。
  他目前是Empatico公司的首席技術官,並且曾擔任過Kickstarter公司的首席技術官、Docker公司服務和支持副總裁、Venmo公司工程副總裁以及Puppet公司技術運營副總裁。他喜歡品嚐美食、喝酒、讀書、攝影和養貓。

目錄大綱

譯者序
前言
第1章監控簡介1 
1.1什麼是監控1 
1.1.1技術作為客戶2 
1.1.2業務作為客戶2 
1.2監控基礎知識2 
1.2.1事後監控2 
1.2.2機械式監控3 
1.2.3不夠準確的監控4 
1.2.4靜態監控5 
1.2.5不頻繁的監控5 
1.2.6缺少自動化或自服務6 
1.2.7監控模式總結6 
1.3監控機制7 
1.3.1探針和內省7 
1.3. 2拉取和推送7 
1.3.3監控數據的類型8 
1.4指標8 
1.4.1什麼是指標9
1.4.2指標類型10 
1.4.3指標摘要12 
1.4.4指標聚合12 
1.5監控方法論20 
1.5.1 USE方法20 
1.5.2 Google的四個黃金指標21 
1.6警報和通知22 
1.7可視化23 
1.8另一本關於監控的書24 
1.9本書內容24 
1.10小結25 
第2章Prometheus簡介26 
2.1 Prometheus起源26 
2.2 Prometheus架構27 
2.2.1指標收集28 
2.2.2服務發現29 
2.2.3聚合和警報29 
2.2.4查詢數據29 
2.2.5自治30 
2.2.6冗餘和高可用性30 
2.2.7可視化31 
2.3 Prometheus數據模型31 
2.3.1指標名稱31 
2.3.2標籤32 
2.3.3採樣數據32 
2.3.4符號表示32 
2.3 .5保留時間33 
2.4安全模型33 
2.5 Prometheus生態系統34 
2.6參考鏈接34
2.7小結34 
第3章安裝和啟動Prometheus35 
3.1安裝Prometheus35 
3.1.1在Linux上安裝Prometheus36 
3.1.2在Windows上安裝Prometheus37 
3.1.3在Windows上安裝Prometheus的其他方式38 
3.1.4在Mac OS X上安裝Prometheus38 
3.1.5通過監控套件安裝Prometheus38 
3.1.6通過配置管理工具安裝Prometheus39 
3.1.7通過Kubernetes安裝Prometheus39 
3.2配置Prometheus39 
3.2.1 global40 
3.2.2 alerting41 
3.2.3 rule_files42 
3.2.4 scrape_configs42 
3.3啟動Prometheus43 
3.4第一個指標44 
3.5表達式瀏覽器45 
3.6聚合時間序列48 
3.7容量規劃51 
3.7.1內存51 
3.7.2磁盤51 
3.8小結52 
第4章監控主機和容器53 
4.1監控節點54
4.1.1安裝Node Exporter54 
4.1.2配置Node Exporter55 
4.1.3配置textfile收集器56 
4.1.4啟用systemd收集器57 
4.1.5運行Node Exporter57 
4.1.6抓取Node Exporter58 
4.1.7過濾收集器58 
4.2監控Docker容器59 
4.2.1運行cAdvisor60 
4.2.2抓取cAdvisor61 
4.3抓取的生命週期62 
4.4標籤64 
4.4.1標籤分類64 
4.4.2重新標記65 
4.5 Node Exporter和cAdvisor指標69 
4.5.1 USE方法69 
4.5 .2服務狀態77 
4.5.3可用性和up指標78 
4.5.4 metadata指標79 
4.6查詢持久性81 
4.6.1記錄規則82 
4.6.2配置記錄規則82 
4.6.3添加記錄規則83 
4.7可視化86 
4.7.1安裝Grafana86 
4.7.2啟動和配置Grafana88 
4.7.3配置Grafana Web界面89
4.7.4第一個儀表板91 
4.8小結92 
第5章服務發現93 
5.1靜態配置的局限性93 
5.2基於文件的服務發現94 
5.3基於API的服務發現98 
5.4基於DNS的服務發現102 
5.5小結104 
第6章警報管理105 
6.1警報105 
6.2 Alertmanager如何工作107 
6.3安裝Alertmanager108 
6.3.1在Linux上安裝Alertmanager108 
6.3.2在Windows上安裝Alertmanager109 
6.3.3通過監控套件安裝Alertmanager110 
6.3.4通過配置管理工具安裝Alertmanager110 
6.4配置Alertmanager111 
6.5運行Alertmanager113 
6.6為Prometheus配置Alertmanager114 
6.6.1 Alertmanager服務發現114 
6.6.2監控Alertmanager115 
6.7添加警報規則115 
6.7.1添加第一條警報規則116 
6.7.2警報觸發118 
6.7.3 Alertmanager的警報118
6.7.4添加新警報和模板120 
6.8路由123 
6.9接收器和通知模板126 
6.10 silence和維護128 
6.10.1通過Alertmanager控制silence128 
6.10.2通過amtool控制silence130 
6.11小結132 
第7章可靠性和可擴展性133 
7.1可靠性和容錯性133 
7.1.1重複的Prometheus服務器134 
7.1.2設置Alertmanager集群135 
7.1.3為Prometheus配置Alertmanager集群136 
7.2可擴展性138 
7.2.1功能擴展138 
7.2.2水平分片139 
7.3遠程存儲144 
7.4第三方工具144 
7.5小結144 
第8章監控應用程序145 
8.1應用程序監控入門145 
8.1.1從哪裡開始146 
8.1.2監控分類146 
8.2指標146 
8.2.1應用程序指標147 
8.2. 2業務指標147 
8.2.3放置指標147 
8.2.4實用程序模式147
8.2.5外部模式148 
8.2.6監控應用程序示例149 
8.3小結155 
第9章日誌監控156 
9.1日誌處理156 
9.2 mtail簡介157 
9.2.1安裝mtail157 
9.2.2使用mtail158 
9.2.3運行mtail159 
9.3處理Web服務器訪問日誌161 
9.4解析Rails日誌到直方圖163 
9.5部署mtail165 
9.6抓取mtail端點165 
9.7小結166 
第10章探針監控167 
10.1探針架構167 
10.2 Blackbox exporter168 
10.3安裝exporter168 
10.3.1在Linux上安裝exporter169 
10.3 .2在Windows上安裝exporter170 
10.3.3通過配置管理工具安裝exporter170 
10.4配置exporter171 
10.4.1 HTTP檢查172 
10.4.2 ICMP檢查172 
10.4.3 DNS檢查173 
10.5啟動exporter173
10.6創建Prometheus作業174 
10.7小結176 
第11章推送指標和Pushgateway177 
11.1 Pushgateway177 
11.1.1 Pushgateway使用場景178 
11.1.2安裝Pushgateway179 
11.1.3在Linux上安裝Pushgateway179 
11.1.4在Windows上安裝Pushgateway180 
11.1.5通過配置管理工具安裝Pushgateway181 
11.1.6配置和運行Pushgateway181 
11.1.7向Pushgateway發送指標182 
11.1.8在Pushgateway上查看指標183 
11.1.9刪除Pushgateway中的指標184 
11.1.10從客戶端發送指標185 
11.2抓取Pushgateway187 
11.3小結188 
第12章監控Kubernetes189 
12.1 Kubernetes集群189 
12.2在Kubernetes上運行Prometheus190 
12.3監控Kubernetes191 
12.4監控Kubernetes節點191 
12.4.1 Node Exporter DaemonSet191
12.4.2 Node Exporter服務194 
12.4.3部署Node Exporter195 
12.4.4 Node Exporter作業196 
12.4.5 Node Exporter規則199 
12.5 Kubernetes200 
12.5.1 Kube-state-metrics200 
12.5.2 Kube API202 
12.5.3 cAdvisor和節點205 
12.6小結206 
第13章監控Tornado207 
13.1邊車模式207 
13.2 MySQL208 
13.3 Redis213 
13.4 Tornado216 
13.4.1添加Clojure包裝器216 
13.4.2添加註冊表217 
13.4.3添加指標217 
13.4.4導出指標218 
13.4.5 Tornado監控配置219 
13.5小結220