《Zabbix企业级分布式监控系统 第2版》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:(中国)吴兆松
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2019
  • ISBN:9787121368776
  • 页数:598 页
图书介绍:

第1章 开篇——监控系统简介 1

1.1 监控系统的功能概述 1

1.2 监控系统的实现原理 2

1.2.1 模块组成 2

1.2.2 采集协议 2

1.2.3 采集模式 3

1.2.4 监控指标 3

1.2.5 代理架构 3

1.2.6 数据存储 4

1.2.7 告警功能 5

1.2.8 可扩展性 5

1.2.9 总结归纳 6

1.3 监控系统的开源产品 7

1.3.1 Cacti 7

1.3.2 Nagios 8

1.3.3 InfluxDB套件 9

1.3.4 Prometheus 10

1.3.5 OpenFalcon 11

1.3.6 Netdata 12

1.3.7 ELK家族 13

1.3.8 Zabbix 14

第2章 Zabbix简介 16

2.1 Zabbix的用户群体都有谁 16

2.2 使用Zabbix需要具备什么基础 17

2.3 Zabbix是一个什么样的产品 18

2.4 为何选择Zabbix作为监控系统 19

2.5 该选用Zabbix的哪个版本 20

2.6 Zabbix的架构是什么样的 21

2.7 Zabbix的功能特性都有哪些 22

第3章 安装与部署 25

3.1 安装环境概述 25

3.1.1 硬件环境需求 25

3.1.2 软件环境需求 28

3.1.3 网络环境需求 30

3.2 Zabbix-Server服务器端的安装 30

3.2.1 安装Zabbix-Server 33

3.2.2 安装MySQL 33

3.2.3 配置zabbix_server.conf 36

3.2.4 防火墙、SELinux和权限的设置 38

3.2.5 配置Zabbix-Web 40

3.2.6 相关故障的处理 46

3.2.7 zabbix_server程序的参数 49

3.3 Zabbix-Agent客户端的安装 51

3.3.1 安装Zabbix-Agent 51

3.3.2 防火墙的设置 51

3.3.3 配置zabbix_agentd.conf 52

3.4 SNMP监控配置 52

3.5 在Windows中安装Zabbix-Agent 53

3.5.1 安装与配置 53

3.5.2 注册服务 53

3.5.3 启动服务 54

3.6 在其他平台安装Zabbix-Agent 56

3.7 Zabbix-Get的使用 56

3.8 Zabbix相关术语(命令) 57

3.9 Zabbix-Server对数据的存储 58

3.9.1 监控数据的存储 58

3.9.2 MySQL表分区实例 62

3.10 高可用和安全 70

3.10.1 高可用 70

3.10.2 通信安全 70

3.10.3 禁用Zabbix的guest用户 70

3.11 Zabbix数据库备份 70

3.12 升级Zabbix 73

3.12.1 同版本升级的方法 73

3.12.2 跨版本升级的方法 74

3.12.3 数据库自动升级的原理 74

3.12.4 升级失败的处理案例 75

第4章 快速配置和使用 77

4.1 配置流程 77

4.2 添加主机组 78

4.2.1 如何划分主机组 78

4.2.2 如何添加主机组 78

4.2.3 层级主机分组 80

4.3 添加模板 81

4.4 添加主机 82

4.5 配置图形 86

4.6 配置大屏 92

4.7 配置幻灯片 94

4.8 配置地图 96

4.8.1 添加背景图 96

4.8.2 添加地图 96

4.9 使用IT服务 102

4.10 使用报表 105

4.11 资产管理 108

4.12 图形共享 109

4.13 全局搜索 110

4.14 最新数据 111

4.15 故障 112

4.16 数据的导入卐导出 112

4.17 用户权限 113

4.17.1 用户组 113

4.17.2 用户组权限 114

4.17.3 用户 116

4.17.4 匿名用户 117

4.18 调试模式 117

4.19 与LDAP对接 118

4.20 维护模式 119

4.21 故障确认 121

4.22 批量更新 123

第5章 处理监控指标数据 124

5.1 添加新的监控项 124

5.1.1 监控项的含义 124

5.1.2 如何添加监控项 124

5.2 监控指标的自定义 130

5.2.1 key的格式 130

5.2.2 key名称的定义范围 130

5.2.3 key的参数数组应用实例 131

5.2.4 用户自定义参数 131

5.3 Zabbix内置的监控方式 133

5.3.1 Zabbix-Agent监控方式 134

5.3.2 Simple check监控方式 140

5.3.3 日志监控方式 144

5.3.4 计算型监控方式 152

5.3.5 聚合型监控方式 156

5.3.6 内部检测监控方式 163

5.3.7 SSH监控方式 163

5.3.8 Telnet监控方式 167

5.3.9 扩展检测监控方式 169

5.4 监控项指标数据的预处理 171

5.4.1 预处理概述 171

5.4.2 预处理的运行流程 172

5.4.3 预处理的数据类型 173

5.5 配置宏 177

5.5.1 全局宏 177

5.5.2 模板宏 178

5.5.3 主机宏 178

5.5.4 监控项宏 179

5.5.5 宏的函数运算 180

5.5.6 宏使用总结 181

5.5.7 宏的上下文 182

5.6 配置值映射 183

第6章 精通告警配置 185

6.1 告警流程 185

6.2 告警触发器的配置 186

6.2.1 Trigger的作用 186

6.2.2 Trigger的故障等级定义 187

6.2.3 Trigger的配置步骤 187

6.2.4 Trigger告警依赖 191

6.2.5 Trigger中的数值单位 192

6.2.6 Trigger表达式 192

6.3 告警处理的配置 200

6.3.1 如何发送告警 200

6.3.2 Action功能概述 200

6.3.3 Action配置步骤 201

6.3.4 告警处理措施 203

6.3.5 在告警消息中使用宏 207

6.3.6 告警恢复措施 208

6.3.7 告警更新措施 209

6.3.8 发送告警消息的步骤总结 210

6.3.9 查看告警消息的发送记录 211

6.3.10 执行远程命令 211

6.3.11 不支持的Item发送告警 215

6.4 邮件告警配置 215

6.4.1 创建Media类型 215

6.4.2 创建用户 216

6.4.3 创建Action 217

6.5 自定义脚本告警 218

6.5.1 自定义脚本告警的原理 218

6.5.2 电话告警 220

6.5.3 短信接口告警 221

6.5.4 微信告警 221

6.6 邮件告警脚本的配置 222

6.6.1 Zabbix-Server自定义告警脚本 222

6.6.2 Zabbix-Server重启服务 224

6.6.3 Zabbix-Web配置自定义脚本 225

6.6.4 告警接收邮件的配置 226

6.6.5 查看邮件发送状态 227

6.7 告警升级机制 227

6.7.1 告警升级的作用 227

6.7.2 告警升级的配置 228

6.8 触发器标签配置 230

6.8.1 标签设置 230

6.8.2 标签的复杂匹配 231

6.9 手动关闭告警 233

6.10 如何取消告警发送 235

6.11 如何删除故障信息 235

6.12 告警聚合 236

6.12.1 告警聚合的原理 236

6.12.2 基于触发器的告警聚合 236

6.12.3 基于全局的告警聚合 239

6.13 告警配置故障排查 242

6.13.1 告警消息未发送示例 242

6.13.2 邮件服务器连接失败示例 243

第7章 探究告警触发器 244

7.1 Trigger函数的意义 244

7.2 Trigger函数的分类 244

7.3 Trigger函数——比较与查找 245

7.3.1 求最近两值差的绝对值——abschange 245

7.3.2 求最大值与最小值的差——delta 248

7.3.3 判断最近两值是否相同——diff 251

7.3.4 求最近两值的变化量——change 254

7.3.5 数值的位与运算——band 256

7.3.6 数据失联——nodata 261

7.3.7 获取最新数据——last 264

7.3.8 求前一个值——prev 266

7.4 Trigger函数——计算 268

7.4.1 求最大值——max 268

7.4.2 求最小值——min 271

7.4.3 求平均值——avg 273

7.4.4 值求和——sum 276

7.4.5 统计个数——count 278

7.5 Trigger函数——时间 286

7.5.1 返回当前时间(年月日时分秒)——now 286

7.5.2 返回当前日期(年月日)——date 288

7.5.3 返回当前时间(时分秒)——time 289

7.5.4 本月第几天——dayofmonth 291

7.5.5 本周第几天——dayofweek 292

7.5.6 时间对比——fuzzytime 293

7.6 Trigger函数——日志 295

7.6.1 日志ID——logeventid 295

7.6.2 获取日志等级——logseverity 296

7.6.3 获取日志来源——logsource 297

7.7 Trigger函数——字符串匹配 299

7.7.1 正则表达式不区分大小写——iregexp 299

7.7.2 正则表达式区分大小写——regexp 301

7.7.3 字符串匹配——str 302

7.7.4 字符串长度——strlen 304

7.8 Trigger函数——趋势预测 305

7.8.1 百分线——percentile 305

7.8.2 趋势预测——forecast 307

7.8.3 剩余时间——timeleft 311

7.8.4 趋势预测计算型监控方式 314

7.9 参考资料 318

第8章 剖析监控方式 319

8.1 Zabbix支持的监控方式 319

8.2 Zabbix监控方式的逻辑 320

8.3 Zabbix-Agent的工作模式 321

8.3.1 工作模式概述 321

8.3.2 被动模式的配置 323

8.3.3 主动模式的配置 324

8.4 Zabbix-Trapper(zabbix_sender)监控方式 326

8.4.1 Zabbix-Trapper的配置步骤 326

8.4.2 Zabbix-Trapper的配置示例 326

8.4.3 使用zabbix_sender程序发送数据 328

8.4.4 使用zabbix_sender程序批量读取文件 329

8.5 SNMP监控方式 330

8.5.1 SNMP协议概述 330

8.5.2 SNMP协议的工作方式 331

8.5.3 SNMP协议的工作原理 331

8.5.4 SNMP MIB简介 334

8.5.5 SNMP相关术语 336

8.5.6 配置Zabbix-Server的SNMP监控 337

8.5.7 SNMP监控中的LLD原理 340

8.6 SNMPTraps监控方式 343

8.6.1 SNMPTraps的概念 343

8.6.2 SNMPTraps的工作原理 343

8.6.3 SNMPTraps的安装与配置 343

8.6.4 SNMPTraps的测试 346

8.7 IPMI监控方式 348

8.7.1 IPMI的概念 348

8.7.2 IPMI的特性 349

8.7.3 配置Zabbix-Server监控IPMI 349

8.7.4 Zabbix自带的IPMI模板 350

8.7.5 在Linux系统中使用OpenIPMI 350

8.7.6 创建IPMI模板 352

8.7.7 IPMI监控主机 353

8.8 JMX监控方式 354

8.8.1 JMX在Zabbix中的运行流程 354

8.8.2 JMX监控的安装和配置 355

8.8.3 安装Zabbix-Java-Gateway 355

8.8.4 配置Zabbix-Java-Gateway 356

8.8.5 查看Zabbix-Java-Gateway日志 357

8.8.6 监控Java应用程序的方法 357

8.8.7 开启Tomcat的JMX 358

8.8.8 获取JMX数据 359

8.8.9 JMX数据的LLD 363

8.8.10 JMX监控的核心技术实现 367

8.9 HTTP agent监控方式 369

8.9.1 HTTP agent监控概述 369

8.9.2 HTTP agent监控实例 369

8.9.3 HTTP agent监控配置 370

8.9.4 转换HTTP agent获取的数据结果 371

8.10 Web监控方式 372

8.10.1 Web监控的原理 372

8.10.2 Web监控指标 372

8.10.3 Web监控的配置步骤 373

8.10.4 Web监控用户认证支持 376

8.10.5 Web监控触发器的配置 379

8.10.6 Web监控排错 381

8.11 Dependent item监控方式 381

8.12 ODBC监控方式 381

8.12.1 安装ODBC软件包 381

8.12.2 查看ODBC配置 381

8.12.3 安装MySQL ODBC驱动 382

8.12.4 使用ODBC驱动连接MySQL 382

8.12.5 配置Item 383

8.12.6 ODBC错误处理 385

8.12.7 安装Oracle OBDC驱动 385

8.12.8 安装PostgresSQL OBDC驱动 387

8.12.9 OBDC的监控项自动发现 388

8.13 其他监控方式 391

8.14 命令执行的监控方式 391

8.14.1 system.run 391

8.14.2 远程命令 391

第9章 分布式监控与自动化 392

9.1 Zabbix-Proxy分布式监控 392

9.1.1 安装Zabbix-Proxy 395

9.1.2 导入Zabbix-Proxy的数据库 396

9.1.3 配置zabbix_proxy.conf 397

9.1.4 启动Zabbix-Proxy服务 397

9.1.5 查看Zabbix-Proxy日志 397

9.1.6 添加Proxy 398

9.1.7 添加Proxy的主机监控 398

9.2 监控的自动化功能 399

9.3 网络自动发现 400

9.4 主动方式的自动注册功能 403

9.4.1 功能概述 403

9.4.2 配置过程 404

9.5 监控项自动发现功能 406

9.5.1 功能概述 406

9.5.2 LLD的原理 406

9.5.3 LLD的数据格式 407

9.5.4 LLD应用案例 411

9.5.5 配置Zabbix客户端 411

9.5.6 编写自动发现脚本 412

9.5.7 自定义key配置文件 415

9.5.8 在Web页面添加LLD 416

9.5.9 主机信息数据LLD 425

9.5.10 定期删除不存在的监控元素 426

9.5.11 自动创建监控项分组 427

9.6 使用自动化工具SaltStack批量部署Zabbix 428

9.6.1 使用SaltStack配置管理Zabbix 428

9.6.2 安装salt-master 428

9.6.3 安装salt-minion 429

9.6.4 接受客户端密钥申请 429

9.6.5 状态同步文件 429

9.6.6 执行状态同步 431

第10章 监控功能案例 433

10.1 监控TCP连接状态 433

10.1.1 TCP连接状态监控原理 433

10.1.2 TCP连接状态监控脚本的实现 434

10.1.3 TCP监控模板指标 434

10.2 监控Nginx 435

10.2.1 Nginx监控原理 435

10.2.2 Nginx状态数据配置的开启 435

10.2.3 Nginx监控脚本的实现 436

10.2.4 Nginx监控key的配置 437

10.3 监控PHP-FPM 438

10.3.1 PHP-FPM监控原理 438

10.3.2 PHP-FPM状态数据配置的开启 438

10.3.3 PHP-FPM监控脚本的实现 439

10.3.4 PHP-FPM监控key的配置 441

10.4 监控MySQL 442

10.4.1 MySQL监控原理 442

10.4.2 创建MySQL监控专用账户 443

10.4.3 MySQL监控模板 443

10.4.4 MySQL监控指标 444

10.4.5 MySQL模板触发器 445

10.4.6 MySQL监控效果展示 446

10.5 监控物理服务器 447

10.5.1 DELL服务器监控原理 447

10.5.2 DELL服务器IPMI的配置 447

10.5.3 通过IPMI获取数据 449

10.5.4 DELL服务IPMI监控指标 450

10.5.5 添加IPMI监控主机 450

10.6 监控物理机磁盘 451

10.6.1 物理机磁盘监控原理 451

10.6.2 物理机磁盘监控的配置 453

10.6.3 物理机磁盘监控指标 453

10.6.4 物理机磁盘监控触发器 454

10.6.5 物理机磁盘监控数据展示 454

10.7 监控Cisco路由器 455

10.7.1 Cisco路由器监控原理 455

10.7.2 Cisco路由器SNMP的配置 455

10.7.3 通过snmpwalk获取SNMP数据 455

10.7.4 添加Cisco模板 455

10.8 监控VMware 458

10.8.1 VMware监控原理 458

10.8.2 Zabbix-Server的配置 458

10.8.3 vCenter监控账户的配置 459

10.8.4 添加监控主机 459

10.8.5 监控账户宏的配置 460

10.8.6 查看监控数据 461

10.9 监控RabbitMQ 462

10.9.1 RabbitMQ监控原理 462

10.9.2 RabbitMQ监控账户的配置 462

10.9.3 RabbitMQ监控指标 463

10.9.4 RabbitMQ监控触发器 463

10.9.5 RabbitMQ监控效果展示 464

10.10 监控Elasticsearch 465

10.10.1 Elasticsearch监控原理 465

10.10.2 Elasticsearch监控指标 465

10.10.3 Elasticsearch监控触发器 465

10.11 监控Kafka 466

10.11.1 Kafka监控原理 466

10.11.2 Kafka监控的配置 466

10.11.3 Kafka监控指标 466

10.11.4 Kafka监控触发器 467

10.11.5 Kafka监控效果展示 467

10.12 监控Redis 468

10.12.1 Redis监控原理 468

10.12.2 Redis监控的配置 468

10.12.3 Redis监控指标 469

10.12.4 Redis监控触发器 469

10.12.5 Redis监控效果展示 469

10.13 监控Oracle数据库 470

10.13.1 Oracle监控原理 470

10.13.2 Oracle监控账户的配置 470

10.13.3 Oracle监控指标 472

10.13.4 Oracle监控触发器 473

10.13.5 Oracle监控效果展示 473

10.14 监控WebLogic 474

10.14.1 WebLogic监控原理 474

10.14.2 WebLogic监控的配置 474

10.14.3 WebLogic监控指标 474

10.14.4 WebLogic监控触发器 475

10.15 监控SQL Server 475

10.15.1 SQL Server监控原理 475

10.15.2 SQL Server监控指标 475

10.15.3 SQL Server监控触发器 476

10.15.4 SQL Server监控效果展示 476

10.16 监控HTTPS证书过期 477

10.16.1 HTTPS证书过期监控原理 477

10.16.2 HTTPS证书过期监控指标 478

10.16.3 HTTPS证书过期监控触发器 480

10.16.4 HTTPS证书过期监控效果展示 480

第11章 监控数据可视化 482

11.1 Grafana 482

11.1.1 Grafana简介 482

11.1.2 安装Grafana 484

11.1.3 安装并启用Grafana Zabbix插件 485

11.1.4 添加并配置Zabbix数据源 488

11.1.5 添加Grafana图形 489

11.2 Graphtrees 492

11.2.1 安装Graphtrees 492

11.2.2 展示效果 493

11.3 谷歌浏览器告警插件 493

11.4 Mac App的使用 495

11.5 手机App的使用 495

11.6 导出实时监控数据 496

11.6.1 需求来源 496

11.6.2 参数配置 496

11.6.3 数据格式 497

11.6.4 修改源码 500

11.6.5 数据对接 501

11.7 网络拓扑自动发现 502

11.7.1 需求概述 502

11.7.2 实现原理 503

11.7.3 网络拓扑自动发现实例 503

11.7.4 通过SNMP获取LLDP数据 505

11.7.5 通过Zabbix-Server获取LLDP数据 507

11.7.6 网络拓扑可视化的实现 508

11.8 监控数据可视化的意义 509

11.9 总结 509

第12章 监控性能优化 510

12.1 Zabbix性能优化概述 510

12.2 Zabbix性能优化依据 511

12.3 Zabbix配置文件参数的优化 515

12.4 Zabbix架构的优化 517

12.5 Item的工作模式及Trigger的优化 517

12.6 Zabbix数据库的优化 517

12.7 Zabbix运行硬件的优化 518

12.8 Zabbix压力测试 518

12.8.1 压力测试原理 518

12.8.2 压力测试准备 518

12.8.3 压力测试过程 520

12.8.4 压力测试总结 522

12.9 Zabbix-Server内部实现原理 522

12.9.1 Zabbix-Server的整体流程 522

12.9.2 Zabbix-Server采集器的工作流程 523

12.9.3 Zabbix-Proxy工作流程 524

12.9.4 Zabbix-Server告警的工作流程 525

12.10 Zabbix-Server配置参数 526

12.11 Zabbix-Server性能优化总结 528

第13章 Zabbix API的使用 530

13.1 Zabbix API简介 530

13.2 JSON-RPC 530

13.3 Zabbix API的使用流程 532

13.3.1 使用API的基本步骤 532

13.3.2 如何使用官方文档获取帮助 533

13.3.3 使用CURL调用API 534

13.3.4 HTTP头部Content-Type设置 536

13.3.5 用户认证结果的返回值 536

13.3.6 获取主机信息(用Python实现的示例) 537

13.3.7 添加主机(host.create) 540

13.3.8 删除主机(host.delete) 543

13.4 第三方Zabbix API模块 544

13.5 编写命令行管理工具zbx-tool 547

第14章 安装与部署的扩展 549

14.1 源码安装Zabbix-Server 549

14.1.1 安装依赖软件包 549

14.1.2 安装Zabbix-Server 549

14.1.3 导入Zabbix数据库 550

14.1.4 复制Zabbix启动脚本 551

14.1.5 配置zabbix_server.conf 551

14.1.6 复制前端代码文件到apache目录 551

14.1.7 配置PHP参数 551

14.1.8 配置Zabbix-Web 552

14.2 源码安装Zabbix-Agent 552

14.3 定制安装包 552

14.4 使用RPMbuild定制RPM包 553

14.5 使用Elasticsearch作为数据库 557

14.5.1 安装Elasticsearch 557

14.5.2 配置Elasticsearch 557

14.5.3 启动Elasticsearch 557

14.5.4 初始化Elasticsearch数据 558

14.5.5 配置Zabbix-Server 565

14.5.6 配置Zabbix-Web 566

14.5.7 验证数据配置 566

第15章 分布式监控项目实践 567

15.1 监控系统项目概述 567

15.2 监控系统项目的背景 568

15.3 监控系统项目的步骤 570

15.4 监控系统项目的规划——工作计划 570

15.5 监控系统项目的启动——需求调研 572

15.6 监控系统架构的设计——架构设计图 572

15.7 监控系统项目的推进——软硬件环境配置 573

15.7.1 安装环境的硬件要求 573

15.7.2 安装环境的软件要求 573

15.8 监控系统项目的实施——安装与部署 574

15.8.1 MySQL数据库主从库的部署 574

15.8.2 MySQL数据库主库的配置 575

15.8.3 MySQL数据库从库的配置 576

15.8.4 MySQL数据库表分区与备份 577

15.8.5 Zabbix-Server的高可用配置 577

15.8.6 Zabbix前端管理界面的安装 580

15.8.7 Zabbix-Proxy的安装与部署 580

15.9 监控功能的实现——配置与定制开发 580

15.9.1 业务组的划分 580

15.9.2 创建用户组 581

15.9.3 添加用户 581

15.9.4 定制监控模板 581

15.9.5 自动发现的配置 582

15.9.6 配置告警与告警聚合 582

15.10 监控系统与其他系统的集成 582

15.11 监控系统项目的总结 583

第16章 后记——探究监控系统 584

16.1 监控系统的使用场景 584

16.2 如何设置监控指标 585

16.3 如何度量设置告警指标 586

16.4 如何发送告警与处理告警风暴 587

16.5 告警轮班机制 588

16.6 DevOps与监控 588

16.6.1 DevOps概述 588

16.6.2 DevOps实施的方式 588

16.6.3 DevOps与监控的关系 589

16.7 ITIL与监控 589

16.7.1 ITIL概述 589

16.7.2 ITIL服务设计——可用性管理 591

16.7.3 ITIL服务设计——IT服务连续性管理 591

16.7.4 ITIL服务设计——服务目录管理 592

16.7.5 ITIL服务设计——服务级别管理 593

16.7.6 ITIL服务运营——事件管理 594

16.7.7 ITIL服务运营——事故管理 596

16.7.8 ITIL服务运营——问题管理 597

16.8 参考资料 598