Prometheus监控技术与实践pdf下载

Prometheus监控技术与实践百度网盘pdf下载

作者:
简介:Prometheus监控技术与实践
出版社:机械工业出版社
出版时间:2020-03-01
pdf下载价格:9.00¥


预览


内容介绍

内容简介
  本书主要分三部分:第一部分是概述,重点阐述云计算时代监控系统的特点及其面临的挑战,Prometheus监控的基本概念、组成、部署。第二部分是Prometheus技术基础,重点介绍Prometheus生态系统涉及的Exporter、服务发现、PromQL数据查询、告警处理、Grafana可视化、Pushgateway等监控组件,详细讲解各组件的相关概念、实现原理、具体使用等。第三部分是监控综合实践,从常用的监控需求出发,讲解OpenStack云计算监控、Docker容器监控、Kubernetes监控、微服务及业务监控、日志监控的设计与实现,最后讲解Prometheus在生产环境中部署的实践。
目录
版权信息
前言
第一部分 概述
第1章 云计算时代的监控系统
1.1 云计算时代的应用系统
1.1.1 企业“IT云化”实现数字化转型
1.1.2 云计算时代的IT架构特点
1.1.3 云计算时代的IT管理变革
1.2 云计算监控的目标和挑战
1.2.1 云计算监控目标
1.2.2 云计算监控挑战
1.3 云计算监控的范围和架构
1.3.1 监控管理的范围
1.3.2 监控系统的基本架构
1.4 百花齐放的开源监控软件工具
1.4.1 监控系统成熟度
1.4.2 Zabbix
1.4.3 OpenTSDB
1.5 Prometheus监控系统
1.5.1 应运而生,茁壮成长
1.5.2 功能完善、监控所有层级指标
1.5.3 开放、高效、易用的完整解决方案
1.6 本章小结
第2章 Prometheus基本概念及部署
2.1 Prometheus架构
2.2 Prometheus快速部署
2.2.1 使用二进制文件快速部署
2.2.2 使用Docker快速安装
2.2.3 Prometheus Web UI
2.3 Prometheus相关概念
2.3.1 数据模型
2.3.2 Metric的四种类型
2.3.3 Jobs和Instances
2.4 Prometheus核心组件
2.5 本章小结
第二部分 Prometheus技术基础
第3章 Exporter
3.1 概述
3.1.1 Exporter类型
3.1.2 文本数据格式
3.1.3 获取Exporter
3.2 主机监控
3.2.1 Linux主机监控
3.2.2 Windows主机监控
3.3 数据库监控
3.3.1 MySQL Server exporter
3.3.2 Redis exporter
3.4 Nginx监控
3.5 Prometheus之黑盒监控
3.5.1 软件安装与部署
3.5.2 配置文件
3.6 本章小结
第4章 服务发现
4.1 基于文件的服务发现
4.2 基于Consul的服务发现
4.2.1 Consul体验应用信息
4.2.2 软件下载与部署
4.2.3 服务注册发现
4.2.4 与Prometheus集成
4.3 基于DNS的服务发现
4.3.1 自建DNS服务SRV记录设置
4.3.2 阿里云域名解析SRV记录设置
4.4 Relabelling
4.5 本章小结
第5章 PromQL
5.1 时序数据库
5.2 PromQL简介
5.2.1 数据模型与数据类型
5.2.2 时间序列选择器
5.3 PromQL聚合操作
5.4 PromQL运算符
5.4.1 算术运算符
5.4.2 关系运算符
5.4.3 向量匹配
5.4.4 逻辑运算符
5.4.5 运算符优先级
5.5 PromQL函数
5.5.1 数学函数
5.5.2 时间函数
5.5.3 标签操作函数
5.5.4 Counter指标增长率
5.5.5 Gauge指标趋势变化预测
5.6 PromQL查询分析
5.6.1 指标分析
5.6.2 PromQL操作分析
5.7 本章小结
第6章 告警处理
6.1 概述
6.2 Alertmanager部署
6.2.1 Alertmanager机制
6.2.2 使用二进制文件方式安装
6.2.3 使用Docker安装
6.3 Alertmanager配置
6.3.1 global
6.3.2 templates
6.3.3 route
6.3.4 receivers
6.3.5 inhibit_rules
6.4 Prometheus告警规则
6.4.1 与Alertmanager关联
6.4.2 告警规则
6.4.3 使用模板
6.5 告警接收器
6.5.1 Email接收告警
6.5.2 企业微信接收告警
6.5.3 基于Webhook的钉钉接收告警
6.5.4 告警通知模板
6.6 告警临时静默
6.7 本章小结
第7章 可视化
7.1 概述
7.2 Grafana安装
7.2.1 在CentOS上安装
7.2.2 在Windows上安装
7.2.3 使用Docker安装
7.3 Grafana基本概念
7.4 Prometheus数据源
7.4.1 数据源添加
7.4.2 页面UI说明
7.5 仪表盘导入
7.5.1 Node Exporter仪表盘
7.5.2 Windows Node仪表盘
7.5.3 MySQL仪表盘
7.5.4 Redis仪表盘
7.5.5 Nginx仪表盘
7.5.6 Blackbox Exporter仪表盘
7.6 定制监控图表
7.6.1 定制仪表盘
7.6.2 定制面板
7.7 本章小结
第8章 Pushgateway
8.1 概述
8.2 Pushgateway集成
8.2.1 软件下载与部署
8.2.2 Pushgateway UP状态
8.3 Pushgateway数据管理
8.3.1 向Pushgateway发送和查看监控指标
8.3.2 删除Pushgateway中的监控标准
8.3.3 基于推送的Prometheus监控
8.4 本章小结
第三部分 监控综合实践
第9章 OpenStack云计算监控
9.1 OpenStack监控架构
9.2 OpenStack Exporter
9.2.1 OpenStack Exporter部署
9.2.2 OpenStack监控可视化
9.3 OpenStack Helm监控
9.3.1 基于OpenStack Helm部署Prometheus
9.3.2 基于OpenStack Helm部署Grafana
9.4 本章小结
第10章 Docker容器监控
10.1 Docker容器架构与监控
10.1.1 Docker容器架构
10.1.2 Docker容器监控方式
10.1.3 cAdvisor架构及分析
10.2 部署cAdvisor容器监控
10.2.1 安装与运行cAdvisor
10.2.2 cAdvisor结果输出
10.2.3 cAdvisor常用搭配方案
10.2.4 集成Prometheus
10.2.5 集成Grafana实时显示
10.3 本章小结
第11章 Kubernetes监控
11.1 Prometheus与Kubernetes完美结合
11.2 在Kubernetes上部署Prometheus的传统方式
11.2.1 Kubernetes部署Prometheus
11.2.2 Kubernetes部署kube-state-metrics
11.2.3 Kubernetes部署node-exporter
11.2.4 Kubernetes部署Grafana
11.3 通过Operator方式部署Prometheus
11.4 服务配置
11.4.1 静态配置
11.4.2 服务发现配置
11.5 监控对象
11.5.1 容器监控
11.5.2 kube-apiserver监控
11.5.3 kube-state-metrics监控
11.5.4 主机监控
11.6 数据展现
11.6.1 在Kubernetes集群中安装Grafana
11.6.2 配置Grafana
11.6.3 集成Grafana展示数据
11.7 告警
11.7.1 安装Alertmanager
11.7.2 告警规则
11.7.3 微信告警
11.8 本章小结
第12章 微服务及业务监控
12.1 微服务监控
12.1.1 微服务架构模式
12.1.2 以服务为中心的监控
12.1.3 微服务监控的关键指标
12.2 构建Spring Boot微服务监控
12.2.1 Spring Boot监控架构
12.2.2 配置加载Actuator监控组件
12.2.3 使用io.micrometer构建监控指标
12.3 业务监控与运营指标
12.3.1 业务运营指标
12.3.2 业务量类指标
12.3.3 构建运营指标体系
12.4 在Spring Boot自定义Metrics
12.4.1 扩展Spring Boot支持监控埋点
12.4.2 自定义Metrics监控指标
12.4.3 使用Collector导出业务指标
12.5 本章小结
第13章 日志监控的设计与实现
13.1 概述
13.2 mtail日志监控
13.2.1 mtail安装与使用
13.2.2 mtail运行与输出
13.2.3 mtail与Prometheus、Grafana集成
13.2.4 处理Web服务器访问日志
13.2.5 集成mtail定制caching_exporter
13.2.6 nginx-prometheus-exporter
13.3 Fluentd日志监控
13.3.1 Fluentd系统架构
13.3.2 Fluentd的Prometheus监控插件
13.3.3 用Prometheus监控Fluentd
13.3.4 与Prometheus集成配置
13.4 grok_exporter日志监控
13.5 本章小结
第14章 Prometheus监控系统生产部署
14.1 最佳实践原则
14.2 数据存储
14.2.1 本地存储
14.2.2 远端存储
14.3 构建联邦集群系统
14.4 Thanos集群解决方案
14.4.1 Thanos集群架构
14.4.2 部署Thanos监控集群
14.4.3 Thanos远程存储
14.5 Alertmanager高可用
14.5.1 Gossip机制
14.5.2 搭建本地集群环境
14.6 Prometheus自动化部署
14.6.1 使用Ansible部署Prometheus监控系统
14.6.2 设计role组件
14.6.3 参数调整与部署
14.7 在监控中实现异常检测
14.8 本章小结
前言
  从互联网、移动计算到云计算、大数据、人工智能,十多年来,信息技术的日新月异催生了不断涌现的互联网新业态,也推动了传统行业投身于数字化转型的创新浪潮。云计算是IT信息技术发展和服务模式创新的集中体现,是信息化发展的重大变革和必然趋势。特别是在开源云计算技术蓬勃发展的过程中,Kubernetes、容器、微服务、区块链、智能运维、大数据等技术和理念的融合应用,已经成为影响云计算发展格局的关键。不少企业已经在生产环境中大规模使用容器技术支撑微服务化的应用,获得了灵活、快速、弹性、高效所带来的收益。
  云时代监控将面临四大挑战:
  ·持续变更下的监控。
  ·自下而上、自上而下以及在云环境中的监控都遇到难题。
  ·监控微服务架构。
  ·处理大容量的分布式(日志)数据。
  因此,监控系统将成为云平台的重要工具。优秀的监控系统不仅需要兼容各种设备和环境,还需要具备高性能、高可靠、易运维等特性,Prometheus正是优秀的代表。伴随着容器等相关技术的兴起,Prometheus正逐步成为容器监控的标准,对于传统应用和设备也有很好的兼容性。Prometheus由Go语言编写而成,采用Pull方式获取监控信息,并提供了多维度的数据模型和灵活的查询接口。Prometheus不仅可以通过静态文件配置监控对象,还支持自动发现机制,能够通过Kubernetes、Consul、DNS等多种方式动态获取监控对象。借助Go语言的高并发特性,单机Prometheus可以采集数百个节点的监控数据,每秒可采集数百万个指标。
  本书从运维(Ops)角度对Prometheus监控的各项功能进行详细介绍,对Prometheus的系统架构、Exporter、服务发现、PromQL数据查询、告警处理、Grafana可视化等进行了深入浅出的探讨。
  本书主要分三部分:第一部分是概述,重点阐述云计算时代监控系统的特点及其面临的挑战,Prometheus监控的基本概念、组成、部署。第二部分是Prometheus技术基础,重点介绍Prometheus生态系统涉及的Exporter、服务发现、PromQL数据查询、告警处理、Grafana可视化、Pushgateway等监控组件,详细讲解各组件的相关概念、实现原理、具体使用等。第三部分是监控综合实践,从常用的监控需求出发,讲解OpenStack云计算监控、Docker容器监控、Kubernetes监控、微服务及业务监控、日志监控的设计与实现,最后讲解Prometheus在生产环境中部署的实践。
  全书第1、9、10、12~14章由陈金窗和郑少斌编写,第2~8章由刘政委编写,第11章由张其栋编写,最后由陈金窗、刘政委共同进行修订。
  下面介绍各章的主要内容。
  第一部分包括第1~2章。
  第1章从云计算时代的应用特点入手,分析云计算环境下监控面临的挑战,提出需要怎样的监控。接着简要介绍监控系统的基本架构及工具,最后重点介绍Prometheus的诞生及其解决方案的特点。
  第2章讲解Prometheus的基本概念及部署,包括Prometheus技术架构、部署方式,最后介绍相关的基本概念。
  第二部分包括第3~8章。
  第3章对Exporter的类型、文本数据格式进行说明,讨论如何从官方的Exporter列表获取常用的Exporter,比如用于监控基础设施中服务器性能的node_exporter、wmi_exporter,用于监控数据库的mysqld_exporter和redis_exporter等。
  第4章讲解如何使用服务发现来发现主机和服务,并将它们暴露给Prometheus。介绍Prometheus发现机制中基于文件、基于Consul和基于DNS的服务发现,使其能完美地解决当下云原生态场景下的各类服务监控项目。
  第5章首先对时序数据库进行介绍,然后对PromQL进行详细说明,包括PromQL数据类型、时序选择器、聚合操作、各类运算符和函数。最后通过简单的示例对PromQL查询操作进行汇总分析。
  第6章对Alertmanager组件的安装、配置进行详细说明,再介绍Prometheus告警规则的定义,最后使用Email、企业微信和基于Webhook的钉钉实现告警通知的接收。
  第7章介绍Grafana可视化展示,阐述其中的基本概念,结合读者自己的应用环境生成理想的漂亮图表,最终完全熟练掌握它的各个管理组件。
  第8章介绍Prometheus的核心组件Pushgateway,重点介绍Pushgateway实例部署以及场景应用。
  第三部分包括第9~14章。
  第9章首先介绍OpenStack云管平台及其监控架构,然后介绍两种Prometheus与OpenStack整合的监控解决方案——OpenStack Exporter和OpenStack Helm监控方式。
  第10章介绍Docker相关的监控方法,特别讲解了Google开源的容器度量收集工具cAdvisor的部署、使用、集成方案。最后对Docker容器的监控指标、cAdvisor架构进行深入的分析。
  第11章介绍Prometheus如何监控Kubernetes,详细介绍Kubernetes部署Prometheus的两种方式,最后介绍服务配置、监控对象以及数据展现和告警。
  第12章介绍Prometheus如何对微服务运行状态进行监控,重点讲解基于Spring Cloud构建微服务的技术体系,之后讲解业务运营指标以及如何构建运营指标体系,并结合Spring Boot介绍监控埋点、自定义监控指标以及具体应用。
  第13章介绍如何使用日志条目来创建度量指标,然后由Prometheus来抓取数据并在Grafana中展示。
  第14章介绍在生产环境中应用Prometheus应该考虑的问题以及解决的方法,包括支持高可用规模部署和自动化部署的方案。
  本书主要读者对象包括:
  ·Linux系统管理员。
  ·系统运维工程师、运维开发工程师、运维架构师。
  ·运维监控系统工程师、监控系统软件开发(设计)人员。
  勘误和支持
  因作者的水平有限,编写时间仓促,且技术的发展非常迅速,在创作过程中参考了大量的国内外技术,并结合实践经验进行了系统性梳理、总结,书中难免会出现一些错误,恳请读者批评指正。
  本书采用的Prometheus版本为当前最新的2.4.0,采用的操作系统以RHEL(CentOS)、Windows为主,对于其他系统,其配置方法类似,请读者举一反三。本书对部分不重要的内容只作简略介绍,希望能起到抛砖引玉的作用。
  本书所有的代码和安装软件将放在GitHub中托管,地址为https://github.com/aiopstack/prometheus-book/,读者可以自行下载并使用。另外,本书的勘误也会在该链接中发布。同时欢迎加入QQ群(838152818,Prometheus监控中国用户组)进行交流。
  致谢
  首先感谢Google创造性地开发了BorgMon监控系统,之后Matt T.Proud(前Google员工)、Proud、Julius Volz合作,于2015年1月发布了第一个Prometheus开源版本。是他们辛勤的劳动和分享,才使得Prometheus产生巨大的威力,在他们身上闪烁着开源精神的绚丽光芒。
  感谢机械工业出版社的编辑们一年来给予我们始终如一的支持、积极的鼓励、耐心的帮助,并逐字审阅、校正,引导我们克服诸多困难完成全部书稿。
  在写作本书的过程中,我们参考了众多有关Prometheus的网络论坛、博客文章,在相关章节的最后我们列出了主要的参考资料,可供读者进一步学习。但由于参考资料众多,有的时间久远无法了解确切出处,在此对无私分享知识的网友们表示深深的谢意。
  最后,感谢家人的支持和鼓励,让我们时刻拥有信心与力量!
  谨以此书献给我们最亲爱的家人,以及众多热爱开源技术的朋友们!
  本书作者
  2019年7月
精彩书摘
  过去的十年里,我国云计算、大数据、人工智能等IT技术迅速发展,数字技术呈指数级增长,技术创新和商业创新呈现大爆炸的形态。容器、微服务、DevOps等技术不断推动着云计算的变革。云计算的应用已经深入到政府、金融、工业、交通、物流、医疗健康等传统行业。随之而来的挑战是如何管理好这些新型的IT基础环境,特别是如何实时掌握云环境下业务的运行状态及达到服务保障等级。企业需要考虑:
  ·建立一个敏捷的IT架构,以满足多变的业务需求。
  ·提供充分的扩展性和灵活性,应对业务的快速创新。
  ·优化成本、资源,提高业务运营效率。
  ·技术和业务的无缝融合,通过容器化、微服务、DevOps等先进工具、技术,缩短技术迭代周期,降低业务试错成本,用技术拓展商业边界。
  本章将从云计算时代的应用特点入手,分析云计算环境下监控面临的挑战,提出需要什么样的监控。接着简要介绍监控的成熟度,并回顾开源监控软件的演进历史。最后重点介绍顺应云时代的云原生监控系统——Prometheus诞生及其解决方案的特点。