Graphite监控
  • 推荐0
  • 收藏0
  • 浏览76

Graphite监控

Jason Dixon (作者)  韩曦 (译者)

  • 书  号:978-7-121-39515-4
  • 出版日期:2020-10-01
  • 页  数:
  • 开  本:
  • 出版状态:上市销售
  • 原书名: Monitoring with Graphite
  • 原书号:9781491916438
  • 维护人:孙奇俏
本书全方位、系统性地介绍了Graphite的起源、发展及其核心组件的应用,并深入浅出地介绍了监控领域的相关知识。
本书第1章至第4章主要介绍监控的基本概念,以及Graphite核心组件的特性。第5章至第7章主要介绍创建基本折线图的流程,使用链式函数和多坐标轴构建复杂图表的方法,以及使用Graphite原生仪表盘及其他第三方仪表盘的方法。第8章和第9章主要面向系统管理人员介绍如何在生产环境中对Graphite进行扩展及故障排除。
本书适合系统监控领域、AIOps相关领域的读者阅读,对于想要了解更多系统监控领域相关知识的技术人员、应用工程研发人员亦有一定的参考价值。
Graphite监控图书终于问世:配置简单、渲染API友好、支持图表原型开发,可大规模监控动态主机和应用指标。
韩曦,自2008年研究生毕业起,开始从事软件研发和技术管理工作,至今已有10余年相关经验。曾担任曙光信息高级研发工程师,火币资深研发工程师,融数数据架构师,目前担任多来点信息技术有限公司架构师。主导研发了日志平台、APM系统及CDP平台等大中型软件。此外对Kafka、ELK和FLINK等大数据技术框架有深入理解。对基于AIOps理论的监控系统构建有较深入的研究。
前言
20年前,使用SNMP和Perl脚本监控互联网路由器被认为是最前沿的技术。这些工具为网络管理员提供了对其个人操作和用户活动进行监控的全新方案。随着互联网的普及,成功的在线业务和服务的数量不断增加,这预示着需要更好的监控和趋势预测软件。一方面,企业必须进行防御性投资以免服务和网络中断; 另一方面,随着企业系统不断扩展以满足用户需求,它们需要改进容量规划方法。
Graphite是当今最强大的监控工具之一。它的受欢迎程度不仅取决于其开源性,还取决于其易用性、图表原型快速开发功能,以及友好的渲染API,渲染API允许任何人在其应用程序和网站中嵌入Graphite图表。Graphite用户社区非常庞大并会定期将增强功能反馈到核心项目中,例如,新的统计和转换函数,用于呈现客户端图表的JSON输出格式,甚至是可替换的存储后端,这样,开发人员就可以利用不断发展的分布式数据库系统生态带来的各种优势。
目标读者
本书适合想要了解更多有关监控系统、服务或应用程序方面内容的读者。除假设读者可以访问计算机进行相关配置并操作Graphite实例外,本书还对读者的背景或工作经历做了一些假设。
系统管理员和希望获得扩展Graphite相关高级技能的用户应该会喜欢使用 Linux或类UNIX风格的命令行环境。如果你已经知道如何浏览UNIX文件系统、如何使用软件包管理器,并且当Whisper文件过多而导致磁盘快满时,你知道该怎么做,那么你将从本书中获得更多的知识。
每个人都应该为准备好学习监控最佳实践而高兴,这包括时间序列数据(常简称为时序数据)的存储和检索,以及使用充满渲染函数和统计原语的工具包构建图表。我保证,你从本书中学习到的技巧将会让你的朋友和家人感到惊讶。
最后,且同样重要的是,了解如何使用和管理Graphite是一项宝贵的技能。试着搜索一下招聘信息吧,你会发现,有很多企业会为那些知道如何高效使用Graphite或者更好地安装和管理Graphite的人提供工作机会。
为什么要写此书
尽管Graphite很受欢迎,但有关维护和扩展其软件组件的高级知识往往集中在少数有经验的用户和开发人员手中。作为Graphite项目的核心开发者和维护者,当企业和个人经常来找我咨询扩展系统的建议和示范时,我深切感受到人们因未掌握这些知识而带来的影响。遗憾的是,我水平扩展系统的经验远不及我对这个项目的熟悉程度。因此,对我来说,只能在本书中交流我的经验。
我的一些朋友称我为“Graphite传播者”,这听起来可能很荒谬,但我承认当将精细的统计函数序列表示成一个能准确表示源数据的图形时,我有一种自豪感。我希望我能够让读者掌握尽可能多的有关Graphite的知识。
可以理解的是,并非所有人都能像我一样兴奋地谈论时序折线图。我将尽最大的努力让即将讲述的内容始终具有指导性且不失娱乐性,同时,与最常见的用例保持相关性和适用性。
当今监控情况简介
三年前,我写了有关“#监控糟透了”方面的内容,今天我们需要重新审视监控架构的方法。传统的监控系统是单一的、笨重的。Nagios已经暴露出很多不足,而且几乎没有其他替代品。
无论是运气还是本能,我都正确地预测了监控生态系统将朝着明确定义的服务与兼容的接口这种组合模型的方向发展。
特别是,NoSQL数据库的出现导致了各种时序数据库之间的巨大动荡和竞争。用户和企业已经接受了Etsy“衡量一切,衡量一切”的口号,这推动了对更大、更快的数据存储的需求。一个非常成功的系列会议围绕对监控工具链进行更多协作和讨论的愿望展开。人们对自己的流程和工具持有更加开放和透明的态度,这些共享经验使每个人受益。
换句话说,软件的发展速度很快,Graphite也不例外。幸运的是,Graphite在用户和企业中已经达到了很高的应用水平,以至于很难找到不通过其强大的API或任何数量的第三方桥接程序直接与其集成的工具和服务。在许多方面,Graphite已成为其他软件项目的时序规范。
本书内容
本书包括以下内容:
第1章和第2章介绍了监控和趋势方面的概念和名词。在Graphite用户群中有大量专业术语,通过这些专业术语,用户可以使用大家都能理解的语言进行沟通。
第3章和第4章介绍了Graphite的一些组件及各自的特性和功能。你会学到如何安装及配置Graphite。
第5章和第6章介绍了创建第一个线型图表的典型流程。通过这两章的学习,你会了解到使用链式函数和多坐标轴构建复杂图表的方法,并且可以直接使用渲染API进行操作。
第7章介绍了原生的Graphite仪表盘和部分流行的第三方仪表盘。你还会了解到渲染API及如何基于渲染API使用JavaScript进行客户端渲染,就像使用D3.js库一样。
第8章和第9章主要面向系统管理人员,使他们能掌握系统扩展及故障排除的技术,从而提供高性能或高可用的Graphite集群。
附录A 详细说明了由Carbon及Graphite Web提供的内部统计指标。这些指标对于了解 Graphite集群的健康状态是非常重要的。
如果你像我一样,不喜欢按页码顺序读书,那么你可能根本不会阅读前言。但是,如果你有机会看到本书的前言,你会发现这里提供了一些建议阅读的在线资源,参见链接1中提供的网址。

目录

第1章 什么是Graphite
什么是时序数据
时序数据库
存储注意事项
优先操作
Graphite的发展历程
是什么让Graphite与众不同
简单的指标格式
绘图API
快速原型制作
丰富的统计函数库
链式函数
案例研究:谁在生产环境中使用Graphite
Booking.com
GitHub
Etsy
Electronic Arts
我为什么会选择Graphite
第2章 监控惯例
监控三要素
故障检测
告警
容量规划
重新审视轮询/拉取模型
拉取模型
推模型
Graphite适合监控领域吗
可组合的监控系统
遥测技术
指标路由
聚合
状态引擎
通知路由
存储引擎
可视化
总结
第3章 Graphite组件
Carbon
carbon-cache
carbon-relay
carbon-aggregator
过滤指标
内部统计数据
网络安全注意事项
Whisper
如何创建Whisper文件
保留策略和存档
Whisper归档规则
计算Whisper文件的大小
解析Whisper文件
哪个归档处理我的查询
聚合方法
xFilesFactor
规划命名空间
性能考量
Graphite Web
Django框架
Web服务器
数据库
Memcached
事件
后端存储
总结
基本安装
垂直扩展
水平扩展
多站点复制
最后一点想法
第4章 构建你的第一个Graphite服务器
Synthesize快速入门
Graphite安装在哪里
安装包是否适用于我的操作系统发行版
有哪些安装方法
我应该使用virtualenv吗
有效使用sudo
依赖项
从源码安装
准备你的Web数据库
配置Carbon
carbon.conf
storage-schemas.conf
storage-aggregation.conf
最后一些准备工作
启动你的Carbon守护进程
配置Graphite Web
local_settings.py
配置Apache
验证你的Graphite安装
Carbon统计
向Carbon提供新数据
构建你的第一张图表
第5章 Graphite用户界面
查找指标
浏览导航树
使用搜索功能
使用自动补全功能更智能地工作
通配符
Graphite Composer窗口
嵌入式图表
工具栏
选择最近的数据
刷新图表
选择时间范围
导出短链接
从URL加载图表
保存我的图表
从我的图表中删除图表
“图表选项”菜单
添加图表标题
隐藏图例
隐藏坐标轴和网格
使用图表模板
线型图模式
面积图和堆叠图
调整Y轴
“图表数据”对话框
到底什么是目标
构建Carbon性能图表
分享你的工作
第6章 渲染API
使用函数
从基础函数开始
数学与统计转换
过滤和排序
基于通配符分组
数据平滑和预测
调整指标标签
备用的输出格式
第7章 仪表盘
为什么需要仪表盘
Graphite 仪表盘
第三方仪表盘
Grafana
Tasseo
Dusk
自定义开发
Dashing
Rickshaw和D3.js
总结
第8章 定位Graphite性能问题
首要的,也是最基本的
故障诊断工具箱
生成指标和基准测试
CPU利用率
磁盘性能
网络
检查指标
配置设置
Carbon
Graphite Web
日志
Carbon
Graphite Web
内核消息
失败场景
磁盘已满
CPU饱和度
渲染问题
更上一层楼
第9章 扩展Graphite
是什么让扩展Graphite变得“困难”
Peter的Graphite故事
开端
受欢迎的痛苦
扫清下一个障碍
试试,再试试
资源最大化
避免停机
共享Web数据库
双向扩展
最后的一些想法
总结
附录A Carbon和Graphite Web的内部统计

读者评论

相关图书

基于Kotlin的Spring Boot微服务实战

袁康 (作者)

本书介绍了Kotlin在Spring Boot微服务开发中的实践,并使用Kotlin作为开发语言,介绍了函数式编程思想、Kotlin的语法、Kotlin在常用中...

 

人人都是产品经理(创新版):低成本的产品创新方法

陶英琪 (作者)

《人人都是产品经理2.0——写给泛产品经理》继续定位在5-10岁的产品经理,比如自认为是产品职场老人,要过渡到自己独立做产品的高级产品经理及早期创业者,《人人都...

¥79.00

ASP.NET Core项目开发实战入门

张剑桥 (作者)

本书共14章,深入浅出地介绍了ASP.NET Core基础及项目开发方面的知识。主要内容有.NET Core基础知识、ASP.NET Core开发工具的使用、A...

¥74.20

Java编程方法论:响应式Spring Reactor 3设计与实现

李飞 (作者)

《Java编程方法论:响应式Spring Reactor 3设计与实现》主要专注于解读Spring Reactor 3的代码设计与实现。全书共10章,其中第1、...

 

编程的逻辑:如何用面向对象方法实现复杂业务需求

李运华 (作者)

本书系统地讲述了面向对象技术相关的内容,包括面向对象的基本概念、面向对象开发方法、面向对象的各种技巧,以及如何在实际开发项目中应用面向对象的方法和技术。在讲述相...

¥99.00

RocketMQ分布式消息中间件:核心原理与最佳实践

李伟 (作者)

本书源码以RocketMQ 4.2.0和RocketMQ 4.3.0为基础,从RocketMQ的实际使用到RocketMQ的源码分析,再到RocketMQ企业落...

¥55.30