基于SNMP协议发现网络中路由器、交换机和打印机的简单方法

在网络拓扑发现中,如何发现设备的类型。如果一个设备支持SNMP,就按照下面的步骤进行:

  路由器发现:

   决定一个设备是否是一个路由器,通过SNMP查询改设备中的MIB-II中的ipAddrEntry表,如果没有返回,就可以初步认定该设备不是路由器,继续通过其他操作,发现其是否其他设备。如果该设备有两个或者更多的接口,且ipForwarding节点被设置为1,就可以认定该设备是一个路由器。通过该路由器,而且可以发现其他的网段,就可通过该设备,继续查找其他网端的设备。

  交换机发现:

   一个设备支持SNMP以后,如果是交换机,应该实现Bridge-MIB,而且应该实现其中的几个主要节点,例如 

   1、 端口的数量节点。(.1.3.6.1.2.1.17.1.2.0 )

   2、从当前桥节点到根桥节点的路径值(.1.3.6.1.2.1.17.2.6.0)

   3、从点前桥节点到根桥节点的端口数量( .1.3.6.1.2.1.17.2.7.0)

  如果以上三点支持,可以把它认为是一个交换机。为了得到交换机的端口列表以及相关的属性,可以读取以下的值:

   1、 1.3.6.1.2.1.17.1.4.1.2.+ 端口值,得到接口索引值,该值定义在MIB-II,端口通信值。

   2、 .1.3.6.1.2.1.17.2.15.1.3.+ 端口值,得到端口的当前状态,也就是通过生成树协议来定义的。

   3、.1.3.6.1.2.1.2.2.1.5. 和 .1.3.6.1.2.1.2.2.1.2.得到接口的速度和索引。

   以上的信息可以作为端口对象以及相关的属性信息来查询,收集。

  打印机发现:

   一个支持SNMP的设备,如果是打印机,应该实现Printer-MIB,并且可以通过节点 .1.3.6.1.2.1.43.5.1.1.1.1得到端口数量的值。 如果支持这些,就可以认为该设备是一个打印机。

   打印机的属性应该包含: 

   1、.1.3.6.1.2.1.25.3.2.1.5.1,通过这个表中的每行得到当前的操作状态。

   2、.1.3.6.1.2.1.25.3.5.1.1.1,得到打印机的当前状态。

   3、。1.3.6.1.2.1.43.17.6.1.5 , 得到打印机的控制描述。

   4、.1.3.6.1.2.1.43.17.6.1.4, 得到打印机的控制颜色。

  当然可以通过其他的节点查找到更多的属性


转自:http://blog.csdn.net/shanzhizi/article/details/12620265

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SNMP Exporter 是一种基于 SNMP 协议的 Exporter,可以采集 SNMP 设备的各种指标。要采集路由器交换机的内存利用率以及 cpu 利用率,需要先确定设备上对应的 OID(Object ID),然后在 SNMP Exporter 的配置文件进行相应的配置。以下是一个简单的示例配置文件: ``` global: scrape_interval: 1m scrape_timeout: 10s scrape_configs: - job_name: 'snmp' scrape_interval: 30s static_configs: - targets: - router1.example.com - switch1.example.com metrics_path: /snmp params: module: [system,cpu,memory] relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: 10.0.0.1:9116 # SNMP Exporter 的地址 ``` 在该配置文件,我们定义了一个名为 `snmp` 的监控任务,定期采集路由器交换机的指标。`targets` 指定了要监控的设备地址,`params` 则指定了要采集的模块,包括 `system`、`cpu` 和 `memory`。在 `relabel_configs` ,我们使用了几个重写规则,将设备地址和采集参数加入到指标的标签。 在正确配置了 SNMP Exporter 的情况下,Prometheus 就可以通过 `snmp` 任务来采集设备的 cpu 利用率和内存利用率等指标了。你可以使用类似以下的 PromQL 查询语句来查询这些指标: ``` 100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) ``` 该语句可以计算出设备的 CPU 利用率。对于内存利用率,可以使用类似以下的语句: ``` (node_memory_MemTotal_bytes - node_memory_MemFree_bytes - node_memory_Buffers_bytes - node_memory_Cached_bytes) / node_memory_MemTotal_bytes * 100 ``` 该语句计算出设备的内存已使用的百分比。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值