将自定义 SNMP MIB 与 Cacti 一起使用
作为一名在 IT 基础设施监控方面预算有限的当地政府雇员,我(和其他员工)尽可能依赖低成本、免费和开源的工具来提供网络监控和基础设施报告解决方案。 我们最近能够利用带有 Cacti 的第三方 MIB 库来收集一些关于我们的防火墙的有趣统计数据,而且对于所获得的价值来说,这样做非常容易。 入门指南:我正在为 Cacti 编写本指南,但您可以_最有可能_为您的网络监控工具使用相同的技术,即使它是付费解
作为一名在 IT 基础设施监控方面预算有限的当地政府雇员,我(和其他员工)尽可能依赖低成本、免费和开源的工具来提供网络监控和基础设施报告解决方案。
我们最近能够利用带有 Cacti 的第三方 MIB 库来收集一些关于我们的防火墙的有趣统计数据,而且对于所获得的价值来说,这样做非常容易。
入门指南:我正在为 Cacti 编写本指南,但您可以_最有可能_为您的网络监控工具使用相同的技术,即使它是付费解决方案。此外,感谢Palo Alto Networks免费提供他们的 MIB 库,但请稍微搜索一下您选择的供应商,看看他们提供什么。最后,如果您想使用 Cacti 启动并运行,那么操作方法很容易获得。因此,让我们开始吧!
在我们的场景中,我们希望跟踪与我们的 VPN 网关的并发 VPN 连接的数量,并将该数据提供给管理层以用于使用、扩展和节省成本的目的。开箱即用,这很难做到;网关的内置 Web 管理工具不显示此统计信息。然而,一点互联网调查显示供应商_确实_有一个 SNMP MIB 包来监控这个数据点。
https://docs.paloaltonetworks.com/globalprotect/7-1/globalprotect-admin/set-up-the-globalprotect-infrastructure/globalprotect-mib-support#
备份一分钟 - SNMP 是简单网络管理协议。 SNMP 收集器可以通过运行“轮询”并在(至少)社区字符串(基本上是密码)上进行身份验证(希望如此)来从设备(目标)收集统计信息。
MIB 或管理信息库是称为 OID 或对象标识符的 SNMP 可轮询对象的分层数据库。 OID 是您尝试收集的数据。通常,OID 提供有关接口上使用的带宽之类的数据。当您定期在目标上运行轮询器时(通常为 5 分钟),您可以将结果绘制在图表上。
[](https://res.cloudinary.com/practicaldev/image/fetch/s--54C0rlon--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws .com/i/nptzkgw7didanzvxb7i.png)
MIB 有一些标准化,大多数 SNMP 收集器将预先安装通常的可疑对象,以方便收集接口统计信息、温度、处理器/内存利用率等信息。如果没有供应商同意使用标准 MIB,SNMP 的用处将大大降低;大多数收藏家开箱即用。在我们的案例中,我们正在寻找供应商提供的增强功能来监控他们的专有解决方案。
所以回到仙人掌。 Cacti 的工作原理是为几个底层进程集成一个 Web 界面,使一个普通的 Linux VM 成为一个强大的 SNMP 收集器,但“轮询器”是snmpd
。在 CentOS 中,您可以在/usr/share/snmp/mibs
中安装自定义 MIB - 对于我们使用的供应商 (Palo Alto)wget
下载并解压压缩的 MIB 文件到mibs
文件夹。请注意,它们还包括相关的校验和,但其他供应商可能没有,也不是必需的。
[](https://res.cloudinary.com/practicaldev/image/fetch/s--PTBbNNhZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws .com/i/1w3di1hgkpb1tgy4cj8c.png)
现在我们有了 MIB,我们需要告诉snmpd
在进行投票时寻找它们。为此,我们向上到/usr/share/snmp
并创建一个名为snmp.conf
的文件并添加 MIB 文件,一次一行。在我们的例子中, GlobalProtect VPN 会话整数是PAN-COMMON-MIB
, 所以我们添加到snmp.conf
是一行 - 不需要重新启动守护程序。
mibs +PAN-COMMON-MIB
注意:还有一种方法可以同时添加所有 MIB 文件,但snmpd
的文档并未明确推荐这样做。
现在我们的 MIB 文件已加载,我们转到供应商的文档以找出与我们要收集的数据相对应的 OID。为了跟踪这些 VPN 会话,OID 是 1.3.6.1.4.1.25461.2.1.2.5.1.3,并且 MIB 定义了一个后缀(请参阅您的供应商的文档,这将是有意义的)0,因此为了收集我们的数据,我们使用 1.3.6.1.4.1.25461.2.1.2.5.1.3.0。
为了在生产前对此进行测试,我们可以使用这种格式的snmpget
命令,假设您使用的是 SNMP 版本 2(并且如果您没有运行_至少_版本 2,您会遇到问题):
snmpget -v2c -c $your_community_string $target.ip $OID
该命令立即轮询目标,并希望返回您的数据点。
PAN-COMMON-MIB::panGPGWUtilizationActiveTunnels.0 = INTEGER: 1197
从这里,我们可以在 Cacti 中创建我们的自定义轮询器。我们已经开始使用“通用 OID”模板创建一个新图表,并将我们刚刚测试的 OID 放入“自定义数据”字段,同时提供适当的标签。
[](https://res.cloudinary.com/practicaldev/image/fetch/s--GLBaPVDE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws .com/i/kbezpcys853dxdd40myx.png)
我们后来将“Generic OID”模板克隆到一个始终使用这个 OID 的新模板,这样我们就可以减少创建新图形的手动操作。在此处查看您选择的 SNMP 收集器的文档以获取相关操作方法。
我们现在有一个图表,显示了我们的云网关的 VPN 会话总数,可随时访问和跟踪:
[](https://res.cloudinary.com/practicaldev/image/fetch/s--MJljO1Q---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3。 amazonaws.com/i/838cm95kyabr6vqvayou.png)
概括
-
SNMP 是一种协议,可用于收集目标设备上的数据。它使用按层次分类到管理信息库 (MIB) 中的对象标识符 (OID) 来获取准确的数据。
-
存在许多优秀的付费 SNMP 收集器,但可以使用 Cacti 等开源工具在任何预算内完成准确的收集和报告。
-
如果您想要进行轮询/绘制图表,请咨询您的供应商。他们通常有免费的自定义 MIB 文件供您使用。 如果它是一个数值,它可能可以使用 SNMP 收集。
-
在 Linux 中,MIB 通常存储在
/usr/share/snmp/mibs
中 -
在生产中使用之前,您可以使用
snmpget
命令测试自定义 MIB/OID 的功能。 (另外,查看snmpwalk
命令)
保持冷静并监控!
更多推荐
所有评论(0)