近些年,Net-SNMP的运用愈来愈深层次,愈来愈普及化,Net-SNMP自身也愈来愈强劲,与之随着的,它的使用说明也愈来愈繁杂。现阶段,中国Net-SNMP层面的书籍急缺,这书应当是现阶段该行业技术性版本号最新消息、內容最系统软件、解读最深层次和最具备实战演练性的经典著作。创作者是前中兴通信的Linux开发软件技术工程师,有很多年的Net-SNMP有关开发设计工作经验,是中国最顶级的Net-SNMP权威专家之四。
这书从技术工程师角度,以实际上新项目为借助,系统软件解读了Net-SNMP的管理方法、开发设计和维护保养。这书尤其重视实践活动,根据Net-SNMP适用的4种编程语言、5个综合性的实例,详细展现监测到布署、代理商端、管理方法端手机软件的开发设计全过程,出示好几个可复用率架构以及源码,一起重中之重解读了架构的相空间提升、自定编码模版和免维护保养开发设计实践活动。
这书分成三绝大多数,刻骨铭心讲解了应用Net-SNMP开发设计监测到手机应用程序的方式和方法,适用网络服务器、内嵌式机器设备等互联网互连机器设备的监控器。
基本篇(第1—6章)详解了网络安全管理的基本知识和协议书数据文件统计分析方法,重中之重是MIB的刻骨铭心讲解;包含SNMP协议书架构的五大基本部件:MIB的英语的语法基本ASN.3、管理方法信息结构SMI和管理方法资料库MIB。最终,详解了Net-SNMP模块中出示的工具集、开发方式等。
实战篇(第7-11章)它是这书的重中之重,最先详细解读了Net-SNMP的配备选择项,出示了融合别的开源软件布署公有云的视频监控系统的详尽全过程。然后详细描述了应用场景Net-SNMP中的c语言APl、Python关联、Peri关联开展代理商端和管理方法端开发软件的方式,包含运用3种語言开发设计4种不一样的运用。因为开发方式和語言固定不动,这儿详细介绍的全是可立即复用率的架构。
高級篇(第12—15章)是实战篇的持续和升化,主题思想包含:相空间提升代理商开发设计架构,保持高效率开发设计和轻维护保养;子代理商和动态性载入方式,保持分布式系统监控器;检测调节Net-SNMP的方式,GDB等专用工具调节网络协议的方法。
目录
- 前 言
- 第一部分 基础篇
- 第1章 网络管理 2
- 1.1 网络管理 2
- 1.1.1 网络管理的需求 3
- 1.1.2 网络管理标准 4
- 1.2 网络管理框架 6
- 1.2.1 网络管理模型 6
- 1.2.2 网络管理模式与技术 9
- 1.2.3 网络管理功能 11
- 1.3 简单网络管理协议 13
- 1.3.1 SNMP的发展历史 14
- 1.3.2 SNMP的框架组成 15
- 1.3.3 SNMP的功能 17
- 1.3.4 实现版本 22
- 1.4 小结 24
- 第2章 抽象语法标记 26
- 2.1 ASN.1概述 26
- 2.2 BNF基础 28
- 2.3 ASN.1基础 30
- 2.3.1 ASN.1的基础符号 30
- 2.3.2 定义方法 33
- 2.4 ASN.1标签类 34
- 2.5 数据类型 35
- 2.5.1 简单数据类型 36
- 2.5.2 构造数据类型 39
- 2.5.3 其他类型 40
- 2.5.4 子类型 40
- 2.5.5 标签类型定义 41
- 2.6 模块定义 42
- 2.7 宏定义 43
- 2.8 例子 44
- 2.9 小结 46
- 第3章 管理信息结构SMI 47
- 3.1 SMI概述 47
- 3.2 组织结构 48
- 3.2.1 OID树 49
- 3.2.2 节点信息 50
- 3.3 数据类型 51
- 3.3.1 基础数据类型 51
- 3.3.2 自定义数据类型 52
- 3.3.3 子类型 53
- 3.4 宏 55
- 3.4.1 OBJECT-TYPE 55
- 3.4.2 TRAP 58
- 3.4.3 MODULE-IDENTITY 60
- 3.4.4 OBJECT-IDENTITY 61
- 3.4.5 一致性陈述 61
- 3.4.6 文本约定 64
- 3.5 小结 68
- 第4章 管理信息库MIB 70
- 4.1 MIB概述 70
- 4.2 标准MIB简介 72
- 4.3 MIB结构 75
- 4.4 MIB中的管理对象 76
- 4.4.1 标量和表格对象 77
- 4.4.2 TRAP定义 81
- 4.5 MIB的编写方法 82
- 4.5.1 编写建议 83
- 4.5.2 MIB的编写和编译工具 86
- 4.5.3 常见错误 91
- 4.6 小结 93
- 第5章 BER传输编码 95
- 5.1 BER概述 96
- 5.2 BER详解 97
- 5.2.1 Tag编码 97
- 5.2.2 长度编码 99
- 5.2.3 值编码 100
- 5.3 实例分析 103
- 5.3.1 报文解析 103
- 5.3.2 抓包示例 106
- 5.4 小结 108
- 第6章 Net-SNMP基础 110
- 6.1 Net-SNMP概述 110
- 6.1.1 Net-SNMP的由来 111
- 6.1.2 Net-SNMP的特点 112
- 6.1.3 Net-SNMP重要组件 114
- 6.2 Net-SNMP安全模型 114
- 6.2.1 USM 115
- 6.2.2 VACM 115
- 6.2.3 TSM 116
- 6.2.4 基于SSH的安全传输机制 117
- 6.2.5 如何选择安全机制 117
- 6.3 命令工具集 118
- 6.3.1 协议操作工具 120
- 6.3.2 信息收集与查看工具 125
- 6.3.3 配置工具 129
- 6.3.4 权限配置工具 131
- 6.3.5 mib2c代码生成工具 135
- 6.4 开发模式 138
- 6.4.1 开发语言 139
- 6.4.2 开发模式 139
- 6.4.3 选择开发模式 140
- 6.5 小结 141
- 第二部分 实战篇
- 第7章 使用Net-SNMP监测系统 144
- 7.1 系统搭建 145
- 7.1.1 configure详解 146
- 7.1.2 编译安装 151
- 7.2 配置文件详解 153
- 7.2.1 snmpd.conf详解 154
- 7.2.2 snmp.conf详解 170
- 7.2.3 snmptrapd.conf详解 172
- 7.3 企业级系统监测案例 175
- 7.3.1 系统监测需求 176
- 7.3.2 监测方案 177
- 7.3.3 工具简介与配置 179
- 7.3.4 Net-SNMP监测示例 183
- 7.3.5 系统集成 193
- 7.4 小结 200
- 第8章 管理端应用开发 202
- 8.1 开发方法与流程 202
- 8.1.1 通信流程 203
- 8.1.2 主要的数据结构 204
- 8.1.3 主要的API 208
- 8.1.4 程序示例 213
- 8.1.5 同步与异步 218
- 8.2 管理端应用开发需求与方案 219
- 8.3 链表模块 222
- 8.4 辅助模块 223
- 8.5 主程序实现 224
- 8.5.1 程序框架 224
- 8.5.2 设计与开发 225
- 8.5.3 代码清单 228
- 8.5.4 编译与运行 245
- 8.6 完善与优化 249
- 8.6.1 实现守护进程 249
- 8.6.2 数据保存 251
- 8.6.3 绑定多个OID 251
- 8.6.4 读取MIB文件 251
- 8.7 小结 252
- 第9章 SNMP代理开发实战 253
- 9.1 SNMP代理开发流程与方法 254
- 9.2 mib2c生成代码框架详解 256
- 9.2.1 标量代码框架 256
- 9.2.2 表格代码框架iterate 269
- 9.2.3 Trap/Information框架 275
- 9.3 代理开发需求与方案 277
- 9.3.1 开发需求 278
- 9.3.2 实现方案 279
- 9.4 开发MIB 281
- 9.5 进程间通信之共享内存 282
- 9.5.1 数据模型 282
- 9.5.2 共享内存编程实践 284
- 9.5.3 通信接口 287
- 9.6 模拟业务进程 292
- 9.7 代理程序实现 293
- 9.7.1 参数类数据实现 293
- 9.7.2 实时类数据实现 295
- 9.7.3 Trap实现 299
- 9.7.4 配置与编译 302
- 9.8 集成测试 303
- 9.8.1 实时数据测试 304
- 9.8.2 参数数据测试 304
- 9.8.3 告警数据测试 305
- 9.9 优化与完善 306
- 9.9.1 数据字典的优化 306
- 9.9.2 告警完善 306
- 9.9.3 共享内存接口的优化 307
- 9.9.4 框架优化 307
- 9.9.5 双索引实现方法 307
- 9.10 小结 308
- 第10章 使用Python开发SNMP应用程序 309
- 10.1 Python开发SNMP应用程序介绍 310
- 10.1.1 Python简介 310
- 10.1.2 Python模块简介 311
- 10.1.3 安装模块 311
- 10.2 Python模块中重要的类 312
- 10.2.1 变量绑定 312
- 10.2.2 会话类 314
- 10.3 API使用介绍 315
- 10.4 实战—Python版本的NMS 317
- 10.4.1 query模块 317
- 10.4.2 nmsapp主模块 318
- 10.4.3 运行情况 322
- 10.5 小结 323
- 第11章 使用Perl开发SNMP应用程序 324
- 11.1 Perl开发SNMP应用程序介绍 324
- 11.1.1 Perl简介 325
- 11.1.2 Perl模块简介 325
- 11.1.3 安装模块 327
- 11.2 Perl模块功能详解 328
- 11.2.1 NetSNMP::ASN 328
- 11.2.2 NetSNMP::OID 329
- 11.2.3 AnyData::SNMP 330
- 11.2.4 NetSNMP::agent 330
- 11.2.5 SNMP 332
- 11.3 管理端应用框架 336
- 11.4 代理框架 337
- 11.5 实战—监控MySQL 339
- 11.5.1 MySQL信息查看:SHOW GLOBAL STATUS 340
- 11.5.2 自动生成MIB 341
- 11.5.3 代理实现 342
- 11.5.4 运行情况 348
- 11.6 小结 348
- 第三部分 高级篇
- 第12章 代理的重构与优化 352
- 12.1 为什么要重构 353
- 12.1.1 回顾代理开发的艰辛 353
- 12.1.2 维护代理的漫漫长路 354
- 12.2 代理重构简述 356
- 12.3 重构代理模板框架 358
- 12.3.1 分析代码框架 358
- 12.3.2 old-api框架重构实例 360
- 12.3.3 iterate框架重构方向 368
- 12.4 代理免维护思路 370
- 12.4.1 MIB自动化 370
- 12.4.2 深处探究 371
- 12.5 小结 373
- 第13章 mib2c晋级之自定义代码框架 374
- 13.1 mib2c配置文件语法 375
- 13.1.1 从例子开始 375
- 13.1.2 指令 376
- 13.1.3 变量 378
- 13.1.4 子程序 380
- 13.2 配置文件分析示例 380
- 13.2.1 生成h文件 381
- 13.2.2 生成c文件 382
- 13.3 定制配置文件实例—自定义代码框架 383
- 13.3.1 定制h文件配置文件 384
- 13.3.2 定制c文件配置文件 386
- 13.3.3 集成 388
- 13.4 小结 389
- 第14章 Net-SNMP代理开发高级技术集锦 390
- 14.1 代理高级功能 391
- 14.1.1 动态表 391
- 14.1.2 上下文 392
- 14.1.3 持久数据 395
- 14.1.4 数据同步 398
- 14.2 子代理 399
- 14.2.1 配置AgentX 401
- 14.2.2 开发子代理示例 402
- 14.2.3 编译与运行 404
- 14.2.4 分布式监控示例 405
- 14.3 动态加载模式 406
- 14.3.1 加载共享对象 407
- 14.3.2 开发共享对象示例 408
- 14.3.3 编译与运行 409
- 14.4 小结 409
- 第15章 代理测试与调试 410
- 15.1 代理测试方法与技术 411
- 15.1.1 使用MG Soft MIBbrowser测试 412
- 15.1.2 使用iReasoning测试 414
- 15.1.3 编写脚本测试 415
- 15.2 程序调试方法概述 416
- 15.3 Net-SNMP原生调试方法 417
- 15.3.1 token调试机制 417
- 15.3.2 日志 419
- 15.3.3 打印原始数据报 420
- 15.4 GDB调试方法与技术 421
- 15.4.1 调试前的准备 422
- 15.4.2 调试过程与指令 423
- 15.4.3 GDB脚本调试技术 432
- 15.5 辅助调试工具介绍 435
- 15.5.1 tcpdump 435
- 15.5.2 nm 438
- 15.5.3 objdump 441
- 15.5.4 strace 442
- 15.6 小结 446