监控的艺术

监控的艺术

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

直击云原生化和容器化的监控痛点,理论联系实际,从0到1构建可扩展的监控框架,让你轻松驾驭监控系统的技术工具。

内容简介

本书由前Docker员工、运维专家詹姆斯·特恩布尔执笔,系统介绍现代应用程序、架构的监控和度量。

全书共分为13章,主要内容包括监控和度量过程中涉及的一些基本概念,描述基于主机的监控。书中运用了大量的代码进行分析例证,有助于实时监控系统。

另外,作者对系统日志、应用程序以及通知等方面进行了系统介绍,并且在最后3章中,对Tornado的组成部分展开了详细介绍,力求构建可监控的系统。

本书适合软件开发工程师、系统管理员以及其他所有对系统监控和DevOps感兴趣的人阅读。

作者简介

作者詹姆斯·特恩布尔,一位技术作家,还是一名开源极客。他的大作是一本讲述流行开源日志工具的书——The LogStash Book。

章节目录

版权信息

前言

读者对象

致谢

技术审校者

编辑

作者

排版约定

代码和示例

勘误

免责声明

版本

电子书

第 1 章 引言

1.1 内容概览

1.2 监控的定义

1.2.1 业务客户

1.2.2 IT客户

1.3 监控的实际存在形式

1.3.1 手动、用户发起或无监控阶段

1.3.2 被动式监控阶段

1.3.3 主动式监控阶段

1.4 模型分布

1.5 实施主动式监控

1.6 本书内容

1.7 工具的选择

第 2 章 监控框架

2.1 黑盒与白盒

2.2 以事件、日志、指标为中心

2.2.1 更多关于指标的知识

2.2.2 指标的定义

2.2.3 指标的类型

2.2.4 指标小结

2.2.5 指标聚合

2.3 上下文和有价值的通知

2.4 可视化

2.5 传统监控有何问题

2.5.1 静态配置

2.5.2 不灵活的逻辑和阈值

2.5.3 以目标对象为中心

2.5.4 宠物和肉牛的插曲

2.5.5 新方法的不同之处

2.5.6 更智能的阈值输入

2.6 为监控框架采集数据

开销和观察者效应

2.7 小结

第 3 章 使用Riemann管理事件和指标

3.1 Riemann简介

3.1.1 Riemann的架构和实现

3.1.2 安装Riemann

3.2 配置Riemann

3.2.1 学习Clojure

3.2.2 Riemann的基础配置

3.2.3 事件、流、索引

3.2.4 配置事件、流、索引

3.2.5 向Riemann发送事件

3.2.6 创建Riemann监控检测

3.2.7 Riemann过滤的一个小插曲

3.3 连接Riemann服务器

3.3.1 配置上游Riemann服务器

3.3.2 配置下游Riemann服务器

3.3.3 向下游发送Riemann事件

3.4 在上游Riemann服务器发出告警

3.4.1 Riemann事件限流

3.4.2 汇总Riemann事件

3.4.3 电子邮件通知的替代工具

3.5 测试Riemann配置

3.6 验证Riemann配置

3.7 性能、可伸缩性、高可用性

3.8 Riemann的替代工具

3.9 小结

第 4 章 Graphite和Grafana

4.1 Graphite简介

4.1.1 Carbon

4.1.2 Whisper

4.1.3 Graphite Web、Graphite-API、Grafana

4.2 Graphite的架构

4.3 安装Graphite

4.3.1 在Ubuntu上安装Graphite

4.3.2 在Red Hat上安装Graphite

4.3.3 安装Graphite-API

4.3.4 安装Grafana

4.3.5 通过配置管理工具安装Graphite和Grafana

4.4 配置Graphite和Carbon

4.4.1 配置Carbon指标的留存模式

4.4.2 估算Graphite存储空间

4.4.3 Carbon和Graphite服务管理

4.5 配置Graphite-API

4.5.1 Graphite-API的服务管理

4.5.2 测试Graphite-API

4.6 配置Grafana

4.7 为Graphite配置Riemann

4.8 Grafana简介

4.9 Graphite和Carbon冗余

4.10 时间和时区

4.10.1 手动管理时间

4.10.2 通过配置管理工具管理时间

4.10.3 检查时间状态

4.11 Graphite和Grafana的替代工具

4.11.1 商业工具

4.11.2 开源工具

4.12 Whisper的替代工具

4.12.1 InfluxDB

4.12.2 Cyanite

4.13 小结

第 5 章 监控主机

5.1 collectd简介

5.2 应该监控哪些主机组件

5.3 安装collectd

5.3.1 在Ubuntu上安装collectd

5.3.2 在Red Hat上安装collectd

5.3.3 通过配置管理工具安装collectd

5.4 配置collectd

5.4.1 加载和配置collectd插件来进行监控

5.4.2 最后的准备

5.4.3 启用和运行collectd

5.5 collectd事件

5.6 将collectd事件发送到Graphite

5.7 重构collectd指标名称

5.8 小结

第 6 章 在Riemann中使用collectd事件

6.1 检测正在运行的进程

6.2 其他行动和改进

6.3 重复一些传统监控

6.4 通过更智能的数据进行更好的监控

6.4.1 构建基于中位数的检测

6.4.2 使用百分位数进行基于主机的检测

6.4.3 对检测进行抽象

6.4.4 对检测进行组织

6.5 使用Grafana绘制collectd指标

6.5.1 创建主机看板

6.5.2 创建第一个主机图表

6.5.3 创建内存图表

6.5.4 单个主机图表

6.5.5 其他图表

6.6 网络、设备和Microsoft Windows监控

6.7 collectd的替代工具

6.7.1 商业工具

6.7.2 开源工具

6.8 小结

第 7 章 容器——另一种类型的主机

7.1 容器监控面临的挑战

7.2 监控Docker容器

7.2.1 Docker collectd插件

7.2.2 安装Docker collectd插件

7.2.3 配置Docker collectd插件

7.3 使用Riemann处理Docker collectd的统计信息

向Docker事件添加元数据

7.4 为Docker指标指定不同的解析度

7.5 清理旧的Graphite Docker指标

7.6 使用Docker指标进行监控

7.7 其他容器监控工具

7.8 小结

第 8 章 日志

8.1 ELK技术栈入门

8.2 Logstash架构

8.3 安装Logstash

8.3.1 在Debian和Ubuntu上安装Java

8.3.2 在Red Hat上安装Java

8.3.3 测试Java是否安装成功

8.3.4 在Ubuntu和Debian上安装Logstash包

8.3.5 在Red Hat上安装Logstash包

8.3.6 通过配置管理工具安装Logstash

8.3.7 测试Logstash是否已安装成功

8.4 配置Logstash

8.5 安装Elasticsearch

8.5.1 在Debian和Ubuntu上安装Java

8.5.2 在Red Hat上安装Java

8.5.3 通过配置管理工具安装Elasticsearch

8.5.4 测试Elasticsearch是否安装成功

8.5.5 确定Elasticsearch正在运行

8.6 配置Elasticsearch集群和节点

添加集群管理插件

8.7 时间和时区

8.8 集成Logstash和Elasticsearch

8.8.1 Logstash内部会发生什么

8.8.2 Elasticsearch内部会发生什么

8.9 安装Kibana

8.10 配置Kibana

8.11 运行Kibana

使用Kibana

8.12 通过Syslog将主机连接到Logstash

8.12.1 配置Logstash

8.12.2 Syslog概览

8.12.3 配置Syslog

8.13 记录Docker日志

配置docker守护进程来记录日志

8.14 将数据从Logstash发送到Riemann

8.15 将数据从Riemann发送到Logstash

8.16 伸缩扩展Logstash和Elasticsearch

8.16.1 伸缩扩展Logstash

8.16.2 伸缩扩展Elasticsearch

8.17 监控组件

8.17.1 监控RSyslog

8.17.2 监控Logstash

8.17.3 监控Elasticsearch

8.18 Logstash的替代方案

8.18.1 Splunk

8.18.2 Heka

8.18.3 Graylog

8.18.4 mtail

8.19 小结

第 9 章 构建可监控的应用程序

9.1 应用程序监控入门

9.1.1 应该在哪里测量

9.1.2 测量模式

9.1.3 时间和观察者效应

9.2 指标

9.2.1 应用程序指标

9.2.2 业务指标

9.2.3 监控模式或放置指标的位置

9.2.4 工具模式

9.2.5 外部模式

9.2.6 在示例应用程序中构建指标

9.3 日志

9.3.1 添加自己的结构化日志条目

9.3.2 将结构化日志添加到示例应用程序

9.3.3 使用现有日志

9.4 健康检查、端点和外部监控

检测内部端点

9.5 部署

9.5.1 向示例应用程序添加部署通知

9.5.2 使用部署事件

9.6 跟踪

9.7 小结

第 10 章 通知

10.1 目前的通知

10.2 更新expired事件配置

10.3 升级电子邮件通知

10.3.1 格式化电子邮件主题

10.3.2 格式化电子邮件正文

10.4 为通知添加图表

10.4.1 定义数据源

10.4.2 定义查询参数

10.4.3 定义图表面板和行

10.4.4 绘制看板

10.4.5 将看板添加到Riemann通知中

10.4.6 一些脚本化看板示例

10.4.7 其他上下文

10.5 添加Slack作为目的地

10.6 添加PagerDuty作为目的地

10.7 维护和停机

10.8 从通知中学习

10.9 其他告警工具

10.10 小结

第 11 章 监控之巅:监控Tornado

11.1 Tornado应用程序

应用程序架构

11.2 监控策略

11.3 标记Tornado事件

11.4 监控Tornado:Web层

11.4.1 监控HAProxy

11.4.2 监控Nginx

11.4.3 解决Web层的监控问题

11.4.4 在Riemann中设置Tornado检测

11.4.5 webtier函数

11.5 向Riemann添加Tornado检测

11.6 小结

第 12 章 监控Tornado:应用程序层

12.1 监控应用程序层的JVM

为JMX配置collectd

12.2 采集应用程序层的JVM日志

12.3 监控Tornado API应用程序

12.4 解决Tornado应用程序层监控的关注点

12.5 小结

第 13 章 监控Tornado:数据层

13.1 监控数据层的MySQL服务器

13.1.1 使用MySQL数据作为指标

13.1.2 查询的执行时间

13.2 监控数据层的Redis服务器

13.3 解决Tornado数据层的监控

13.4 Tornado看板

13.5 扩展Tornado之外的监控

13.6 小结

附录 浅谈Clojure和函数式编程

Clojure

安装Leiningen

Clojure的语法和类型

Clojure函数

列表

向量

set

map

字符串

创建自定义函数

创建变量

创建命名函数

学习更多的Clojure知识

作者简介

看完了

监控的艺术是2020年由人民邮电出版社·图灵出品出版,作者[澳]詹姆斯•特恩布尔(JamesTurnbull)。

得书感谢您对《监控的艺术》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
Python计算机视觉与深度学习实战 电子书
一本书入门计算机视觉,将深度学习理论融入视觉识别案例,搭建理论与实践的桥梁。
计算机数学:算法基础线性代数与图论 电子书
计算机专业数学教材:六章涵盖核心知识,培养逻辑编程思维。
深度学习 电子书
深度学习是机器学习的一个分支,它能够使计算机通过层次概念来学习经验和理解世界。
Python基础教程(第3版) 电子书
手把手带你从零开始学习Python。
计算思维的结构 电子书
这是一本讲述计算思维的入门书,适合大学新生,以及所有希望提高问题求解、系统设计和人类行为理解能力的人阅读。本书的结构建立在计算机方法论的结构框架之上,重点放在计算机科学中的不同抽象层次的“自动有效进行”方面,着力于一般(类)问题的有效求解。这样做的好处是:一方面,从类问题求解的思维模式上帮助大学新生顺利过渡到大学学习中来;另一方面,强调计算机科学中抽象层次的概念,可以降低不同学科人们沟通的复杂程度