猜你喜欢
Prometheus监控实战

Prometheus监控实战

书籍作者:詹姆斯·特恩布尔 ISBN:9787111633112
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:3894
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介
本书由浅入深地对Prometheus进行了全方位的介绍,内容通俗易懂,理论与实践相结合。首先从监控体系讲起,介绍了关于监控的各种经典理论和方法。然后循序渐进地介绍了Prometheus的各个功能组件和配置方法,包括监控主机和容器、服务发现、警报管理,以及Kubernetes和运行其上的应用程序的监控。本书覆盖了目前的一些主流云技术(比如AWS),但同样适用于各种其他环境和技术栈。读过本书后,相信你可以设计并构建出一个优秀的监控系统。


作者简介

  

詹姆斯·特恩布尔(James Turnbull)是一位作家和工程师。他最近出版的书包括《The Packer Book》《The Terraform Book》和《The Art of Monitoring》,以及关于开源容器虚拟化技术的《The Docker Book》等。他目前是Empatico公司的首席技术官,并且曾担任过Kickstarter的首席技术官、Docker公司服务和支持副总裁、Venmo公司工程副总裁以及Puppet公司技术运营副总裁。




译者简介


史天,AWS解决方案架构师。曾在世纪互联、惠普等公司任职,拥有丰富的云计算、大数据和机器学习经验,目前致力于数据科学、机器学习、无服务器等领域的研究和实践。译有《机器学习即服务:将Python机器学习创意快速转变为云端Web应用程序》。
  
  张媛,解决方案交付工程师,翻译爱好者。在云计算领域有着丰富的实践经验,目前专注于云计算的架构设计和实现,希望在企业的数字化转型方面有进一步的探索。
  
  肖力,新钛云服技术副总裁,云技术社区创始人,《深度实践KVM》作者,《运维前线》系列图书策划人。曾就职于盛大、金山,有19年运维经验。维护有订阅号“云技术”。个人微信号xiaolikvm。

编辑推荐
适读人群 :云计算工程师、云运维工程师、架构师、其他对云计算和监控感兴趣的人员

通过阅读本书,你将学到以下内容:

1)·Prometheus监控:使用Prometheus来监控主机、应用程序和服务,内容涉及安装、基本监视、服务发现、警报、日志监控、伸缩和可视化。

2) ·监控与度量:监控基础、方法和途径,介绍如何在以度量为中心的环境中进行监控,包括构建动态阈值、基本异常检测以及监控聚合与联合,研究如何应用现代模式,如谷歌的四个黄金指标、USE方法和RED方法。

3) ·Kubernetes与容器:对Kubernetes、Docker和容器进行监控,专注于监控高度动态、瞬息万变的环境和新架构(如微服务)的特殊挑战。

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。

勘误

请发送电子邮件至[email protected]

声明

本书仅供学习使用。作者未将其作为法律、会计或其他专业服务建议提供。尽管在编写本书时已尽最大努力,但作者不做任何形式的陈述或保证,并且不对内容的准确性或完整性承担任何责任,并特别声明对用于特定目的的适销性或适用性不做任何默认保证。对于因本书所含信息或程序直接或间接造成(或声称是由此造成)的任何损失,或偶然或间接损失,作者不对任何个人或实体承担任何责任或义务。每家公司情况都不同,此处包含的建议和策略可能不适合你的情况。在开始任何基础设施项目之前,你应该寻求专业人士的服务。


推荐序

监控无处不在。

任何服务都离不开监控系统,对于管理维护服务的组织来说,监控是必备技能之一。近几年来,容器化、微服务、云原生等方式成为流行的现代架构思想,这给监控系统带来了不小的挑战。具体来说,监控系统需要在动态的云环境或者基于容器的微服务中快速、自动地识别对象的生命周期,并持续地提供近实时的监控检测。

Prometheus可以帮助你应对这些挑战。Prometheus开源项目孵化于云原生计算基金会(Cloud Native Computing Foundation,CNCF),并在2018年的PromCon会议上宣布正式从CNCF毕业,这是继Kubernetes之后的第二个CNCF毕业项目。如今,Prometheus已被全球众多企业广泛使用,以满足上面提到的复杂的监控需求,同时它也可以用来监控属于传统架构的资源。目前,Prometheus已成为构建现代云原生架构的企业的首选开源监控工具。

本书由浅入深地对Prometheus进行了全方位的介绍,内容通俗易懂,理论与实践相结合。首先从监控体系讲起,介绍了关于监控的各种经典理论和方法。然后循序渐进地介绍了Prometheus的各个功能组件和配置方法,包括监控主机和容器、服务发现、警报管理,以及Kubernetes和运行其上的应用程序的监控。本书覆盖了目前的一些主流云技术(比如AWS),但同样适用于各种其他环境和技术栈。读过本书后,相信你可以设计并构建出一个优秀的监控系统。

这里要感谢肖总,无论是曾经共事的阶段还是在工作之外他都给了我很多的鼓励与支持,很开心也很幸运可以再一次共同完成翻译工作。另外,感谢各位编辑的悉心指导,他们不辞辛苦地对本书进行了大量的校对和编辑工作,最终确保了本书的顺利出版。

最后,感谢爱人和我一起牺牲掉很多休息时间,共同投入到本书的翻译工作中,同时这也是人生一次难得的体验。

由于本人水平有限,书中难免会出现错误或者不妥之处,欢迎批评指正。

史天

2019年5月


目录

译者序
前言
第1章 监控简介
1.1 什么是监控
1.1.1 技术作为客户
1.1.2 业务作为客户
1.2 监控基础知识
1.2.1 事后监控
1.2.2 机械式监控
1.2.3 不够准确的监控
1.2.4 静态监控
1.2.5 不频繁的监控
1.2.6 缺少自动化或自服务
1.2.7 监控模式总结
1.3 监控机制
1.3.1 探针和内省
1.3.2 拉取和推送
1.3.3 监控数据的类型
1.4 指标
1.4.1 什么是指标
1.4.2 指标类型
1.4.3 指标摘要
1.4.4 指标聚合
1.5 监控方法论
1.5.1 USE方法
1.5.2 Google的四个黄金指标
1.6 警报和通知
1.7 可视化
1.8 另一本关于监控的书
1.9 本书内容
1.1 0小结

第2章 Prometheus简介
2.1 Prometheus起源
2.2 Prometheus架构
2.2.1 指标收集
2.2.2 服务发现
2.2.3 聚合和警报
2.2.4 查询数据
2.2.5 自治
2.2.6 冗余和高可用性
2.2.7 可视化
2.3 Prometheus数据模型
2.3.1 指标名称
2.3.2 标签
2.3.3 采样数据
2.3.4 符号表示
2.3.5 保留时间
2.4 安全模型
2.5 Prometheus生态系统
2.6 参考链接
2.7 小结

第3章 安装和启动Prometheus
3.1 安装Prometheus
3.1.1 在Linux上安装Prometheus
3.1.2 在Windows上安装Prometheus
3.1.3 在Windows上安装Prometheus的其他方式
3.1.4 在Mac OS X上安装Prometheus
3.1.5 通过监控套件安装Prometheus
3.1.6 通过配置管理工具安装Prometheus
3.1.7 通过Kubernetes安装Prometheus
3.2 配置Prometheus
3.2.1 global
3.2.2 alerting
3.2.3 rule_files
3.2.4 scrape_configs
3.3 启动Prometheus
3.4 第一个指标
3.5 表达式浏览器
3.6 聚合时间序列
3.7 容量规划
3.7.1 内存
3.7.2 磁盘
3.8 小结

第4章 监控主机和容器
4.1 监控节点
4.1.1 安装Node Exporter
4.1.2 配置Node Exporter
4.1.3 配置textfile收集器
4.1.4 启用systemd收集器
4.1.5 运行Node Exporter
4.1.6 抓取Node Exporter
4.1.7 过滤收集器
4.2 监控Docker容器
4.2.1 运行cAdvisor
4.2.2 抓取cAdvisor
4.3 抓取的生命周期
4.4 标签
4.4.1 标签分类
4.4.2 重新标记
4.5 Node Exporter和cAdvisor指标
4.5.1 USE方法
4.5.2 服务状态
4.5.3 可用性和up指标
4.5.4 metadata指标
4.6 查询持久性
4.6.1 记录规则
4.6.2 配置记录规则
4.6.3 添加记录规则
4.7 可视化
4.7.1 安装Grafana
4.7.2 启动和配置Grafana
4.7.3 配置Grafana Web界面
4.7.4 第一个仪表板
4.8 小结

第5章 服务发现
5.1 静态配置的局限性
5.2 基于文件的服务发现
5.3 基于API的服务发现
5.4 基于DNS的服务发现
5.5 小结

第6章 警报管理
6.1 警报
6.2 Alertmanager如何工作
6.3 安装Alertmanager
6.3.1 在Linux上安装Alertmanager
6.3.2 在Windows上安装Alertmanager
6.3.3 通过监控套件安装Alertmanager
6.3.4 通过配置管理工具安装Alertmanager
6.4 配置Alertmanager
6.5 运行Alertmanager
6.6 为Prometheus配置Alertmanager
6.6.1 Alertmanager服务发现
6.6.2 监控Alertmanager
6.7 添加警报规则
6.7.1 添加第一条警报规则
6.7.2 警报触发
6.7.3 Alertmanager的警报
6.7.4 添加新警报和模板
6.8 路由
6.9 接收器和通知模板
6.1 0silence和维护
6.1 0.1 通过Alertmanager控制silence
6.1 0.2 通过amtool控制silence
6.1 1小结

第7章 可靠性和可扩展性
7.1 可靠性和容错性
7.1.1 重复的Prometheus服务器
7.1.2 设置Alertmanager集群
7.1.3 为Prometheus配置Alertmanager集群
7.2 可扩展性
7.2.1 功能扩展
7.2.2 水平分片
7.3 远程存储
7.4 第三方工具
7.5 小结

第8章 监控应用程序
8.1 应用程序监控入门
8.1.1 从哪里开始
8.1.2 监控分类
8.2 指标
8.2.1 应用程序指标
8.2.2 业务指标
8.2.3 放置指标
8.2.4 实用程序模式
8.2.5 外部模式
8.2.6 监控应用程序示例
8.3 小结

第9章 日志监控
9.1 日志处理
9.2 mtail简介
9.2.1 安装mtail
9.2.2 使用mtail
9.2.3 运行mtail
9.3 处理Web服务器访问日志
9.4 解析Rails日志到直方图
9.5 部署mtail
9.6 抓取mtail端点
9.7 小结

第10章 探针监控
10.1 探针架构
10.2 Blackbox exporter
10.3 安装exporter
10.3.1 在Linux上安装exporter
10.3.2 在Windows上安装exporter
10.3.3 通过配置管理工具安装exporter
10.4 配置exporter
10.4.1 HTTP检查
10.4.2 ICMP检查
10.4.3 DNS检查
10.5 启动exporter
10.6 创建Prometheus作业
10.7 小结

第11章 推送指标和Pushgateway
11.1 Pushgateway
11.1.1 Pushgateway使用场景
11.1.2 安装Pushgateway
11.1.3 在Linux上安装Pushgateway
11.1.4 在Windows上安装Pushgateway
11.1.5 通过配置管理工具安装Pushgateway
11.1.6 配置和运行Pushgateway
11.1.7 向Pushgateway发送指标
11.1.8 在Pushgateway上查看指标
11.1.9 删除Pushgateway中的指标
11.1.1 0从客户端发送指标
11.2 抓取Pushgateway
11.3 小结

第12章 监控Kubernetes
12.1 Kubernetes集群
12.2 在Kubernetes上运行Prometheus
12.3 监控Kubernetes
12.4 监控Kubernetes节点
12.4.1 Node Exporter DaemonSet
12.4.2 Node Exporter服务
12.4.3 部署Node Exporter
12.4.4 Node Exporter作业
12.4.5 Node Exporter规则
12.5 Kubernetes
12.5.1 Kube-state-metrics
12.5.2 Kube API
12.5.3 cAdvisor和节点
12.6 小结

第13章 监控Tornado
13.1 边车模式
13.2 MySQL
13.3 Redis
13.4 Tornado
13.4.1 添加Clojure包装器
13.4.2 添加注册表
13.4.3 添加指标
13.4.4 导出指标
13.4.5 Tornado监控配置
13.5 小结

产品特色