Netgraphp 是一个 php 脚本,它使用 LLDP 信息遍历网络中的 SNMP 服务器,并生成网络中不同主机和连接的图形映射。该图是使用 graphviz 点语法生成的,graphviz 可用于生成不同的文件格式,如 .png 或 .eps。要识别的所有连接都必须在两端都支持 LLDP,并且至少在一端支持 SNMP。大多数高端交换机都内置了对 SNMP 和 LLDP 的支持。计算机主机需要像
lldpd
这样的东西 和一个 SNMP 服务器,而 SNMP 服务器需要提供 .1.0.8802.1.1.2.1 LLDP 信息。
执照
Netgraphp 是根据 GNU GENERAL PUBLIC LICENSE (GPL) 的条款发布的。
文档
netgraphp 中还包含包含此信息的 README 文件。
使用示例
netgraph -h
显示一些帮助
netgraphp some.host.in.my.net > /tmp/my_net.dot
创建一个 graphviz 点文件。
netgraphp -c my_secret_snmp_community some.host.in.net > /tmp/net.dot
使用自定义 SNMP 社区来遍历您的网络。
netgraphp my_switch.net | dot -Tpng -o /tmp/my_net.png
使用 graphviz dot 创建一个 png 文件。如果您在命令行上将开关作为命令提供,则网络拓扑可能看起来最好。
netgraphp my_switch.net | dot -Tpng -Gdpi=75 -o /tmp/my_net.png
创建一个稍小的 png 文件。
netgraphp -d switch1.net switch2.net | dot -Tpdf -o /tmp/my_net.pdf
从主机名中剥离域名并使用 graphviz dot 创建一个 .pdf 文件。
netgraphp -t 2000000 my_switch.net | dot -Teps -o /tmp/my_net.eps
对于慢速网络,将 SNMP 超时增加到 2 秒,并使用点创建 eps。
依赖关系
-
使用
SNMP
支持编译的
PHP
-
Graphviz
-
具有
LLDP
和
SNMP v2c 的
网络设备
安装
- 调整php路径
-
由于 netgraphp 是一个 php 脚本,因此不需要编译。但是,要运行 netgraphp,您需要安装 php,并且可能需要修改文件 netgraphp 的第一行,使该行指向您的 php 二进制文件。您可能需要编辑的行如下所示:
#!/usr/bin/php
- 复制目录结构
- 应该将整个目录结构复制到您喜欢的某个位置。重要的是过滤器目录位于 netgraphp 文件旁边,README 和 COPYING 文件对于功能并不重要,但保留以供参考可能很好。
- 在登录文件中调整PATH
- 除非您想像 /my/preferred/path/netgraphp switch1 host2 -c my_community1 -c other_community 一样提供 netgraphp 脚本的完整路径,否则将安装目录添加到您的路径中。这是如何完成的取决于你的 shell,但如果你是一个高级用户,看到这个工具的使用,你可能也知道如何修改你的 PATH 🙂
常问问题
问: | 为什么我在生成的图像中看不到我的主机 X? |
---|---|
A: |
要显示,X 和网线另一端的设备都必须支持 LLDP。此外,至少有一个设备需要通过 SNMP 提供 LLDP 信息,并且该 SNMP 服务器必须作为命令行的参数或通过遍历其他提供 SNMP 信息的 SNMP 服务器找到。只有在可以解析 LLDP 提供的 SysName 时,才能成功遍历 SNMP 服务器。
|
问: | 为什么我的其中一台设备在图表中标记为灰色? |
A: |
该设备确实支持 LLDP,但没有提供任何 SNMP 信息,有关该设备的所有信息均由其邻居提供。这也意味着当 SNMP 遍历停止时,该设备之外的其他设备可能会被隐藏。
|
问: | 为什么我的网络连接之一没有显示链接速度。 |
A: | 该网络链接的两端确实提供了有关链接速度的 SNMP 信息,但它们提供的速度不同。因为这些给定的速度中至少有一个肯定是错误的,我们不想冒出现任何错误结果的风险。 |
变更日志
从变更日志:
日期 版本 注释 ------------------------------------------------------------------------------ 29/8 2020 1.0.0 第一个稳定版本 在没有 SysDescr 的情况下避免来自 LLDP 消息的错误 试图显示 Win10 机器,即使它们的 LLDP 消息已损坏 合勤开关的实验鉴定 修复了某些缺少 lldp 的机器的“未知操作系统” 修复了从 snmp 检测损坏的 mac 地址的错误 28/1 2017 0.9.0beta 首次公开发布 |
一切
- 为更多网络设备添加过滤器
生成图像的例子
小家庭网络
更大的网络
这个相当大的图像
(4155×6706 像素)是由它自己的链接提供的,除非您的网络浏览器在显示大图像时能够放大和缩小,否则您可能会发现该链接没有用。
下载
当前稳定版本
当前稳定版本为 1.0.0 版,可从
SourceForge 下载
。
netgraphp-1.0.0.tar.gz 的 md5sum 为 628571e7b8f845f9e26a1f8f1d5fc72d
之前的版本
发布版本 0.9.0beta 可从
SourceForge 下载
。
netgraphp-0.9.0beta.tar.gz 的 md5sum 是 c62bacab88806b765cf3c94da0bda231
可以使用以下 subversion 命令获取最新的开发文件:
svn 结帐 svn://svn.code.sf.net/p/netgraphp/code/trunk netgraphp-code