热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Zabbix监控系统深度实践

Zabbix监控系统深度实践(企业级分布式系统自动化运维必选利器,大规模Zabbix集群实战经验技巧总结,由浅入深全面讲解配置、设计、案例和内部原理)姚仁捷著ISBN978-7-121-240

Zabbix监控系统深度实践(企业级分布式系统自动化运维必选利器,大规模Zabbix集群实战经验技巧总结,由浅入深全面讲解配置、设计、案例和内部原理

姚仁捷 著 

ISBN 978-7-121-24013-3

2014年8月出版

定价:69.00元

364页

16开

编辑推荐

国内最大规模Zabbix集群负责人力作

全面讲解Zabbix配置应用,深入剖析Zabbix内部原理

用真实工作需求驱动,以独家实践案例指引,助您监控利器出鞘

Zabbix是目前最流行的分布式图形化开源监控系统解决方案,它有健全灵活的监控数据采集、存储、告警规则配置以及图形化展示界面。丰富的功能背后是极高的复杂性,特别在国内缺乏相关的中文资料的背景下,系统管理人员很难参透工具内在的精髓和局限,从而高效地将其用于大规模监控场景。本书作者曾参与大规模Zabbix集群应用项目,系统覆盖了当时5000多台主机和几十万个监控点,近百万的监控点记录,修改了Zabbix多处源码,实现了很多自动化的监控部署和Proxy-Master的分布式监控,以及通过Zabbix Trigger自动分析等,从实践中总结了极具价值的方法、思想和技巧在本书中分享。

内容提要

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

这本书会从我们工作中的实际需求出发,以实际案例作为指引,希望对于读者而言,不仅仅是学会某些具体的操作,而是深入了解Zabbix 的设计思路,掌握解决问题的方法。

《Zabbix监控系统深度实践》适合想使用Zabbix构建监控系统的技术人员阅读,也适合有一定基础、对于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 Actions… ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯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 网页字符串匹配… ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 282

19.5 日志文件监控… ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 283

19.6 Latest Data局部刷新…⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 284

19.7 动态载入模块… ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 285

19.8 SNMP监控改进…⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 289

19.8.1 SNMPv3相关的增强…………………………………………………………… 289

19.8.2 SNMP重试和超时机制改进…………………………………………………… 290

19.8.3 lld的复杂OIDs… ……………………………………………………………… 290

第 20 章 Zabbix内置监控项实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 291

20.1 system.hostname…⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 291

20.2 system.cpu.load… ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 292

第五部分 社区和开源

第 21 章 典型案例分析…⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 296

21.1 前端显示Zabbix server停止工作问题…⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 296

21.2 Item设置了但没有数据…⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 302

21.2.1 看页面是否有报错… ………………………………………………………… 302

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

21.2.3 zabbix_get是否能够获取到数据……………………………………………… 304

21.2.4 总结… ………………………………………………………………………… 304

21.3 一个扫描history全表的SQL问题… ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 305

21.4 解决问题的思路… ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 315

第 22 章 Zabbix代码问题和解决…⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 316

22.1 Duplicated Host问题…⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 316

22.2 拼接大SQL问题…⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 318

22.3 nextid问题…⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 319

22.4 在Zabbix中打印日志…⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 321

第 23 章 PPTV的Zabbix监控体系…⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 322

23.1 Python Zabbix API… ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 322

23.2 Spider——服务器添加Zabbix监控… ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 324

23.3 Event Console…⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 326

23.4 Rule Engine… ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 326

23.5 报警系统架构… ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 327

第 24 章 Zatree…⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 328

第 25 章 Zabbix第三方插件⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 331

25.1 Chromix… ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 331

25.2 Zabbix Notifier… ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 332

25.3 手机端Zabbix App…⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 333

25.3.1 ZBX Mobile…………………………………………………………………… 333

25.3.2 Zabbkit………………………………………………………………………… 335

第 26 章 微信公众平台报警…⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 338

26.1 申请微信公众平台账号… ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 338

26.2 配置微信公众平台账号… ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 339

26.2.1 使用SAE进行测试开发………………………………………………………… 341

26.2.2 申请测试账号… ……………………………………………………………… 342

26.2.3 获取access_token…………………………………………………………342

26.2.4 获取用户的openid……………………………………………………………… 343

26.2.5 发送第一条文字消息… ……………………………………………………… 343

26.3 微信接口请求次数限制… ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 344

第 27 章 社区论坛…⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 345

附录 Zabbix自带宏… ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 347

后记⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 349

作者简介

姚仁捷:资深工程师,现就职于唯品会上海研发中心工作,负责日志平台建设,包括日志基础架构,数据可视化和报警系统的开发。

国内最早研究Zabbix的技术人员之一,Zabbix PythonAPI作者。曾担任社区内最大的Zabbix集群——PPTV监控系统项目负责人。精通Zabbix集群运维、使用和二次开发,深入了解Zabbix源码,善于从代码级别分析解决问题。

资深《冰与火之歌》粉丝,业余跑步爱好者,乐于尝试并推广一切可以给互联网用户带来便利和优质体验的技术。

媒体评论

Zabbix是目前很流行的分布式图形化开源监控系统解决方案。它有健全灵活的监控数据采集、存储、告警规则配置以及图形化展示界面,已经被越来越多的互联网公司所应用,成为运维基础架构系统的重要组成部分。

三年前,姚仁捷作为聚力传媒(PPTV)的系统工程师,参与并承担PPTV生产环境运维监控系统的建设工作。在短短三个月的时间里,完成了从方案选取、部署测试、小范围应用、全面上线的一整套工作,从无到有建设了覆盖数千台设备的运维监控系统。我作为项目负责人,对于他的成就感到非常欣慰。

本人作为姚仁捷的同事、朋友,向有志于运维自动化的朋友们郑重推荐此书!

陈文春

聚力传媒(PPTV)系统平台部高级总监

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

程国强

携程网站运营系统开发总监

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

吴晓刚

携程网站运营中心系统开发部高级经理

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

饶琛琳

新浪网技术保障部系统架构师

前言

本书的由来

我从职业生涯开始至今,就一直在和监控系统打交道。

我最早在eBay 容量规划小组工作,使用监控系统查看服务器状态及网站运营指标;后来到PPTV 运维部,通过监控系统的数据了解上线发布的结果和网站的健康程度等情况;现在到了唯品会,我们的监控系统能够从业务、技术两个维度考察当前公司网站的运作情况。

在有监控系统之前,工程师需要到服务器上去敲命令来获取系统数据;为了分析问题,可能还需要将数据复制到本地计算机的Excel 里进行画图;最要命的是,在出现问题的时候无法知道,只有在用户报障后才能察觉。这是多么骇人听闻的场景!

而当我们有了一个好的监控系统后,这些问题就迎刃而解了。我们可以在一个界面中浏览整个机房的服务器状态、可以在Web 前端上方便地查看监控数据、可以回溯寻找事故发生时候系统的问题和报警情况。现在,我们的工程师们已经可以一边悠闲地喝着咖啡,一边分析问题了。

监控系统是整个运维自动化体系中非常重要的环节。从服务器上架到最后被回收重用,都有监控系统的身影。服务器上架时,它需要添加监控;服务器工作过程中,监控系统要时刻注意服务器的健康,并且在服务器出现异常时,要发出报警通知对应的人员;在服务器被回收时,监控系统要取消服务器的监控。这些都需要监控系统拥有API,能够方便地跟外部其他系统一起工作,把自己的工作自动化起来。

国内的互联网巨头们,可以自行开发一套监控系统。而对于绝大多数企业来说,开源的Zabbix 是非常棒的选择。它能够非常好地实现以上这些需求。可以说,在目前Zabbix 是最热门的开源监控系统。

本书的内容结构

从周围的QQ 群、论坛等地方,我发现大家对于Zabbix 的学习都是非常零散的,缺少一个系统的学习过程和解决问题的正确思路。在这本书的前面,我会先向大家介绍一个最简单的入门案例,案例中有最基本的概念介绍,通过案例帮助那些只要将服务器加入监控,并且看到监控数据的读者。后面深入一些,会介绍Zabbix 的方方面面的配置,适合打算使用Zabbix高级功能的读者。在接下来的部分,会深入剖析Zabbix 的内部原理,包括Zabbix 与数据库的交互,Zabbix 数据库表的设计等,我在Zabbix 上踩过的坑以及解决问题的思路,等等,希望能授之以渔。在本书的最后部分,主要是介绍Zabbix 在开源方面的进展,最主要的就是58同城开源的Zatree,以及Chrome 的插件和手机客户端。

这本书会从我们工作中的实际需求出发,介绍Zabbix 的使用方法和其配置管理。在这些内容之后,会有深入一些的对于Zabbix 实现的讲解,希望对于读者而言,不仅仅是学会某些具体的操作,而是深入了解Zabbix 的设计思路,掌握解决问题的方法。

作者联系方式

由于经验的不足,书中可能会有一些不足之处,大家可以联系微博@ 超大杯摩卡星冰乐,或者是我的邮箱baniu.yao@gmail.com。

声明

在刚开始进行写作时,我考虑到很多读者是用中文版的Zabbix,所以文中的Zabbix 的术语都是使用中文。但后来我觉得对于Zabbix 的术语,研究人员是需要了解它的英文说法的,这样在同行之间才能更好的交流,也可以在Google 上更好地检索信息。基于这个原因,我将之前的中文术语全部又换成了英语。由于这些术语非常多,虽然编辑帮我细致的检查,难免有疏漏,非常抱歉。希望大家能够谅解。

致谢

在前言的最后,要感谢很多人。首先感谢的是我的父母,没有你们,就没有我。然后要感谢我的老婆,因为要忙于写书,好多时候不能陪你。最后要感谢的是诸超、陈文春、吴晓刚、周昕毅、朱宁和刘海阳等同事的帮助,在我写书的过程中,给出了很多宝贵的建议。谢谢各位。



推荐阅读
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 从Oracle安全移植到国产达梦数据库的DBA实践与攻略
    随着我国对信息安全和自主可控技术的重视,国产数据库在党政机关、军队和大型央企等行业中得到了快速应用。本文介绍了如何降低从Oracle到国产达梦数据库的技术门槛,保障用户现有业务系统投资。具体包括分析待移植系统、确定移植对象、数据迁移、PL/SQL移植、校验移植结果以及应用系统的测试和优化等步骤。同时提供了移植攻略,包括待移植系统分析和准备移植环境的方法。通过本文的实践与攻略,DBA可以更好地完成Oracle安全移植到国产达梦数据库的工作。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 企业数据应用挑战及元数据管理的重要性
    本文主要介绍了企业在日常经营管理过程中面临的数据应用挑战,包括数据找不到、数据读不懂、数据不可信等问题。针对这些挑战,通过元数据管理可以实现数据的可见、可懂、可用,帮助业务快速获取所需数据。文章提出了“灵魂”三问——元数据是什么、有什么用、又该怎么管,强调了元数据管理在企业数据治理中的基础和前提作用。 ... [详细]
  • 本文介绍了sqlserver云存储和本地存储的区别,云存储是将数据存储在网络上,方便查看和调用;本地存储是将数据存储在电脑磁盘上,只能在存储的电脑上查看。同时提供了几种启动sqlserver的方法。此外,还介绍了如何导出数据库的步骤和工具。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • 本文介绍了自动化测试专家Elfriede Dustin在2008年的文章中讨论了自动化测试项目失败的原因。同时,引用了IDT在2007年进行的一次软件自动化测试的研究调查结果,调查显示很多公司认为自动化测试很有用,但很少有公司成功实施。调查结果表明,缺乏资源是导致自动化测试失败的主要原因,其中37%的人认为缺乏时间。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
author-avatar
那lady对我说12067358
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有