上新了!国内首本从原理与实践角度全面讲解InfluxDB的宝藏书
InfluxDB是一款非常优秀的软件,直接推动监控技术进入了实时、纳秒级的新时代,除了类SQL查询语言、RESTful API等现代特性外,还具有读写性能高、存储压缩率高、生态丰富、功能强大等特性。今天小编为大家介绍《InfluxDB原理与实战》。
这是一本从原理与实践角度全面讲解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源码的精彩之门。
本书介绍了InfluxDB的使用场景、使用方法以及相关问题的解决方法,可以作为读者了解和使用InfluxDB的参考书。同时,书中提供了多个企业级实战案例的代码解析,对想进一步理解时序数据库实现原理的开发人员也有很高的参考价值。在这本书里,作者分享了自己在腾讯的实战经验,可以帮助读者少走很多弯路。
——朱小平 华为云网络架构师
近两年DevOps得到广泛应用,相应的开源软件栈也层出不穷。然而,大多数投身其中的开发者可能对其技术栈的基础所知甚少,从而陷入盲目的选型和试错。正如作者在序言中所说,本书来源于作者对海量监控平台的技术选型和对InfluxDB进行二次开发的经验总结。书中没有泛泛而谈,而是针对时序中台这一场景进行了有针对性的剖析。
——方家弘 前科恩实验室成员
我们用时序数据库来记录时序数据、追溯过去、监控现在、预测未来。InfluxDB是时序数据库中的佼佼者,有着非常优异的性能和可扩展性。韩健基于他对InfluxDB进行二次开发并处理亿级监控平台的经验,对InfluxDB 的原理进行抽茧剥丝,娓娓道来。希望本书可以帮助你打造更加高效、实时的大数据监控平台,帮助企业减少费用、提升业务。
——陈天 ArcBlock研发副总裁
InfluxDB作为时序性数据库的优秀代表,是当代互联网服务生产环境下的核心技术组件,相较于传统数据库系统,InfluxDB的性能高出几倍乃至几十倍,为超大规模业务系统(如5G驱动的IOT系统)的运转提供了关键的底层数据处理能力。当然,在将InfluxDB运用到腾讯的生产环境的过程中,作者所在团队也做出了大量的改进和优化,最终成功打造出一套能够为几十万台服务器提供秒级监控能力的监控平台。在本书中,作者将其在工作中积累的经验和盘托出,这对正在快速成长的中国IT产业具有不可估量的价值。
——严雷 蔷薇灵动创始人兼CEO
系统管理员、运维工程师、网络管理员
开发工程师
数据库技术爱好者
监控技术爱好者
开源软件爱好者
前 言
第1章 初识InfluxDB 1
1.1 什么是InfluxDB 1
1.1.1 简介 1
1.1.2 历史和发展 4
1.1.3 使用场景 5
1.1.4 社区和生态 6
1.2InfluxDB的优势 7
1.3InfluxDB的特性 9
1.3.1InfluxDB的特点 10
1.3.2 核心概念 10
1.4 本章小结 11
第2章 InfluxDB入门 12
2.1InfluxDB在各环境下的安装部署 12
2.1.1RedHat & CentOS 环境 13
2.1.2Ubuntu & Debian 环境 15
2.1.3Mac OS & OS X 环境 17
2.1.4MS Windows环境 19
2.1.5 二进制软件包安装 21
2.2InfluxDB软件包程序 22
2.2.1influx介绍 23
2.2.2influxd介绍 24
2.2.3influx_inspect介绍 26
2.2.4influx_stress介绍 27
2.2.5influx_tsm介绍 27
2.3InfluxDB 配置文件 28
2.4InfluxDB安装部署和基础操作实战 33
2.5 本章小结 37
第3章 写入和查询 38
3.1 操作模式 38
3.1.1influx命令行模式 39
3.1.2InfluxDB API模式 46
3.2 写入 48
3.2.1 行协议 48
3.2.2 写入数据 51
3.3 查询 54
3.3.1InfluxQL 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.3DevOps监控的采样实战 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.3DevOps监控的权限管理实战 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.2META节点集群配置 116
6.2.3DATA节点集群配置 120
6.3Hinted-Handoff 123
6.4Anti-Entropy 127
6.4.1Anti-Entropy原理 128
6.4.2Anti-Entropy命令 129
6.4.3Anti-Entropy API 130
6.4.4Anti-Entropy配置 132
6.4.5Anti-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.2META节点替换实战 149
7.2.3DATA节点替换实战 153
7.2.4 扩容实战 155
7.3 本章小结 162
第8章 第三方协议 163
8.1UDP协议 164
8.1.1UDP协议简介 164
8.1.2UDP协议基本用法 164
8.2 兼容CollectD 166
8.2.1CollectD简介 166
8.2.2CollectD协议的基本用法 167
8.3 兼容Graphite 170
8.3.1Graphite简介 170
8.3.2Graphite协议的基本用法 171
8.4 兼容OpenTSDB 175
8.4.1OpenTSDB简介 175
8.4.2OpenTSDB协议的基本用法 176
8.5 兼容Prometheus 178
8.5.1Prometheus简介 178
8.5.2Prometheus协议的基本用法 179
8.6 本章小结 181
第9章 基于TICK的DevOps监控实战 182
9.1TICK简介 183
9.2Telegraf 184
9.2.1Telegraf简介 184
9.2.2Telegraf安装部署 186
9.2.3Telegraf命令 189
9.3Kapacitor 191
9.3.1Kapacitor简介 191
9.3.2Kapacitor安装部署 191
9.3.3Kapacitor命令 193
9.4Chronograf 194
9.4.1Chronograf简介 194
9.4.2Chronograf安装部署 196
9.4.3Chronograf命令 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.1Prometheus 218
10.2Grafana 219
10.2.1Grafana简介 219
10.2.2Grafana安装部署 220
10.3 基于InfluxDB、Prometheus、Grafana的DevOps监控实战 225
10.4 本章小结 234
第11章 InfluxDB源码架构剖析 235
11.1 源码编译 236
11.1.1Golang语言环境配置 236
11.1.2 源码编译安装 237
11.2 启动流程源码剖析 239
11.3 配置模块源码剖析 244
11.3.1 创建示例配置 244
11.3.2 加载配置 246
11.4HTTP写入流程和查询流程源码剖析 248
11.4.1HTTP请求处理流程 248
11.4.2 写入流程 254
11.4.3 查询流程 258
11.5 本章小结 265
上下滑动查看
上新 | 从0到1构建用户画像系统技术和方法论
上新 | 智能领域系统能力培养大成之作!——《智能计算系统》重磅出版!
上新 | “Flutter中文网”社区创始人倾力撰写的网红书 《Flutter实战》正式出版
上新 | 零基础掌握Istio& Kubernetes开发与运维