描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111633112
通过阅读本书,你将学到以下内容:
1)·Prometheus监控:使用Prometheus来监控主机、应用程序和服务,内容涉及安装、基本监视、服务发现、警报、日志监控、伸缩和可视化。
2) ·监控与度量:监控基础、方法和途径,介绍如何在以度量为中心的环境中进行监控,包括构建动态阈值、基本异常检测以及监控聚合与联合,研究如何应用现代模式,如谷歌的四个黄金指标、USE方法和RED方法。
3) ·Kubernetes与容器:对Kubernetes、Docker和容器进行监控,专注于监控高度动态、瞬息万变的环境和新架构(如微服务)的特殊挑战。
4) ·云:在云中进行监控,包括服务发现和云平台的监控。
本书讨论如何用Prometheus实现以度量为中心的监控。教你如何使用Prometheus来监控主机、应用程序和服务。我们将介绍安装、基本监控、服务发现、警报、日志监控、扩展和可视化。了解如何在以度量为中心的世界中进行监控,包括构建动态阈值、基本异常检测和监控聚合和联合。将了解如何应用现代模式,如谷歌的四个黄金信号、使用方法和红色方法。我们讨论了对Kubernetes、Docker容器、数据库的监控,并研究了插装应用程序和集成日志记录。关注于监控高度动态、短暂的环境和微服务等新体系结构的特殊挑战。关注云中的监控,包括服务发现和云平台的监控。
译者序
前 言
第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
本书面向的读者
本书是一本基于Prometheus的监控指南。
大多数示例都基于Ubuntu Linux,所以读者最好具备基本的UNIX/Linux技能,并熟悉命令行、文件编辑、软件安装、服务管理和基础网络知识。
Prometheus正在迅速发展,这意味着你需要注意本书中提及和使用的工具版本。
本书旨在支持Prometheus 2.3.2或更高版本,内容可能不适用于早期版本。
致谢
感谢露丝·布朗(Ruth Brown)帮助本书变得有趣,让我可以坚持写到深夜。
感谢西德·奥兰多(Sid Orlando)让本书的措辞变得更加得体。
感谢布莱恩·布雷泽(Bryan Brazil)出色的Prometheus博客,他同时也在做Prometheus的相关培训。
感谢戴维·卡尔森(David Karlsen)的技术评审工作。
技术评审人员
感谢那些帮助本书变得更加准确和有价值的技术评审!
杰米·威尔金森(Jamie Wilkinson)是Google存储基础设施团队的SRE(网站可靠性工程师)。他拥有计算机科学学士学位,有充足的计算理论知识,于1999年开始从事Linux系统管理工作。他为Google SRE手册贡献了关于监控的章节。杰米与他的家人住在澳大利亚的悉尼。
保罗·吉尔(Paul Gier)作为一个在专有软件流行时期成长的“好奇宝宝”,对缺乏资金和许可证感到沮丧。在了解了一个名为Linux的新操作系统后,保罗开始沉迷于提供自由软件的想法—这一想法最终使他成了Red Hat的首席软件工程师,在那里他做了10多年自由软件的开发工作。保罗对基于容器的新基础设施及其带来的所有解决方案和问题非常着迷。他和他的妻子、三个孩子,以及两只狗和一只淘气的猫住在得克萨斯州的奥斯汀。
编辑
希德·奥兰多(Sid Orlando)是一位编辑和作家,还做着其他一些有趣的事情。她目前正在制作Stripe的软件工程技术杂志《Increment》,吸引了一大批粉丝,并且她在自己纽约的公寓里养了大量的植物。
作者
詹姆斯·特恩布尔(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 示例代码
较长的代码会被换行。如果你在代码块中看到…,则表示为简洁起见,输出被缩减了。
代码和示例
本书中包含的代码和示例可从GitHub上获得:https://github.com/turnbullpress/prometheusbook-code。
勘误
请发送电子邮件至james [email protected]。
声明
本书仅供学习使用。作者未将其作为法律、会计或其他专业服务建议提供。尽管在编写本书时已尽最大努力,但作者不做任何形式的陈述或保证,并且不对内容的准确性或完整性承担任何责任,并特别声明对用于特定目的的适销性或适用性不做任何默认保证。对于因本书所含信息或程序直接或间接造成(或声称是由此造成)的任何损失,或偶然或间接损失,作者不对任何个人或实体承担任何责任或义务。每家公司情况都不同,此处包含的建议和策略可能不适合你的情况。在开始任何基础设施项目之前,你应该寻求专业人士的服务。
评论
还没有评论。