內容介紹
這是一本從原理與實踐角度全面講解InfluxDB的著作,由架構師、InfluxDB技術專家撰寫,融入了作者構建千億級監(jiān)控大數(shù)據(jù)平臺的工程實踐經驗。從生態(tài)、應用場景、功能使用、源碼分析等角度對InfluxDB進行了深入的講解,包含9個企業(yè)級實戰(zhàn)案例,100余示例,300余條命令和語法詳解,能幫助讀者從零開始,徹底吃透InfluxDB的功能和原理,快速晉級為InfluxDB實戰(zhàn)專家。
全書一共9章,從結構上分為四個部分:
第壹部分 準備篇(第1~2章)
首先,從宏觀角度介紹了InfluxDB的發(fā)展歷程、適應場景、特點、優(yōu)勢以及社區(qū)和生態(tài);然后,手把手教讀者如何快速在各種環(huán)境中搭建InfluxDB生產環(huán)境。
第二部分 基礎篇(第3~8章)
著重、全面地講解InfluxDB的核心功能,包括基礎操作、連續(xù)查詢、保留策略、認證授權、集群和可用性、備份管理、節(jié)點管理、第三方協(xié)議等,并以多個DevOps實戰(zhàn)為例,透徹講解了InfluxDB的原理和實戰(zhàn)技巧。
第三部分 實戰(zhàn)篇(第9~10章)
分別以基于TICK的DevOps實戰(zhàn)和基于InfluxDB、Grafana、Prometheus的DevOps實戰(zhàn)為例,講解了以InfluxDB為核心的企業(yè)級監(jiān)控系統(tǒng)的構建方法。
第四部分 擴展篇(第11章)
著重講解了InfluxDB的源碼編譯方法,并采用拋磚引玉的方式,對啟動流程、配置模塊、HTTP寫入和查詢流程等進行了源碼分析,幫助讀者打開探索和研究InfluxDB源碼的精彩之門。
前 言
第1章 初識InfluxDB 1
1.1 什么是InfluxDB 1
1.1.1 簡介 1
1.1.2 歷史和發(fā)展 4
1.1.3 使用場景 5
1.1.4 社區(qū)和生態(tài) 6
1.2 InfluxDB的優(yōu)勢 7
1.3 InfluxDB的特性 9
1.3.1 InfluxDB的特點 10
1.3.2 核心概念 10
1.4 本章小結 11
第2章 InfluxDB入門 12
2.1 InfluxDB在各環(huán)境下的安裝部署 12
2.1.1 RedHat & CentOS 環(huán)境 13
2.1.2 Ubuntu & Debian 環(huán)境 15
2.1.3 Mac OS & OS X 環(huán)境 17
2.1.4 MS Windows環(huán)境 19
2.1.5 二進制軟件包安裝 21
2.2 InfluxDB軟件包程序 22
2.2.1 influx介紹 23
2.2.2 influxd介紹 24
2.2.3 influx_inspect介紹 26
2.2.4 influx_stress介紹 27
2.2.5 influx_tsm介紹 27
2.3 InfluxDB 配置文件 28
2.4 InfluxDB安裝部署和基礎操作實戰(zhàn) 33
2.5 本章小結 37
第3章 寫入和查詢 38
3.1 操作模式 38
3.1.1 influx命令行模式 39
3.1.2 InfluxDB API模式 46
3.2 寫入 48
3.2.1 行協(xié)議 48
3.2.2 寫入數(shù)據(jù) 51
3.3 查詢 54
3.3.1 InfluxQL 54
3.3.2 查詢數(shù)據(jù) 71
3.4 本章小結 74
第4章 連續(xù)查詢和保留策略 75
4.1 連續(xù)查詢 76
4.1.1 連續(xù)查詢的基礎特性 76
4.1.2 連續(xù)查詢的高級特性 78
4.1.3 管理連續(xù)查詢 80
4.1.4 連續(xù)查詢的場景應用 82
4.2 保留策略 84
4.2.1 創(chuàng)建保留策略 85
4.2.2 查詢保留策略 87
4.2.3 管理保留策略 88
4.3 DevOps監(jiān)控的采樣實戰(zhàn) 89
4.4 本章小結 94
第5章 認證與授權 95
5.1 認證 95
5.1.1 啟動認證 96
5.1.2 認證請求 96
5.2 授權 99
5.2.1 賬戶權限 99
5.2.2 賬戶管理命令 100
5.3 DevOps監(jiān)控的權限管理實戰(zhàn) 105
5.4 本章小結 109
第6章 集群和高可用 110
6.1 集群簡介 111
6.1.1 集群的基本概念 111
6.1.2 集群架構 112
6.2 集群配置 113
6.2.1 準備工作 114
6.2.2 META節(jié)點集群配置 116
6.2.3 DATA節(jié)點集群配置 120
6.3 Hinted-Handoff 123
6.4 Anti-Entropy 127
6.4.1 Anti-Entropy原理 128
6.4.2 Anti-Entropy命令 129
6.4.3 Anti-Entropy API 130
6.4.4 Anti-Entropy配置 132
6.4.5 Anti-Entropy典型應用場景 134
6.5 本章小結 136
第7章 備份管理和節(jié)點管理 137
7.1 備份管理 137
7.1.1 備份 138
7.1.2 還原備份 140
7.1.3 導出數(shù)據(jù) 143
7.1.4 導入數(shù)據(jù) 144
7.2 節(jié)點管理 145
7.2.1 節(jié)點管理相關命令 145
7.2.2 META節(jié)點替換實戰(zhàn) 149
7.2.3 DATA節(jié)點替換實戰(zhàn) 153
7.2.4 擴容實戰(zhàn) 155
7.3 本章小結 162
第8章 第三方協(xié)議 163
8.1 UDP協(xié)議 164
8.1.1 UDP協(xié)議簡介 164
8.1.2 UDP協(xié)議基本用法 164
8.2 兼容CollectD 166
8.2.1 CollectD簡介 166
8.2.2 CollectD協(xié)議的基本用法 167
8.3 兼容Graphite 170
8.3.1 Graphite簡介 170
8.3.2 Graphite協(xié)議的基本用法 171
8.4 兼容OpenTSDB 175
8.4.1 OpenTSDB簡介 175
8.4.2 OpenTSDB協(xié)議的基本用法 176
8.5 兼容Prometheus 178
8.5.1 Prometheus簡介 178
8.5.2 Prometheus協(xié)議的基本用法 179
8.6 本章小結 181
第9章 基于TICK的DevOps監(jiān)控實戰(zhàn) 182
9.1 TICK簡介 183
9.2 Telegraf 184
9.2.1 Telegraf簡介 184
9.2.2 Telegraf安裝部署 186
9.2.3 Telegraf命令 189
9.3 Kapacitor 191
9.3.1 Kapacitor簡介 191
9.3.2 Kapacitor安裝部署 191
9.3.3 Kapacitor命令 193
9.4 Chronograf 194
9.4.1 Chronograf簡介 194
9.4.2 Chronograf安裝部署 196
9.4.3 Chronograf命令 198
9.4.4 創(chuàng)建InfluxDB連接 202
9.4.5 創(chuàng)建Kapacitor連接 205
9.5 基于TICK的DevOps監(jiān)控實戰(zhàn) 208
9.6 本章小結 216
第10章 基于InfluxDB、Prometheus、Grafana的DevOps監(jiān)控實戰(zhàn) 217
10.1 Prometheus 218
10.2 Grafana 219
10.2.1 Grafana簡介 219
10.2.2 Grafana安裝部署 220
10.3 基于InfluxDB、Prometheus、Grafana的DevOps監(jiān)控實戰(zhàn) 225
10.4 本章小結 234
第11章 InfluxDB源碼架構剖析 235
11.1 源碼編譯 236
11.1.1 Golang語言環(huán)境配置 236
11.1.2 源碼編譯安裝 237
11.2 啟動流程源碼剖析 239
11.3 配置模塊源碼剖析 244
11.3.1 創(chuàng)建示例配置 244
11.3.2 加載配置 246
11.4 HTTP寫入流程和查詢流程源碼剖析 248
11.4.1 HTTP請求處理流程 248
11.4.2 寫入流程 254
11.4.3 查詢流程 258
11.5 本章小結 265