监控的艺术:云原生时代的监控框架

本书特色

[

本书由前Docker员工、运维专家詹姆斯·特恩布尔执笔,系统介绍现代应用程序、架构的监控和度量。全书共分为13章,主要内容包括监控和度量过程中涉及的一些基本概念,描述基于主机的监控。书中运用了大量的代码进行分析例证,有助于实时监控系统。另外,作者对系统日志、应用程序以及通知等方面进行了系统介绍,并且在*后3章中,对Tornado的组成部分展开了详细介绍,力求构建可监控的系统。本书适合软件开发工程师、系统管理员以及其他所有对系统监控和DevOps感兴趣的人阅读。

]

内容简介

[

本书由前Docker员工、运维专家詹姆斯·特恩布尔执笔,系统介绍现代应用程序、架构的监控和度量。全书共分为13章,主要内容包括监控和度量过程中涉及的一些基本概念,描述基于主机的监控。书中运用了大量的代码进行分析例证,有助于实时监控系统。另外,作者对系统日志、应用程序以及通知等方面进行了系统介绍,并且在很后3章中,对Tornado的组成部分展开了详细介绍,力求构建可监控的系统。本书适合软件开发工程师、系统管理员以及其他所有对系统监控和DevOps感兴趣的人阅读。

]

作者简介

[

作者介绍 詹姆斯·特恩布尔(James Turnbull),曾任Kickstarter CTO、Docker公司服务和支持副总裁、Venmo公司工程副总裁、Puppet Labs技术运维副总裁。热衷于开源领域,著有近10本技术书,包括《Linux系统管理大全》《精通Puppet配置管理工具》。 译者介绍 浙江中金黄金集团CTO,曾就职于美国道富银行,历任全栈工程师、架构师、技术经理。技术涉猎广泛,在产品设计开发、架构设计、技术团队管理等方面有丰富经验。另译有《扩展jQuery》和《HTML5 JavaScript动画基础》。

]

目录

第 1章 引言 11.1 内容概览 21.2 监控的定义 2 1.2.1 业务客户 2 1.2.2 IT 客户 21.3 监控的实际存在形式 2 1.3.1 手动、用户发起或无监控阶段 3 1.3.2 被动式监控阶段 3 1.3.3 主动式监控阶段 41.4 模型分布 41.5 实施主动式监控 51.6 本书内容 71.7 工具的选择 8第 2章 监控框架 92.1 黑盒与白盒 102.2 以事件、日志、指标为中心 11 2.2.1 更多关于指标的知识 11 2.2.2 指标的定义 12 2.2.3 指标的类型 13 2.2.4 指标小结 14 2.2.5 指标聚合 152.3 上下文和有价值的通知 162.4 可视化 172.5 传统监控有何问题 18 2.5.1 静态配置 18 2.5.2 不灵活的逻辑和阈值 18 2.5.3 以目标对象为中心 19 2.5.4 宠物和肉牛的插曲 19 2.5.5 新方法的不同之处 20 2.5.6 更智能的阈值输入 202.6 为监控框架采集数据 272.7 小结 28第3章 使用Riemann管理事件和指标 293.1 Riemann简介 30 3.1.1 Riemann的架构和实现 30 3.1.2 安装Riemann 313.2 配置Riemann 35 3.2.1 学习Clojure 35 3.2.2 Riemann的基础配置 35 3.2.3 事件、流、索引 38 3.2.4 配置事件、流、索引 40 3.2.5 向Riemann发送事件 43 3.2.6 创建Riemann监控检测 44 3.2.7 Riemann过滤的一个小插曲 453.3 连接Riemann服务器 47 3.3.1 配置上游Riemann服务器 48 3.3.2 配置下游Riemann服务器 50 3.3.3 向下游发送Riemann事件 513.4 在上游Riemann服务器发出告警 52 3.4.1 Riemann事件限流 57 3.4.2 汇总Riemann事件 57 3.4.3 电子邮件通知的替代工具 583.5 测试Riemann配置 583.6 验证Riemann配置 603.7 性能、可伸缩性、高可用性 613.8 Riemann的替代工具 633.9 小结 63第4章 Graphite和Grafana 644.1 Graphite简介 64 4.1.1 Carbon 65 4.1.2 Whisper 65 4.1.3 Graphite Web、Graphite-API、Grafana 664.2 Graphite的架构 664.3 安装Graphite 66 4.3.1 在Ubuntu上安装Graphite 68 4.3.2 在Red Hat上安装Graphite 68 4.3.3 安装Graphite-API 70 4.3.4 安装Grafana 71 4.3.5 通过配置管理工具安装Graphite和Grafana 734.4 配置Graphite和Carbon 73 4.4.1 配置Carbon指标的留存模式 78 4.4.2 估算Graphite存储空间 80 4.4.3 Carbon和Graphite服务管理 814.5 配置Graphite-API 84 4.5.1 Graphite-API的服务管理 86 4.5.2 测试Graphite-API 874.6 配置Grafana 874.7 为Graphite配置Riemann 914.8 Grafana简介 954.9 Graphite和Carbon冗余 1004.10 时间和时区 103 4.10.1 手动管理时间 103 4.10.2 通过配置管理工具管理时间 106 4.10.3 检查时间状态 1074.11 Graphite和Grafana的替代工具 107 4.11.1 商业工具 107 4.11.2 开源工具 1084.12 Whisper的替代工具 108 4.12.1 InfluxDB 108 4.12.2 Cyanite 1094.13 小结 109第5章 监控主机 1105.1 collectd简介 1115.2 应该监控哪些主机组件 1125.3 安装collectd 113 5.3.1 在Ubuntu上安装collectd 113 5.3.2 在Red Hat上安装collectd 114 5.3.3 通过配置管理工具安装collectd 1155.4 配置collectd 115 5.4.1 加载和配置collectd插件来进行监控 118 5.4.2 *后的准备 130 5.4.3 启用和运行collectd 1305.5 collectd事件 1305.6 将collectd事件发送到Graphite 1325.7 重构collectd指标名称 1335.8 小结 136第6章 在Riemann中使用collectd事件 1376.1 检测正在运行的进程 1376.2 其他行动和改进 1416.3 重复一些传统监控 1426.4 通过更智能的数据进行更好的监控 143 6.4.1 构建基于中位数的检测 143 6.4.2 使用百分位数进行基于主机的检测 144 6.4.3 对检测进行抽象 145 6.4.4 对检测进行组织 1496.5 使用Grafana绘制collectd指标 149 6.5.1 创建主机看板 150 6.5.2 创建第 一个主机图表 151 6.5.3 创建内存图表 154 6.5.4 单个主机图表 155 6.5.5 其他图表 1566.6 网络、设备和Microsoft Windows监控 1566.7 collectd的替代工具 157 6.7.1 商业工具 157 6.7.2 开源工具 1576.8 小结 158第7章 容器——另一种类型的主机 1597.1 容器监控面临的挑战 1597.2 监控Docker容器 162 7.2.1 Docker collectd插件 163 7.2.2 安装Docker collectd插件 164 7.2.3 配置Docker collectd插件 1657.3 使用Riemann处理Docker collectd的统计信息 1667.4 为Docker指标指定不同的解析度 1767.5 清理旧的Graphite Docker指标 1777.6 使用Docker 指标进行监控 1777.7 其他容器监控工具 1787.8 小结 179第8章 日志 1808.1 ELK技术栈入门 1808.2 Logstash架构 1818.3 安装Logstash 183 8.3.1 在Debian和Ubuntu上安装Java 183 8.3.2 在Red Hat上安装Java 183 8.3.3 测试Java是否安装成功 183 8.3.4 在Ubuntu和Debian上安装Logstash包 183 8.3.5 在Red Hat上安装Logstash包 184 8.3.6 通过配置管理工具安装Logstash 184 8.3.7 测试Logstash是否已安装成功 1858.4 配置Logstash 1858.5 安装Elasticsearch 187 8.5.1 在Debian和Ubuntu上安装Java 187 8.5.2 在Red Hat上安装Java 188 8.5.3 通过配置管理工具安装Elasticsearch 189 8.5.4 测试Elasticsearch是否安装成功 189 8.5.5 确定Elasticsearch正在运行 1898.6 配置Elasticsearch集群和节点 1908.7 时间和时区 1938.8 集成Logstash和Elasticsearch 193 8.8.1 Logstash内部会发生什么 195 8.8.2 Elasticsearch内部会发生什么 2008.9 安装Kibana 2018.10 配置Kibana 2028.11 运行Kibana 2038.12 通过Syslog将主机连接到Logstash 205 8.12.1 配置Logstash 205 8.12.2 Syslog概览 206 8.12.3 配置Syslog 2078.13 记录Docker日志 2098.14 将数据从Logstash发送到Riemann 2148.15 将数据从Riemann发送到Logstash 2168.16 伸缩扩展Logstash和Elasticsearch 219 8.16.1 伸缩扩展Logstash 219 8.16.2 伸缩扩展Elasticsearch 2208.17 监控组件 221 8.17.1 监控RSyslog 221 8.17.2 监控Logstash 221 8.17.3 监控Elasticsearch 2268.18 Logstash的替代方案 229 8.18.1 Splunk 229 8.18.2 Heka 229 8.18.3 Graylog 229 8.18.4 mtail 2298.19 小结 229第9章 构建可监控的应用程序 2309.1 应用程序监控入门 231 9.1.1 应该在哪里测量 231 9.1.2 测量模式 232 9.1.3 时间和观察者效应 2329.2 指标 233 9.2.1 应用程序指标 233 9.2.2 业务指标 233 9.2.3 监控模式或放置指标的位置 233 9.2.4 工具模式 233 9.2.5 外部模式 234 9.2.6 在示例应用程序中构建指标 2359.3 日志 248 9.3.1 添加自己的结构化日志条目 249 9.3.2 将结构化日志添加到示例应用程序 250 9.3.3 使用现有日志 2559.4 健康检查、端点和外部监控 2589.5 部署 262 9.5.1 向示例应用程序添加部署通知 262 9.5.2 使用部署事件 2649.6 跟踪 2679.7 小结 267第 10章 通知 26810.1 目前的通知 26910.2 更新expired事件配置 26910.3 升级电子邮件通知 269 10.3.1 格式化电子邮件主题 271 10.3.2 格式化电子邮件正文 27110.4 为通知添加图表 275 10.4.1 定义数据源 276 10.4.2 定义查询参数 277 10.4.3 定义图表面板和行 279 10.4.4 绘制看板 280 10.4.5 将看板添加到Riemann通知中 281 10.4.6 一些脚本化看板示例 282 10.4.7 其他上下文 28310.5 添加Slack作为目的地 28310.6 添加PagerDuty作为目的地 28610.7 维护和停机 28910.8 从通知中学习 29210.9 其他告警工具 29510.10 小结 295第 11章 监控之巅:监控Tornado 29611.1 Tornado应用程序 29711.2 监控策略 29911.3 标记Tornado事件 29911.4 监控Tornado:Web层 300 11.4.1 监控HAProxy 301 11.4.2 监控Nginx 309 11.4.3 解决Web层的监控问题 316 11.4.4 在Riemann中设置Tornado检测 318 11.4.5 webtier函数 32011.5 向Riemann添加Tornado检测 32511.6 小结 326第 12章 监控Tornado:应用程序层 32712.1 监控应用程序层的JVM 32712.2 采集应用程序层的JVM日志 33112.3 监控Tornado API应用程序 33412.4 解决Tornado应用程序层监控的关注点 33912.5 小结 342第 13章 监控Tornado:数据层 34313.1 监控数据层的MySQL服务器 343 13.1.1 使用MySQL数据作为指标 346 13.1.2 查询的执行时间 34913.2 监控数据层的Redis服务器 35113.3 解决Tornado数据层的监控 35313.4 Tornado看板 35513.5 扩展Tornado之外的监控 36013.6 小结 361附录 浅谈Clojure和函数式编程 362

封面

监控的艺术:云原生时代的监控框架

书名:监控的艺术:云原生时代的监控框架

作者:[英]詹姆斯·特恩布尔(James Tu

页数:375

定价:¥99.0

出版社:人民邮电出版社

出版日期:2020-06-01

ISBN:9787115539656

PDF电子书大小:86MB 高清扫描完整版

百度云下载:http://www.chendianrong.com/pdf

发表评论

邮箱地址不会被公开。 必填项已用*标注