內容簡介
異形般強大的監控系統:Prometheus掌控主機、VM、容器及K8S
內容簡介
伴隨著容器相關技術的興起,Prometheus 正逐步成為容器監控的標準,並且對於傳統應用和裝置也有很好的相容性。
全書共分為4 篇12 章,分別說明Prometheus 原理、在傳統應用監控和Kubernetes 監控中的應用,以及原始程式和擴充。
Prometheus 由Go 語言撰寫而成,採用Pull 方式取得監控資訊,並提供了多維度的資料模型和靈活的查詢介面。
Prometheus 不僅可以透過靜態檔案設定監控物件,還支援自動發現機制,能夠透過Kubernetes、Consul、DNS 等多種方式動態取得監控物件。在資料獲取方面,借助Go 語言的高平行處理特性,單機Prometheus 可以擷取數百個節點的監控資料;在資料儲存方面,隨著本機時序資料庫的不斷最佳化,單機Prometheus 每秒可以擷取一千萬個指標,如果需要儲存大量的歷史監控資料,則還支援遠端儲存。
全書重點涵蓋:
►最強大的系控監控平台,可監控叢集、伺服器、虛擬、容器
►完整的資源管理、包括網路、儲存、CPU、記憶體、作業系統
►不需要自行組合Logstash/ElasticSearch/Kibana,單一完整監控系統
►最重要的就是針對Kubernetes的完整監控
►包括Kubernetes容器、服務自動發現等
►針對Kubernetes的物件、如cAdvisor, apiserver, kube-state-metrics
►Kubernetes叢集監控,Granfna的使用
►完整Prometheus的原始碼分析及改裝
本書特色
◎ 系統講解Prometheus的原理、應用、原始程式和擴充
◎ 圖文並茂、由淺入深、完整解說
適合讀者群:運維工程師、軟體架構師、研發工程師,及相關IT產業工作者參考和閱讀。
內容簡介
伴隨著容器相關技術的興起,Prometheus 正逐步成為容器監控的標準,並且對於傳統應用和裝置也有很好的相容性。
全書共分為4 篇12 章,分別說明Prometheus 原理、在傳統應用監控和Kubernetes 監控中的應用,以及原始程式和擴充。
Prometheus 由Go 語言撰寫而成,採用Pull 方式取得監控資訊,並提供了多維度的資料模型和靈活的查詢介面。
Prometheus 不僅可以透過靜態檔案設定監控物件,還支援自動發現機制,能夠透過Kubernetes、Consul、DNS 等多種方式動態取得監控物件。在資料獲取方面,借助Go 語言的高平行處理特性,單機Prometheus 可以擷取數百個節點的監控資料;在資料儲存方面,隨著本機時序資料庫的不斷最佳化,單機Prometheus 每秒可以擷取一千萬個指標,如果需要儲存大量的歷史監控資料,則還支援遠端儲存。
全書重點涵蓋:
►最強大的系控監控平台,可監控叢集、伺服器、虛擬、容器
►完整的資源管理、包括網路、儲存、CPU、記憶體、作業系統
►不需要自行組合Logstash/ElasticSearch/Kibana,單一完整監控系統
►最重要的就是針對Kubernetes的完整監控
►包括Kubernetes容器、服務自動發現等
►針對Kubernetes的物件、如cAdvisor, apiserver, kube-state-metrics
►Kubernetes叢集監控,Granfna的使用
►完整Prometheus的原始碼分析及改裝
本書特色
◎ 系統講解Prometheus的原理、應用、原始程式和擴充
◎ 圖文並茂、由淺入深、完整解說
適合讀者群:運維工程師、軟體架構師、研發工程師,及相關IT產業工作者參考和閱讀。
作者簡介
作者簡介
陳曉宇
宜信容器雲架構師,負責宜信PaaS平台的設計和推廣,幫助企業從傳統應用遷移至雲原生應用。在雲端運算相關行業具有豐富的研發與架構經驗,並積極參與OpenStack、Kubernetes、Harbor等社群的開放原始碼專案。
楊川胡
「k8s技術圈」社群維護者,全棧工程師,具備豐富的雲端運算、上億活躍用戶應用後端實踐經驗,擅長Python、Golang、Docker、Kubernetes等技術,曾在小米擔任資深研發工程師。個人GitHub頁面:https://github.com/cnych。
陳嘯
Prometheus二次開發深度使用者,專注於分散式搜索、流式計算、集群監控、大數據安全領域。任職深信服科技股份有限公司安全感知團隊,負責資料平台基礎架構研發工作。
陳曉宇
宜信容器雲架構師,負責宜信PaaS平台的設計和推廣,幫助企業從傳統應用遷移至雲原生應用。在雲端運算相關行業具有豐富的研發與架構經驗,並積極參與OpenStack、Kubernetes、Harbor等社群的開放原始碼專案。
楊川胡
「k8s技術圈」社群維護者,全棧工程師,具備豐富的雲端運算、上億活躍用戶應用後端實踐經驗,擅長Python、Golang、Docker、Kubernetes等技術,曾在小米擔任資深研發工程師。個人GitHub頁面:https://github.com/cnych。
陳嘯
Prometheus二次開發深度使用者,專注於分散式搜索、流式計算、集群監控、大數據安全領域。任職深信服科技股份有限公司安全感知團隊,負責資料平台基礎架構研發工作。
內容目錄
目錄
前言
第1篇 Prometheus 原理
01監控
1.1 監控系統概覽
1.2 基礎資源監控
1.3 中介軟體監控
1.4 應用程式監控(APM)
1.5 記錄檔監控
1.6 監控系統實現
1.7 監控系統的發展趨勢
1.8 本書主角-- Prometheus
1.9 其他開放原始碼監控工具
1.10 監控系統的比較
02深入Prometheus 設計
2.1指標
2.2 資料獲取
2.3 資料處理
2.4 資料儲存
2.5 資料查詢
2.6 警告
2.7 叢集
2.8 Prometheus 並非監控銀彈
03資料儲存
3.1 儲存介面
3.2 本機存放區
3.3 遠端儲存
3.4 儲存匯聚
第2篇 Prometheus 在傳統應用監控中的應用
04 Prometheus exporter 詳解
4.1 服務分類
4.2 資料標準
4.3 exporter 簡介
4.4 基於Go 用戶端撰寫一個exporter
4.5 Node exporter 解析
4.6 Redis exporter 解析
4.7 MySQL server exporter 解析
4.8 深入探索Go 用戶端
第3篇 Prometheus 在Kubernetes 監控中的應用
05 Kubernetes 監控方案
5.1 Heapster
5.2 kube-state-metrics
5.3 metrics-server
5.4 Prometheus
06 Prometheus 的安裝設定
6.1 手動安裝Prometheus
6.2 安裝Prometheus Operator
6.3 在Prometheus Operator 中增加自訂的監控
6.4 在Prometheus Operator 中增加自訂警告
6.5 Prometheus Operator 的進階設定
07 Prometheus 監控Kubernetes 之服務設定
7.1 靜態設定
7.2 服務發現設定
08 Prometheus 監控Kubernetes 之監控物件
8.1 容器監控
8.2 apiserver 監控
8.3 Service 監控
8.4 kube-state-metrics 監控
8.5 主機監控
09 Prometheus 監控Kubernetes 之資料展現
9.1 在Kubernetes 叢集中安裝Grafana
9.2 設定Grafana
9.3 外掛程式
9.4 Grafana 警告
10 Prometheus 監控Kubernetes 之警告
10.1 AlertManager 簡介
10.2 安裝AlertManager
10.3 警告規則
10.4 webhook 接收器
第4 篇 Prometheus 原始程式與擴充
11 Prometheus 服務元件
11.1 Prometheus 原始程式的目錄結構
11.2 原生Prometheus 的不足
11.3 原始程式改造-- 更改時區
11.4 原始程式改造-- 用blog4go 記錄系統記錄檔
11.5 Prometheus 的初始化
11.6 原始程式改造-- MySQL 規則儲存
11.7 資料獲取
11.8 通知管理
11.9 規則管理
11.10 原始程式改造-- 不重複scrape 及附帶時間戳記正則運算
12 AlertManager 服務元件
12.1 接收警告
12.2 警告排程
12.3 警告比對
12.4 警告處
12.5 警告通知
前言
第1篇 Prometheus 原理
01監控
1.1 監控系統概覽
1.2 基礎資源監控
1.3 中介軟體監控
1.4 應用程式監控(APM)
1.5 記錄檔監控
1.6 監控系統實現
1.7 監控系統的發展趨勢
1.8 本書主角-- Prometheus
1.9 其他開放原始碼監控工具
1.10 監控系統的比較
02深入Prometheus 設計
2.1指標
2.2 資料獲取
2.3 資料處理
2.4 資料儲存
2.5 資料查詢
2.6 警告
2.7 叢集
2.8 Prometheus 並非監控銀彈
03資料儲存
3.1 儲存介面
3.2 本機存放區
3.3 遠端儲存
3.4 儲存匯聚
第2篇 Prometheus 在傳統應用監控中的應用
04 Prometheus exporter 詳解
4.1 服務分類
4.2 資料標準
4.3 exporter 簡介
4.4 基於Go 用戶端撰寫一個exporter
4.5 Node exporter 解析
4.6 Redis exporter 解析
4.7 MySQL server exporter 解析
4.8 深入探索Go 用戶端
第3篇 Prometheus 在Kubernetes 監控中的應用
05 Kubernetes 監控方案
5.1 Heapster
5.2 kube-state-metrics
5.3 metrics-server
5.4 Prometheus
06 Prometheus 的安裝設定
6.1 手動安裝Prometheus
6.2 安裝Prometheus Operator
6.3 在Prometheus Operator 中增加自訂的監控
6.4 在Prometheus Operator 中增加自訂警告
6.5 Prometheus Operator 的進階設定
07 Prometheus 監控Kubernetes 之服務設定
7.1 靜態設定
7.2 服務發現設定
08 Prometheus 監控Kubernetes 之監控物件
8.1 容器監控
8.2 apiserver 監控
8.3 Service 監控
8.4 kube-state-metrics 監控
8.5 主機監控
09 Prometheus 監控Kubernetes 之資料展現
9.1 在Kubernetes 叢集中安裝Grafana
9.2 設定Grafana
9.3 外掛程式
9.4 Grafana 警告
10 Prometheus 監控Kubernetes 之警告
10.1 AlertManager 簡介
10.2 安裝AlertManager
10.3 警告規則
10.4 webhook 接收器
第4 篇 Prometheus 原始程式與擴充
11 Prometheus 服務元件
11.1 Prometheus 原始程式的目錄結構
11.2 原生Prometheus 的不足
11.3 原始程式改造-- 更改時區
11.4 原始程式改造-- 用blog4go 記錄系統記錄檔
11.5 Prometheus 的初始化
11.6 原始程式改造-- MySQL 規則儲存
11.7 資料獲取
11.8 通知管理
11.9 規則管理
11.10 原始程式改造-- 不重複scrape 及附帶時間戳記正則運算
12 AlertManager 服務元件
12.1 接收警告
12.2 警告排程
12.3 警告比對
12.4 警告處
12.5 警告通知
ISBN: 9789865501167