Zabbix企业级分布式监控系统

来自站长百科
跳转至: 导航、​ 搜索
  • == 图书版权 ==
  • Zabbix企业级分布式监控系统(第一本Zabbix中文图书,企业级开源监控系统必选)
  • 吴兆松 编著
  • ISBN 978-7-121-23877-2
  • 2014年8月出版
  • 定价:59.00元
  • 356页
  • 16开

Zabbix企业级分布式监控系统.jpg

  • == 编辑推荐 ==
  • 本书从入门到高级应用,从Zabbix基本应用到安装包定制、协议、API,全面剖析、应有尽有。
  • 包含大量监控案例,详解触发器、告警等Zabbix监控中令人头疼的问题,学到的不止是技术,还有思路和方法。
  • 内容提要
  • 《Zabbix企业级分布式监控系统》从运维(OPS)角度对Zabbix 的各项功能进行了详细介绍,以自动化运维视角为出发点,对Zabbix 的安装配置、自动化功能、监控告警、性能调优、Zabbix API、Zabbix 协议、RPM安装包定制,结合saltstack 实现自动化配置管理等内容进行了全方位的深入剖析。
  • 《Zabbix企业级分布式监控系统》分为初级内容、中级内容、高级内容和附录部分,分别由浅入深地讲解Zabbix 监控系统这个开源软件。从最简单的安装配置,到复杂的高级使用,详细讲解了数据库分表、高可用、性能调优、架构设计,以及大量的监控案例,对即将构建Zabbix 监控系统,或者已经在使用Zabbix 的用户具有非常高的参考价值。
  • 《Zabbix企业级分布式监控系统》适合想了解、学习和规划构建监控系统的人员阅读,可以作为学习Zabbix 的工具书,也适合有一定基础,想更深入学习Zabbix 的读者,通过大量的案例,让读者真正理解Zabbix。
  • == 目录 ==
  • 第1部分 Zabbix基础部分
  • 第1章 监控系统简介 2
  • 1.1 为何需要监控系统 2
  • 1.2 监控系统的实现 2
  • 1.3 监控系统的开源软件现状 4
  • 1.4 监控系统的原理探究 11
  • 第2章 Zabbix简介 14
  • 2.1 Zabbix的客户 14
  • 2.2 使用Zabbix的准备 15
  • 2.3 Zabbix为何物 15
  • 2.4 选择Zabbix的理由 16
  • 2.5 Zabbix的架构 17
  • 2.6 Zabbix的运行流程 18
  • 2.7 Zabbix的功能特性 19
  • 第3章 安装部署 21
  • 3.1 安装环境概述 21
  • 3.2 Zabbix_Server服务端的安装 25
  • 3.3 Zabbix_Agent客户端的安装 39
  • 3.4 SNMP监控方式的安装配置 40
  • 3.5 Windows上安装Zabbix-Agent 40
  • 3.6 其他平台的安装 43
  • 3.7 zabbix_get的使用 43
  • 3.8 Zabbix相关术语(命令) 44
  • 3.9 Zabbix Server对数据的存储 45
  • 3.10 Zabbix init脚本解释 55
  • 3.11 高可用和安全 56
  • 3.12 Zabbix数据库的备份 57
  • 第4章 快速配置使用 59
  • 4.1 配置流程 59
  • 4.2 主机组的添加 61
  • 4.3 模板的添加 63
  • 4.4 添加主机 65
  • 4.5 Graphs的配置 68
  • 4.6 Screen的配置 74
  • 4.7 Slide shows的配置 78
  • 4.8 Zatree的使用 79
  • 4.9 Map的配置 80
  • 4.10 Web监控 85
  • 4.11 IT服务 92
  • 4.12 报表 95
  • 4.13 资产管理 97
  • 第5章 深入配置使用 99
  • 5.1 Items的添加 99
  • 5.2 Items key的添加 105
  • 5.3 Items的类型 109
  • 5.4 宏的配置 129
  • 5.5 维护时间 131
  • 5.6 事件确认 132
  • 5.7 数据的导入/导出配置 134
  • 第6章 告警的配置 135
  • 6.1 告警概述 135
  • 6.2 Trigger的配置 136
  • 6.3 添加Actions 151
  • 6.4 邮件告警配置实例 160
  • 6.5 自定义脚本告警 163
  • 6.6 邮件告警脚本的配置实例 165
  • 6.7 告警升级的机制 169
  • 6.8 告警配置故障排查 172
  • 第2部分 Zabbix中级部分
  • 第7章 监控方式剖析 176
  • 7.1 Zabbix支持的监控方式 176
  • 7.2 Zabbix监控方式的逻辑 177
  • 7.3 Agent监控方式 177
  • 7.4 Trapper监控方式 177
  • 7.5 SNMP监控方式 180
  • 7.6 IPMI监控方式 189
  • 7.7 JMX监控方式 194
  • 7.8 命令执行 201
  • 第8章 分布式监控 202
  • 8.1 代理架构 202
  • 8.2 节点架构 205
  • 8.3 被动模式和主动模式 206
  • 第9章 Zabbix与自动化运维 211
  • 9.1 监控自动化 211
  • 9.2 网络发现 212
  • 9.3 主动方式的自动注册 215
  • 9.4 Low level discovery 221
  • 9.5 Zabbix与自动化配置管理工具Saltstack 238
  • 第10章 使用的经验技巧 242
  • 10.1 如何有效地设置监控告警 242
  • 10.2 监控项的使用技巧 246
  • 10.3 触发器的使用技巧 246
  • 10.4 触发器配置 247
  • 10.5 谷歌浏览器告警插件 249
  • 10.6 数据图断图的原因 250
  • 第11章 监控案例 252
  • 11.1 监控TCP连接数 252
  • 11.2 监控Nginx 254
  • 11.3 监控PHP-FPM 256
  • 11.4 监控MySQL 260
  • 11.6 监控DELL服务器 272
  • 11.7 监控Cisco路由器 272
  • 11.8 监控VMware 274
  • 第3部分 Zabbix高级部分
  • 第12章 性能优化 282
  • 12.1 Zabbix性能优化概述 282
  • 12.2 Zabbix性能优化的依据 283
  • 12.3 配置文件的参数优化 285
  • 12.4 Zabbix的架构优化 287
  • 12.5 Zabbix的Items中工作模式以及Trigger的优化 287
  • 12.6 Zabbix的数据库优化 287
  • 12.7 其他方面 289
  • 第13章 Zabbix API的使用 290
  • 13.1 Zabbix API简介 290
  • 13.2 JSON-RPC 290
  • 13.3 Zabbix API的使用流程 293
  • 13.4 第三方Zabbix API模块 302
  • 第14章 使用Zabbix协议 304
  • 14.1 Zabbix协议概述 304
  • 14.2 Zabbix Sender协议 305
  • 14.3 Zabbix Get协议 310
  • 14.4 Zabbix Agent协议 310
  • 第15章 定制Zabbix安装包 313
  • 15.1 为什么要定制安装包 313
  • 15.2 如何定制安装包 313
  • 第16章 大型分布式监控案例 316
  • 16.1 监控系统构建概述 316
  • 16.2 监控环境架构图 317
  • 16.3 架构实现的过程 317
  • 16.4 业务相关的配置 335
  • 16.5 其他需求 338
  • 附录A 源码安装及相关配置 339
  • == 作者简介 ==
  • 吴兆松,运维开发工程师,具有丰富的一线运维实战经验,曾做过CDN运维、游戏运维、云计算运维,对Linux系统、云计算、监控系统有较深入的研究,熟悉运维自动化工具的使用和二次定制开发,乐于折腾开源软件,偶尔写写博客、技术文档,其始终坚信,技术的积累只是时间问题,而解决问题的思路和思想高于具体的技术细节。
  • 媒体评论
  • 运维离不开监控就像鱼离不开水,一款功能强大的监控系统可以有力地保证业务的性能和稳定性。近几年各种监控系统层出不穷,Zabbix作为监控系统的新兴贵族迅速崛起,不过中文资料还比较少,itnihao作为Zabbix监控系统国内领先的使用者,厚积薄发撰写了此书,大家可以通过这本书详细地了解Zabbix的各个方面,熟悉它、了解它、使用它,并最后爱上它。
  • ——窦喆(@南非蜘蛛),中国最大开源社区ChinaUnix创始人之一
  • 对于略具规模的IT系统而言,监控组件通常都是其运维管理工具箱中核心组件的排头兵。开源运动硕果累累的今天,监控工具领域亦是百花齐放,然而,尽管Zabbix是个后来者,却迅速一枝独秀,甚至由于愈加完善的特性和丰富的功能以及越来越多企业或组织的青睐而冠盖群芳。相信有不少初次接触使用Zabbix的网友都是从itnihao公开的且不断丰富和完善着的Zabbix技术文档开始的,许多网友也坦言正是由itnihao及他的文档伴着走过了Zabbix资料匮乏、使用经验缺少的“蛮荒”时代。由此,我们有理由相信,他这次把多年的研究成果及实践经验精心打造并集结成册的这本《Zabbix企业级分布式监控系统》,一定会成为爱好及使用Zabbix的朋友们的案头必备宝典。
  • ——马永亮(@马哥教育),马哥Linux运维培训创始人
  • 本书是作者在运维领域多年实践的精彩总结,没有花哨的语言,不是大而全的砖头书。从头至尾,循序渐进,抽丝剥茧,让你对Zabbix的基本操作及其原理有全面、系统的认识。作者大部分篇幅都采用图例加脚本实例阐述,相信这也是他对Zabbix架构的深刻理解,只有掌握了扎实的原理架构,才能让实战操作井井有条,避免一些人为的低级错误。本书一定能给Zabbix学习者带来帮助。
  • ——黄小路(@ZERO___O ),PPS高级运维工程师
  • 作为开源监控系统的一员,Zabbix提供了All in One的解决方案,使用户能够快速构建出企业级的监控平台,让运维环境变得可知可控,本书作为第一本中文Zabbix书籍,非常系统地讲解了Zabbix的各个方面,从功能到部署使用,从原理到案例技巧,几乎所有关于Zabbix的问题都可以从中找到答案或启发,值得一读!
  • ——姚炫伟(@绿小小肥),中国SaltStack用户组发起人之一
  • 本书理论与实践相结合,包含Zabbix的各项技术细节,由浅入深,无论是新手还是老用户,看完本书,一定能给你带来技术和思路的拓展,正如作者所言,本书学的不止是技术,而是解决问题的思路。
  • ——邝玲,高级系统运维工程师
  • == 前言 ==
  • 为何要写这本书
  • “运筹帷幄之中,决胜千里之外。”在IT运维中,监控占据着很重要的地位,按比例来算,说30%一点也不为过。对IT运维工程师来说,构建一个真正可用的监控告警系统是一项艰巨的任务。在监控系统的开源软件中,可供选择的工具众多,然而真正适合自己需求,能够真正解决自己业务问题的监控系统软件却凤毛麟角。
  • 在笔者的运维从业生涯中,监控系统用过Cacti、Nagios,以及笔者公司开发的监控告警系统,直到接触了Zabbix,才发现这个灵活而强大的自动化监控工具正是笔者以前所寻找的。Zabbix灵活的设计为用户提供了易用的二次开发接口,让用户既可以使用Zabbix本身提供的功能,又可以自定义更多的监控项功能,从硬件监控,到操作系统,再到服务进程,以及网络设备,其无所不能的监控功能令人叹为观止,不禁要为这么优秀的开源工具而震撼。
  • 在Zabbix的使用过程中,也会遇到很多问题,包括:配置使用、架构设计、性能调优、大规模部署应用等。由于Zabbix是一个集众多功能于一体的工具,自带的功能实在太多,一般用户往往仅用到基本的功能,对更高级的功能并未使用到。然而随着使用的加深,会遇到更多的问题,这其中最大的问题是告警和数据存储。本书对这两部分内容都有深入的讲解。
  • 笔者从2012年12月开始学习并使用Zabbix,在此过程中,通过对Zabbix官网的学习,将Zabbix的部署和配置,以及其丰富的功能整理成文档,并对外公开,已在网络上公开过两个版本《Zabbix使用手册V1.4》和《Zabbix使用手册V2.0》,对不少学习Zabbix的朋友有所帮助。然而,为了将Zabbix的功能更加详细地展示出来,于是有了本书的出现。本书以简洁通俗的方式将Zabbix的各项功能展现给读者,使读者即学即用,以此来节省读者宝贵的时间。
  • 本书将不会开源电子书PDF版本,但笔者将来会对《Zabbix使用手册》做更多的更新,本书的所有代码和软件是开源的。另外,笔者开源的Zabbix安装包定制项目对重新打包Zabbix RPM安装包有一定的参考价值,其地址为https://github.com/itnihao/zabbix-rpm,希望对大家有所帮助。
  • 如何阅读本书
  • 本书从运维(OPS)角度对Zabbix的各项功能进行了详细介绍,以自动化运维视角为出发点,对自动化功能、高可用、监控告警、性能调优、Zabbix API、Zabbix协议、RPM安装包定制等进行了深入浅出的探讨。
  • 第1部分为基础部分,包括第1~6章,介绍了监控系统的原理,让初次接触监控的读者了解监控的组成架构,从宏观上认识监控系统,接下来讲解了Zabbix的架构、Zabbix的安装、监控配置、自定义监控项、告警配置、告警脚本等功能。这部分内容适合初学者系统地学习Zabbix监控系统,对稍有经验的使用者来说,重点掌握3.9节中Zabbix对数据存储的处理,以及第5章中深入配置使用Zabbix和第6章中监控告警部分。
  • 第2部分为中级部分,包括第7~11章,对Zabbix的多种监控方式进行了详述(如IPMI、SNMP、JMX等),对Zabbix的自动化功能进行了深入讲解,介绍了分布式监控系统,并有大量自定义脚本的监控案例,对自动化发现LLD功能进行了深入的讲解,适合对Zabbix有一定基础的读者深入学习。通过这部分的学习,读者将会深入理解Zabbix的自动化功能。
  • 第3部分为高级部分,包括第12~16章,介绍了Zabbix的性能调优,解决Zabbix使用过程中遇到性能瓶颈的问题,并让读者学会使用Zabbix API、Zabbix协议来扩展Zabbix,从而为构建运维平台提供了更多的扩展性。同时,也讲解了如何定制RPM包,以及如何使用Saltstack来自动化部署和配置,最后用一个实例来讲解如何构建企业级分布式监控系统,适合对Zabbix非常熟悉的读者进行深入应用。通过这部分的学习,读者能够深入理解Zabbix。
  • 第4部分为附录部分,介绍了Zabbix的源码安装和Zabbix的升级,仅供读者参考。在介绍Zabbix的安装时,作者极力推荐在RHEL这类系统中使用RPM包的安装方式,但网络中大部分资料都采用源码安装,且在多种书籍中均有使用源码安装的习惯,从而误导了读者,认为源码安装才是真正的懂Linux,以此造成部分用户以使用源码安装为荣,让源码安装具有“优越感”。使用源码安装导致了部分初学者连最基本的安装和配置都会遇到很多麻烦,甚至为了安装一个软件需要几天才能完成。当然,这里并不排斥使用源码安装,只是为了纠正一个观念,请读者尽量使用自己打包的RPM这种适合大规模安装的方式去部署Zabbix程序。本书将RPM定制的内容作为单独的一章进行介绍,让读者深入理解安装和定制的过程。
  • 读者对象
  • 中/高级Linux系统管理员
  • 系统运维工程师
  • 运维开发工程师
  • 系统集成商
  • 运维监控系统工程师
  • 监控系统软件开发(设计)人员
  • IT管理人员
  • 架构设计人员
  • 勘误和支持
  • 因作者水平有限,书中的错误或不妥之处难免,恳请读者批评、指正。如果读者有任何宝贵的意见或建议,可以发送邮件到zabbix@itnihao.com,期待您的真挚反馈。
  • 本书所有的代码和安装软件将放在github中托管,地址为https://github. com/itnihao/ zabbix-book/,读者可以自行下载使用。另外,本书的勘误也会在此链接中得到反馈。
  • 声明
  • 本书采用的Zabbix版本为2.0和2.2,因此对Zabbix 1.8不再讨论,Zabbix 2.4将在未来两年内会发布,其功能与Zabbix 2.2将会有所不同(例如,Zabbix 2.4中的分布式模式会去掉node架构等)。本书采用的操作系统以RHEL(CentOS)、Windows为主,对于其他系统,其配置方法类似,请读者举一反三。本书对部分不重要的内容只是简略地介绍,希望能起到抛砖引玉的作用。
  • 另外,本书在编写过程中,参考了以下网址中的内容,并对官网的部分内容进行了翻译整理,后面不再单独声明。
  • https://www.zabbix.com/documentation/2.2/manual
  • https://www.zabbix.org/wiki/
  • http://pengyao.org/zabbix-triggers-functions.html
  • 鸣谢
  • 本书在编写过程中得到了众多朋友的支持。在这里要感谢姚炫伟、陈益超、窦喆、冯颖聪等对本书的技术问题进行审校;感谢电子工业出版社编辑任晓露和李利健对本书的精心指导,更正了书稿中的很多错误之处,才得以与读者面市。特别感谢以下朋友对作者的支持与鼓励:伊杨林、吴华、黄小路、芮峰云、罗坤、温宏强、曾兵、范仁更、邝玲、张克元(网名Geek)、沈灿、薛群、李佃田、罗苗、杨晨、焦婷婷、KissPuppet(网名)、司鼎任、汤永全、罗伟、水喜云、唐文军、李彬(网名彬彬)、高鹏程、唐博、罗涛(网名MorningSong)等。注意,以上排名不分先后(使用Linux命令sort -R随机生成排序)。感谢SJCloud公司的全体成员,感谢金总,陶总,付总在我工作期间的支持和帮助。
  • 另外,也要感谢史应生、李庆雷、姚仁捷、邓磊、马永亮、孙科伟、虚拟的现实(网名)等分享的有关Zabbix的技术文档、视频录制和讲座等内容,这些内容对促进Zabbix在国内的推广和发展有很大帮助。很多网友也写了大量的有关Zabbix的博客文章,相关链接会放在本书的github项目中。
  • 本书的代码示例规范
  • 1.在shell环境中使用,shell命令用黑体加粗。
  • shell# vim /etc/php.ini
  • 2.在MySQL环境中使用,SQL命令用黑体加粗。
  • mysql> flush privileges;
  • 3.在本书中,Zabbix-Server(Zabbix Server)表示zabbix-server服务或zabbix_server进程,其他Zabbix Agent,Zabbix Get,Zabbix Proxy情况类似,后面不再声明。
  • 4.重要参数的解释,用灰色底纹标示。
  •  Proxy name,即zabbix-proxy的hostname。
  •  Proxy mode,即zabbix-proxy的工作模式,被动或主动,默认是主动模式。
  • 作者(网名itnihao)2014年6月1号于上海