发表于2024-12-23
Net-SNMP领域的著作,国内专家撰写,从工程师视角,以Net-SNMP新稳定版本为蓝本,以实际项目为依托,系统讲解了它的管理、开发和维护
4种开发语言,5个综合型的案例,完整呈现网络监控部署、代理端、管理端软件的开发过程,提供多个可复用框架及其源代码;重点讲解框架的重构优化、自定义代码模板和免维护开发实践
随着二十世纪八九十年代计算机网络的兴起,网络管理需求开始变得迫切。在网络管理历史的演进中,卡耐基梅隆大学(Carnegie Mellon University)的网络管理套件CMU-SNMP经加州大学戴维斯分校(University of California Davis)开发人员的改进和完善,逐渐发展壮大并最终成为著名的网络管理套件Net-SNMP。Net-SNMP是简单网络管理协议SNMP的开源实现,几乎是所有类UNIX发行版的SNMP标准实现,同样也是大量的电信网络设备(路由器、交换机等)的SNMP实现。Net-SNMP除了可集成现下流行的网络管理软件,如Cacti、Nagois、Zabbix等监控网络管理中的标准库外,还可以二次开发实现网络设备中自定义的监控量!如今,移动终端智能设备大行其道,或许不久的将来,我们可以在移动终端上通过Net-SNMP实现远端设备的监控和管理。
作为国内一本讲述Net-SNMP开发和应用的书籍,荟萃了前辈们多年的开发和应用经验。书中以一线软件开发工程师的视角和言语展开,提供了传统IT企业软件开发项目的实践方法、技术选型、流程以及相关开发技术,注重实战。书中从网络管理概念开始,到MIB的开发设计,再到使用Net-SNMP开发网络管理应用,深入解读了使用Net-SNMP开发网络管理应用的整套流程和方法,包括代理端和管理端开发,涉及网络管理安全、集群监控、分布式监控;实现了由网络管理理论到实践的落地,同时书中提供了多个项目的代码,参考意义非常大。
更多精彩,点击进入品牌店查阅>>
近年来,Net-SNMP的应用越来越深入,越来越普及,Net-SNMP本身也越来越强大,与之伴随的,它的使用方法也越来越复杂。目前,国内Net-SNMP方面的图书奇缺,本书应该是目前该领域技术版本新、内容系统、讲解深入和具有实战性的著作。作者是前中兴通讯的Linux软件开发工程师,有多年的Net-SNMP相关开发经验,是国内Net-SNMP专家之一。
《深入理解Net-SNMP》从工程师视角,以实际项目为依托,系统讲解了Net-SNMP的管理、开发和维护。本书尤为注重实践,通过Net-SNMP支持的4种开发语言、5个综合型的案例,完整呈现网络监控部署、代理端、管理端软件的开发过程,提供多个可复用框架及其源代码,同时重点讲解了框架的重构优化、自定义代码模板和免维护开发实践。
《深入理解Net-SNMP》分为三大部分,深刻解读了使用Net-SNMP开发网络监控应用程序的方法和技巧,适用于服务器、嵌入式设备等网络互联设备的监控。
基础篇(第1~6章) 详细介绍了网络管理的基础知识和协议数据包分析方法,重点是MIB的深刻解读;涵盖SNMP协议框架的几大基础组件:MIB的语法基础ASN.1、管理信息结构SMI和管理信息库MIB。最后,详细介绍了Net-SNMP套件中提供的工具集、开发模式等。
实战篇(第7~11章) 这是本书的重点,首先详细解读了Net-SNMP的配置选项,提供了结合其他开源软件部署企业级的监控系统的详细过程。接着详述了基于Net-SNMP中的C语言API、Python绑定、Perl绑定进行代理端和管理端软件开发的方法,包括利用3种语言开发4种不同的应用。由于开发模式和语言固定,这里介绍的都是可直接复用的框架。
高级篇(第12~15章) 是实战篇的延续和升华,主要内容包括:重构优化代理开发框架,实现高效开发和轻维护;子代理和动态加载模式,实现分布式监控;测试调试Net-SNMP的方法,GDB等工具调试网络协议的技巧。
书中涉及大量的Linux软件开发技术和多种开发语言的项目实践,这些同样值得学习。
??
张春强,国内顶尖Net-SNMP专家,从事Linux开发多年。现就职于世界500强企业,担任高级软件工程师一职,曾就职于中兴通讯。有多款网络协议应用软件开发经验,在中兴通讯深圳研发中心工作期间,担任Linux软件开发工程师,参与过基站电源网络监控系统的研发,该系统部署在全球中兴基站设备中,用于保障持续可靠的电信服务。精通Linux网络编程技术,实践经验丰富。
前 言
第一部分 基础篇
第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 conf?igure详解 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
为什么要写这本书前些年,我所在的项目组开发了一款嵌入式产品,与国内外同类产品相比,我们的产品支持SNMP(Simple Network Management Protocol,简单网络管理协议),可对系统进行监控、管理,发现问题时会主动告警,这是我们产品的一大卖点,同时也是一个亮点。
为了在挑剔的运营商中取得竞争优势,在项目正式开始之前项目组就确定了一个目标——必须实现SNMP功能!但是这时却出现了这样的场景:
“你会SNMP吗?”
“不会……”
“你呢?”
“没做过……”
项目组所有人员在回答会不会SNMP时都没有了工科人对技术的自信!在亚马逊等站点搜索相关的图书后,更是没有了底气,因为这方面的资料如此之少,而需求又如此迫切!于是我决定自学SNMP和与SNMP开发相关的内容。
SNMP是基于TCP/IP网络技术的网络管理协议,于1988年发布了第一份RFC文档,之后逐渐发展和完善,并成为Internet协议簇的一部分。Net-SNMP则是SNMP的开源实现。它的前身是卡内基梅隆大学的CMU-SNMP,在1995年重命名为UCD-SNMP,于2000年再次更名为Net-SNMP并一直沿用至今。我们知道,SNMP有着“简单”的本质,而Net-SNMP则具有完善的功能和良好的特性,同时它还可以集成到一些大型免费或开源的监控类软件(如Nagois、Zabbix、OpenNMS)中配合使用,所以不论从常规的系统指标(如CPU、内存、磁盘、网络、硬件),还是诸如日志、自开发设备的监控量,Net-SNMP都可以帮到大家,从而使得Net-SNMP几乎成为所有的类UNIX发行版本中SNMP的标准实现。这正是项目组采用Net-SNMP实现SNMP监控需求的主要原因。国内外大量的网络设备(如路由器、交换机)都支持SNMP协议,并作为一项标配。不论是监控嵌入式设备还是复杂的集群系统,有着天然分布式特性的Net-SNMP都是非常好的选择。如今,移动终端智能设备大行其道,或许在不久的将来,你可以在移动终端上通过Net-SNMP实现对周围设备的监控和管理。
Net-SNMP还在不断发展,基于Net-SNMP的开源库日益火热、支持的API种类日益众多,已逐渐发展出了像LuaSNMP这样独立开发的方式,支持或配合使用C/C++、Shell、Perl、Python等语言的开发模式;既支持代理端开发、管理端开发,也支持Trap开发。再看看开源社区计划中的“To Do list”功能项,真让人激动不已!Net-SNMP作为早期的开源项目之一,其中的软件编码技术、Linux系统构建技术都是开源中的典范,值得每一位软件工程师学习,因为它们永远也不过时。
深入理解Net-SNMP 下载 mobi pdf epub txt 电子书 格式 2024
深入理解Net-SNMP 下载 mobi epub pdf 电子书很好
评分讲解的很全面,难度适中
评分很好的一本书,正好是我需要的
评分盼了好久,终于降价买到手了,印刷不错,值
评分老实说书很一般,对于入门者来说,看看能了解一些知识点,仅仅是了解而已。可以省去你收集查看英文资料的时间。想深入了解些实现细节,想知道how do的人来说,本书显然不怎么合适,因为都只提到了皮毛而已,点到为止没有深入。
评分工具书,看用得上不
评分好书好书,好吧,我是乱说的。
评分快递员辛苦
评分讲的很一般,书的质量比盗版都不如,都没切割开
深入理解Net-SNMP mobi epub pdf txt 电子书 格式下载 2024