互联网
类型
4.8
豆瓣评分
可以朗读
语音朗读
360千字
字数
2020-06-01
发行日期
展开全部
主编推荐语
直击云原生化和容器化的监控痛点,理论联系实际,从0到1构建可扩展的监控框架,让你轻松驾驭监控系统的技术工具。
内容简介
本书由前Docker员工、运维专家詹姆斯·特恩布尔执笔,系统介绍现代应用程序、架构的监控和度量。
全书共分为13章,主要内容包括监控和度量过程中涉及的一些基本概念,描述基于主机的监控。书中运用了大量的代码进行分析例证,有助于实时监控系统。
另外,作者对系统日志、应用程序以及通知等方面进行了系统介绍,并且在最后3章中,对Tornado的组成部分展开了详细介绍,力求构建可监控的系统。
本书适合软件开发工程师、系统管理员以及其他所有对系统监控和DevOps感兴趣的人阅读。
目录
- 版权信息
- 前言
- 读者对象
- 致谢
- 技术审校者
- 编辑
- 作者
- 排版约定
- 代码和示例
- 勘误
- 免责声明
- 版本
- 电子书
- 第 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知识
- 作者简介
- 看完了
展开全部
出版方
人民邮电出版社·图灵出品
图灵社区成立于2005年6月,由人民邮电出版社投资控股,以策划出版高质量的科技书籍为核心业务,主要出版领域包括计算机、电子电气、数学统计、科普等,通过引进国际高水平的教材、专著,以及发掘国内优秀原创作品等途径,为目标读者提供一流的内容。