(1)InfluxDB读写性能高、存储压缩率高,生态丰富而强大,直接推动监控技术进入实时、纳秒级的新时代。
(2)本书蕴含了作者构建千亿级大数据监控平台的实战心得和经验总结。
(3)本书与从功能使用、生态、源码分析3个维度全面讲解InfluxDB,包含9个企业级实战案例,100余示例,300余条命令和语法详解。
这是一本从原理与实践角度全面讲解InfluxDB的著作,由腾讯监控大数据平台负责人撰写,融入了作者构建千亿级大数据监控平台的工程实践经验。从生态、应用场景、功能使用、源码分析等角度对InfluxDB进行了深入的讲解,包含9个企业级实战案例,100余示例,300余条命令和语法详解,能帮助读者从零开始,彻底吃透InfluxDB的功能和原理,快速晋级为InfluxDB实战专家。
全书一共9章,从结构上分为四个部分:
第一部分 准备篇(第1~2章)
首先,从宏观角度介绍了InfluxDB的发展历程、适应场景、特点、优势以及社区和生态;然后,手把手教读者如何快速在各种环境中搭建InfluxDB生产环境。
第二部分 基础篇(第3~8章)
着重、全面地讲解InfluxDB的核心功能,包括基础操作、连续查询、保留策略、认证授权、集群和可用性、备份管理、节点管理、第三方协议等,并以多个DevOps实战为例,透彻讲解了InfluxDB的原理和实战技巧。
第三部分 实战篇(第9~10章)
分别以基于TICK的DevOps实战和基于InfluxDB、Grafana、Prometheus的DevOps实战为例,讲解了以InfluxDB为核心的企业级监控系统的构建方法。
第四部分 扩展篇(第11章)
着重讲解了InfluxDB的源码编译方法,并采用抛砖引玉的方式,对启动流程、配置模块、HTTP写入和查询流程等进行了源码分析,帮助读者打开探索和研究InfluxDB源码的精彩之门。
前 言
第1章 初识InfluxDB 1
1.1 什么是InfluxDB 1
1.1.1 简介 1
1.1.2 历史和发展 4
1.1.3 使用场景 5
1.1.4 社区和生态 6
1.2 InfluxDB的优势 7
1.3 InfluxDB的特性 9
1.3.1 InfluxDB的特点 10
1.3.2 核心概念 10
1.4 本章小结 11
第2章 InfluxDB入门 12
2.1 InfluxDB在各环境下的安装部署 12
2.1.1 RedHat & CentOS 环境 13
2.1.2 Ubuntu & Debian 环境 15
2.1.3 Mac OS & OS X 环境 17
2.1.4 MS Windows环境 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安装部署和基础操作实战 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 行协议 48
3.2.2 写入数据 51
3.3 查询 54
3.3.1 InfluxQL 54
3.3.2 查询数据 71
3.4 本章小结 74
第4章 连续查询和保留策略 75
4.1 连续查询 76
4.1.1 连续查询的基础特性 76
4.1.2 连续查询的高级特性 78
4.1.3 管理连续查询 80
4.1.4 连续查询的场景应用 82
4.2 保留策略 84
4.2.1 创建保留策略 85
4.2.2 查询保留策略 87
4.2.3 管理保留策略 88
4.3 DevOps监控的采样实战 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监控的权限管理实战 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节点集群配置 116
6.2.3 DATA节点集群配置 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章 备份管理和节点管理 137
7.1 备份管理 137
7.1.1 备份 138
7.1.2 还原备份 140
7.1.3 导出数据 143
7.1.4 导入数据 144
7.2 节点管理 145
7.2.1 节点管理相关命令 145
7.2.2 META节点替换实战 149
7.2.3 DATA节点替换实战 153
7.2.4 扩容实战 155
7.3 本章小结 162
第8章 第三方协议 163
8.1 UDP协议 164
8.1.1 UDP协议简介 164
8.1.2 UDP协议基本用法 164
8.2 兼容CollectD 166
8.2.1 CollectD简介 166
8.2.2 CollectD协议的基本用法 167
8.3 兼容Graphite 170
8.3.1 Graphite简介 170
8.3.2 Graphite协议的基本用法 171
8.4 兼容OpenTSDB 175
8.4.1 OpenTSDB简介 175
8.4.2 OpenTSDB协议的基本用法 176
8.5 兼容Prometheus 178
8.5.1 Prometheus简介 178
8.5.2 Prometheus协议的基本用法 179
8.6 本章小结 181
第9章 基于TICK的DevOps监控实战 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 创建InfluxDB连接 202
9.4.5 创建Kapacitor连接 205
9.5 基于TICK的DevOps监控实战 208
9.6 本章小结 216
第10章 基于InfluxDB、Prometheus、Grafana的DevOps监控实战 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监控实战 225
10.4 本章小结 234
第11章 InfluxDB源码架构剖析 235
11.1 源码编译 236
11.1.1 Golang语言环境配置 236
11.1.2 源码编译安装 237
11.2 启动流程源码剖析 239
11.3 配置模块源码剖析 244
11.3.1 创建示例配置 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
本书介绍了InfluxDB的使用场景、使用方法以及相关问题的解决方法,可以作为读者了解和使用InfluxDB的参考书。同时,书中提供了多个企业级实战案例的代码解析,对想进一步理解时序数据库实现原理的开发人员也有很高的参考价值。在这本书里,作者分享了自己在腾讯的实战经验,可以帮助读者少走很多弯路。
——朱小平 华为云网络架构师
近两年DevOps得到广泛应用,相应的开源软件栈也层出不穷。然而,大多数投身其中的开发者可能对其技术栈的基础所知甚少,从而陷入盲目的选型和试错。正如作者在序言中所说,本书来源于作者对海量监控平台的技术选型和对InfluxDB进行二次开发的经验总结。书中没有泛泛而谈,而是针对时序中台这一场景进行了有针对性的剖析。
——方家弘 前科恩实验室成员
我们用时序数据库来记录时序数据、追溯过去、监控现在、预测未来。Influx DB是时序数据库中的佼佼者,有着非常优异的性能和可扩展性。韩健基于他对InfluxDB进行二次开发并处理亿级监控平台的经验,对InfluxDB 的原理进行抽茧剥丝,娓娓道来。希望本书可以帮助你打造更加高效、实时的大数据监控平台,帮助企业减少费用、提升业务。
——陈天 ArcBlock研发副总裁
InfluxDB作为时序性数据库的优秀代表,是当代互联网服务生产环境下的核心技术组件,相较于传统数据库系统,InfluxDB的性能高出几倍乃至几十倍,为超大规模业务系统(如5G驱动的IOT系统)的运转提供了关键的底层数据处理能力。当然,在将InfluxDB运用到腾讯的生产环境的过程中,作者所在团队也做出了大量的改进和优化,最终成功打造出一套能够为几十万台服务器提供秒级监控能力的监控平台。在本书中,作者将其在工作中积累的经验和盘托出,这对正在快速成长的中国IT产业具有不可估量的价值。
——严雷 蔷薇灵动创始人兼CEO