搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
Zabbix监控系统深度实践
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787121296086
  • 作      者:
    姚仁捷著
  • 出 版 社 :
    电子工业出版社
  • 出版日期:
    2016
收藏
编辑推荐

  ★国内超大规模Zabbix集群负责人力作
  ★全面讲解Zabbix配置应用,深入剖析Zabbix内部原理
  ★用真实工作需求驱动,以实践案例指引,助您监控利器出鞘
  ★适合真正想研究Zabbix的读者阅读


展开
作者简介

  姚仁捷,运维数据与开发经理,现就职于游族网络(002174.SZ),负责运维与大数据方面的开发,包括日志平台、计算平台和机器学习方面的研究与开发。
  国内较早研究Zabbix的技术人员之一,Zabbix Python API作者。曾在PPTV负责当时Zabbix社区中巨大的集群之一。对Zabbix大规模集群有丰富的经验,善于Zabbix源码的改造和开发。作为Revierer参与了PACKT Publishing出版的Zabbix Performance Tuning审阅工作。
  目前对于机器学习有浓厚的兴趣,希望能将大数据、机器学习和运维结合,使得数据化运维能够真正落地。

展开
内容介绍

  这是一本由浅入深,全面讲解Zabbix应用与原理的技术书籍,也是作者多年实战经验的总结和浓缩。在概念篇,从一个简单但完整的入门案例讲起,案例中有最基本的概念介绍,通过案例帮助那些只要将服务器加入监控,并且看到监控数据的读者;然后逐步深入,在进阶篇介绍Zabbix的各方各面的配置;在设计篇中对Zabbix的内部原理进行深入剖析,包括Zabbix与数据库的交互Zabbix数据库表的设计等,并分享作者在Zabbix上踩过的坑以及解决问题的思路。最后会在开源部分介绍58同城开源的Zatree和Chrome的插件、手机客户端等工具。
  这本书会从我们工作中的实际需求出发,以实际案例作为指引,希望对于读者而言,不仅仅是学会某些具体的操作,而是深入了解Zabbix 的设计思路,掌握解决问题的方法。

展开
精彩书评

  Zabbix是目前很流行的分布式图形化开源监控系统解决方案。它有健全灵活的监控数据采集、存储、告警规则配置以及图形化展示界面,已经被越来越多的互联网公司所应用,成为运维基础架构系统的重要组成部分。
  三年前,姚仁捷作为聚力传媒(PPTV)的系统工程师,参与并承担PPTV生产环境运维监控系统的建设工作。在短短三个月的时间里,完成了从方案选取、部署测试、小范围应用、全面上线的一整套工作,从无到有建设了覆盖数千台设备的运维监控系统。我作为项目负责人,对于他的成就感到非常欣慰。
  本人作为姚仁捷的同事、朋友,向有志于运维自动化的朋友们郑重推荐此书!
  ——陈文春
  新浪运维中心总经理

  Zabbix是一个用于基础架构监控和告警的开源解决方案,可以说是近几年来国内外中小型互联网企业中流行的一种。它结合了Cacti绘图和Nagios的告警机制,并拥有非常简易的Web配置界面,再配合一些标准的监控模板,就能很轻松地上手了。姚仁捷曾经在PPTV负责过Zabbix大规模集群的工作,积累了丰富的经验和技巧,本书是他多年实践工作的结晶,从功能到部署,从原理到案例,全面讲解了Zabbix相关知识,值得一读!
  ——程国强
  携程网站运营中心系统研发高级总监

  Zabbix是近几年涌现出来的开源企业级监控工具,集数据采集、图表绘制、报警等功能于一身,适合中小型企业快速的从无到有建立一个完备的监控体系。丰富的功能背后是极高的复杂性,特别在国内缺乏相关的中文资料的背景下,系统管理人员很难参透工具内在的精髓和局限,从而高效地将其用于大规模监控场景。姚仁捷是国内Zabbix大规模应用场景的实践先驱,在源代码级对Zabbix的工作机制进行过研究及优化。相信本书可以帮助后来者少走弯路,趋利避害,让Zabbix成为监控项目实施中的利器。
  ——吴晓刚
  携程网站运营中心系统研发总监

  Zabbix是近年来非常流行的分布式监控工具,但是上手容易,精通难。八牛曾经是国内大规模Zabbix集群的维护者,在Zabbix运维、优化及二次开发方面都有丰富的经验。本书作为他多年经验的结晶,不但详细阐述了Zabbix的部署运用,还有针对性地解析了Zabbix架构设计的关键点和具体实现方式,更列举了常见的疑难问题和解决方案,堪称监控领域难得的精品书籍,相信不同层次的读者都会有所收获。
  ——饶琛琳
  日志易总监

展开
精彩书摘

  24.2 Zabbix二次开发和重新开发监控系统的选择
  我是从2011 年开始使用Zabbix 的,现在已经是2016 年(本节为2016 年新增内容),一个开源产品有这么长的生命周期,到如今依然非常流行,说明监控系统是运维不可或缺的。但从另一方面来说,可能Zabbix 已经到了需要大刀阔斧修改的时候了,Zabbix 大版本来到3.0 也说明了这个问题。我们看看大数据一些产品的发展,Storm、Spark、Presto 等各种新技术层出不穷, 监控系统是不是也应该有一些革新呢?最近几年,国内使用Zabbix 的大公司,一般都会走两条路,一个是改造Zabbix,一个是重新开发。改造Zabbix 主要集中在改造它的存储层。Zabbix 的数据是存储在传统的RDBMS 中的,而传统的RDBMS 并不非常适合运维的海量数据的场景。前两年我了解到,美团的做法是将Zabbix MySQL 中的数据再写入OpenTSDB,然后重新开发了Zabbix 的前端,数据全部从OpenTSDB 来获取,相当于只是将Zabbix 当作数据收集和报警配置的工具。2015 年我在唯品会的最后一段时间里,尝试将HBase 替换掉原生的RDBMS,花了非常大的努力,完成了这个工作,但是对Zabbix 的代码有极大的侵入,几乎将数据存储层的代码全部重写了。这非常不利于之后Zabbix 的升级和维护。小米是重新开发了open-falcon 监控系统,他们使用rrdtool 来作为数据存储引擎,个人感觉,rrdtool 也并不是一个大数据场景下很好的解决方案。 和一些朋友沟通中也发现,其实很多公司都到了这个岔路口。当时开始使用Zabbix 的时候,是从没有监控系统到有监控系统,这个从0 到1 的变化会带来非常多的好处,但用了一段时间后,发现Zabbix 只是做到了60 分或者70 分,想要把监控系统做到90 分,光靠Zabbix 本身是非常困难的。像我,最早在PPTV 是通过围绕在Zabbix 周边的各种工具来完成这个需求的。但过去这么多年,这个真的是好的选择吗?
  我们首先来看看一个广义的监控系统,它由这几部分组成:
  ◎◎数据收集
  ◎◎数据存储
  ◎◎数据报警
  ◎◎数据展现
  无论是怎样的监控系统,都脱离不开这4 个部分,其中难点在于数据存储。比如Zabbix就因为使用了RDBMS 限制了它的扩展能力。本节的标题是选择二次开发Zabbix 还是开发新的监控系统,我的看法是这样的,如果对于前面提到的“数据收集”、“数据报警”、“数据展现”的功能不满意,那么我们可以开发一些工具来增强Zabbix 的功能。但如果是Zabbix 的性能不能满足大规模的需求,那有两种可能:
  ◎◎公司的服务器规模非常大。
  ◎◎如果服务器规模不大,那就是因为监控项设置有问题。
  第2种情况是可以通过优化监控项来完成的,这里不做赘述。针对第1 点,如果公司的规模真的已经增长到Zabbix 无法掌控的地步,那就说明公司的发展非常好,同样,需要更强大的技术来支持,这个时候,可以考虑自己来开发监控系统了。因为研究Zabbix、改造Zabbix和维护Zabbix,已经会耗费非常多的精力了。那么我们如何入手开发新的监控系统呢?我的建议是不要想开发一个系统能把Zabbix 替换掉,我们应该先逐步替换Zabbix 的各个组件。最容易做的是“数据收集”和“数据展现”这两部分,利用Zabbix trapper 能方便地用自己的工具来向Zabbix 发送数据。对于“数据展现”,Zabbix 的数据都存储在RDBMS 中,可以方便地读取。更深入一些,除了上面说到的4 个组件,监控系统还可以有“数据分析”这一步,它的作用是分析数据,找到问题。这个需要和大数据结合,在唯品会做HBase 和Zabbix 集成的工作时,也研究了etsy 公司的一些相关数据查找的工作,做到可以从Zabbix 中根据一个数据图形找到图形趋势类似的数据,这个对于Debug 问题是非常有用的,但因为Zabbix 有海量的数据,这样的分析,我们是一定要借助大数据的工具的。
  ……

展开
目录

第一部分 概念篇

第 1 章 自动化运维和监控系统 2

1.1 互联网公司的运维工作 2

1.2 何谓自动化运维 3

1.3 监控系统在运维自动化中的角色 5

1.4 监控系统的理想化模样 5

第 2 章 Zabbix简介 7

2.1 Zabbix发展现状 7

2.2 选择Zabbix的理由 8

2.3 Zabbix部分名词约定 9

第 3 章 Zabbix安装 11

3.1 获取Zabbix 11

3.2 Zabbix Server安装 12

3.2.1 Zabbix数据库配置 12

3.2.2 安装Zabbix Server 13

3.2.3 安装Zabbix Web前端 16

3.3 Zabbix Agent安装 18

3.3.1 UNIX/Linux上安装Zabbix Agent 18

3.3.2 Windows上安装Zabbix Agent 18

3.4 测试Zabbix Agent和Zabbix Server运行 20

3.5 配置文件详解 20

3.5.1 zabbix_server.conf 20

3.5.2 zabbix_agentd.conf 24

第 4 章 监控第一台Host 26

4.1 Host在监控系统中的活动 26

4.2 添加一个用户 27

4.3 把服务器加入Zabbix监控 27

4.4 添加Item 28

4.5 添加Trigger 29

4.6 设置Action 31

4.7 收到第一封报警邮件 33

4.8 Zabbix 报警流程 33

4.9 看,Zabbix在工作呢 34

4.9.1 全局搜索框 35

4.9.2 查看监控数据 35

4.9.3 查看报警信息 36

4.10 添加自定义监控点 37

第二部分 配置篇

第 5 章 增加监控 40

5.1 Host配置 41

5.2 Item属性 45

5.3 Item类型 48

5.3.1 Zabbix Agent类型 48

5.3.2 SNMP类型 51

5.3.3 IPMI类型 52

5.3.4 日志文件监控 53

5.3.5 计算型Item 54

5.3.6 Zabbix内部监控 55

5.3.7 ssh类型Item 58

5.3.8 Telnet类型Item 60

5.3.9 External Check类型Item 60

5.3.10 Aggregate类型Item 60

5.3.11 Trapper类型Item 62

5.3.12 JMX类型Item 62

5.3.13 ODBC类型Item 64

5.4 Item历史数据History和Trends 66

5.5 使用Application对Item分组 67

5.6 Item Key详解 68

5.7 Template模板 69

5.7.1 新建和配置一个Template 69

5.7.2 建立/取消Host和Template的关联 71

5.7.3 修改Template 73

5.7.4 Template和Host 73

5.7.5 Template之间的父子关系 74

5.8 Clone、Full Clone和Mass Update 75

5.9 Windows监控 76

5.10 VMware监控 82

5.11 Zabbix监控性能 84

第 6 章 报警配置 86

6.1 Triggers 86

6.1.1 配置Triggers 86

6.1.2 Trigger expression 87

6.1.3 Function详解 89

6.1.4 Trigger依赖 92

6.1.5 Trigger等级 94

6.1.6 单位 95

6.2 Events 95

6.3 Action 96

6.3.1 Action 97

6.3.2 Operation 99

6.3.3 Condition 104

6.3.4 Escalations 107

6.3.5 Unsupported状态的Items的报警 110

6.4 Media类型 111

6.5 Maintenance状态 116

第 7 章 数据可视化 118

7.1 Graph 118

7.2 Network Maps 123

7.2.1 新建Maps 123

7.2.2 创建元素 124

7.2.3 选择元素 126

7.2.4 关联元素 126

7.2.5 关联指示器 126

7.3 Screens 127

7.4 Slide shows 131

第 8 章 Users和Macros 133

8.1 User和User group 133

8.1.1 配置User 133

8.1.2 User group 135

8.2 Macros 136

8.2.1 自带宏 136

8.2.2 用户自定义宏 137

8.2.3 自定义宏的适用范围 139

第 9 章 IT services服务监控与Web monitoring网络监控 140

9.1 Services服务监控 140

9.2 服务配置 141

9.3 Web monitoring网络监控配置 145

9.4 监控百度示例 148

第10 章 Zabbix前端界面 151

10.1 Monitoring板块 151

10.1.1 Dashboard栏目 151

10.1.2 Overview栏目 157

10.1.3 Web栏目 158

10.1.4 Latest data栏目 159

10.1.5 Triggers栏目 159

10.1.6 Events栏目 160

10.1.7 Graphs&Screens&Maps栏目 161

10.2 Inventory板块 161

10.3 Reports板块 161

10.4 Configuration板块 166

10.4.1 Host groups栏目 166

10.4.2 Template栏目 167

10.4.3 Hosts栏目 168

10.4.4 Maintenance栏目 170

10.4.5 其他 170

10.5 Administration板块 171

10.5.1 General栏目 171

10.5.2 DM栏目 177

10.5.3 Authentication栏目 178

10.5.4 Users栏目 179

10.5.5 Media types栏目 181

10.5.6 Scripts栏目 181

10.5.7 Audit栏目 185

10.5.8 Queue栏目 186

10.5.9 Notification栏目 186

10.5.10 Installation栏目 187

10.6 前端配置 187

10.6.1 全局配置参数 187

10.6.2 前端维护状态显示 189

10.6.3 Profile设置 190

10.7 全局搜索框 192

第 11 章 Discovery 193

11.1 基于网络的Discovery 193

11.2 Discovery的一个例子 195

11.3 Discovery Rule和Discovery Action的配置 196

11.4 存活Agent自动加入监控 199

11.5 low-level discovery 200

第三部分 进阶篇

第 12 章 Zabbix API 206

12.1 Zabbix API POST参数 206

12.2 Item支持的Zabbix API方法 207

12.2.1 Item object 208

12.2.2 item.create 209

12.2.3 item.delete 210

12.2.4 item.exists 210

12.2.5 item.get 211

12.2.6 item.getobjects 214

12.2.7 item.isreadable/item.iswritable 215

12.2.8 item.update 215

12.3 如何阅读Zabbix API文档 216

第 13 章 Zabbix分布式监控 217

13.1 两种分布式架构对比 217

13.2 Proxy单级分布式架构 218

13.3 Proxy配置 219

13.4 Node多级分布式架构 220

第 14 章 Zabbix系统优化 227

14.1 Zabbix内部运行机制 227

14.2 Items过多造成性能下降 228

14.3 数据库及其他调优 232

第 15 章 轻量级日志监控应用 233

15.1 准备工作 233

15.2 添加 Item 234

15.3 测试 234

15.4 配置报警 236

15.5 轮转的日志文件 237

15.6 获取关键字 238

第四部分 设计篇

第 16 章 Zabbix数据库表结构解析 240

16.1 表结构概述 240

16.2 Hosts表 241

16.3 Items表 244

16.4 Trigger在数据库中的结构 248

16.5 Events表 253

16.6 Triggers和Events生成的规则 255

第 17 章 History和Trends 256

17.1 sync字段的含义 257

17.2 history和trends的区别 261

17.3 housekeeper和trends 262

17.4 Graph对于history和trends的选择 263

第 18 章 Zabbix和数据库交互详解 268

18.1 include/zbxdb.h 268

18.2 zbxdb/db.c 270

18.3 zbxdbhigh 271

第 19 章 Zabbix 2.2新功能介绍 274

19.1 数据库自动升级 274

19.1.1 检查数据库版本 274

19.1.2 mandatory和optional字段 275

19.1.3 数据库升级过程 277

19.1.4 前端提示 278

19.2 Web监控 279

19.2.1 Web监控Template化 279

19.2.2 Web监控重试机制 279

19.2.3 使用HTTP代理 280

19.2.4 URL监控中使用页面内容作为变量 281

19.3 数据映射 282

19.4 history和trends存储的代码分析 282

19.4.1 DCsync_history 283

19.4.2 DCsync_trends 285

19.4.3 整个流程 285

19.5 网页字符串匹配 286

19.6 日志文件监控 287

19.7 Latest Data局部刷新 288

19.8 动态载入模块 288

19.9 SNMP监控改进 292

19.9.1 SNMPv3相关的增强 292

19.8.2 SNMP重试和超时机制改进 293

19.9.3 lld的复杂OIDs 293

第 20 章 Zabbix内置监控项实现 294

20.1 system.hostname 294

20.2 system.cpu.load 295

第五部分 社区和开源

第 21 章 典型案例分析 300

21.1 前端显示Zabbix server停止工作问题 300

21.2 Item设置了但没有数据 306

21.2.1 看页面是否有报错 306

21.2.2 Zabbix Server和Zabbix Agent的网络是否互通 307

21.2.3 zabbix_get是否能够获取到数据 308

21.2.4 总结 308

21.3 一个扫描history全表的SQL问题 309

21.4 解决问题的思路 319

第 22 章 Zabbix代码问题和解决 320

22.1 Duplicated Host问题 320

22.2 拼接大SQL问题 322

22.3 nextid问题 323

22.4 在Zabbix中打印日志 325

第 23 章 PPTV的Zabbix监控体系 326

23.1 Python Zabbix API 326

23.2 Spider——服务器添加Zabbix监控 328

23.3 Event Console 330

23.4 Rule Engine 330

23.5 报警系统架构 331

第 24 章 Zatree 332

24.1 使用Zatree 332

24.2 Zabbix二次开发和重新开发监控系统的选择 334

第 25 章 Zabbix第三方插件 337

25.1 Chromix 337

25.2 Zabbix Notifier 338

25.3 手机端Zabbix App 339

25.3.1 ZBX Mobile 339

25.3.2 Zabbkit 341

第 26 章 微信公众平台报警 344

26.1 申请微信公众平台账号 344

26.2 配置微信公众平台账号 345

26.2.1 使用SAE进行测试开发 347

26.2.2 申请测试账号 348

26.2.3 获取access_token 348

26.2.4 获取用户的openid 349

26.2.5 发送第一条文字消息 349

26.3 微信接口请求次数限制 350

第 27 章 社区论坛 351

附录 Zabbix自带宏 353

后记 355

程序员职业生涯的一些感悟 356


展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证