利用net-snmp读取windows,linux,snmp设备数据(cpu,内存,网卡)

首先编译的时候configure参数加上--with-mib-modules='ucd-snmp/diskio ip-mib/ipv4InterfaceTable'

默认的配置没有这些模块,需要加上

make;make install后,使用命令net-snmp-config --snmpconfpath查看配置文件的目录

然后修改snmp.conf,添加 mibs +ALL

修改snmpd.conf,在rocommunity public default -V systemonly,把 -V systemonly去掉。这是设置权限,去掉后为能访问全部

假设community为public

 

snmpwalk -v 2c -c public localhost

这时应该会出来好多好多信息

以下是Linux下一些常用的OID 

CPU的 

Load 
1 minute Load: .1.3.6.1.4.1.2021.10.1.3.1 
5 minute Load: .1.3.6.1.4.1.2021.10.1.3.2 
15 minute Load: .1.3.6.1.4.1.2021.10.1.3.3 

CPU 
percentage of user CPU time: .1.3.6.1.4.1.2021.11.9.0 
raw user cpu time: .1.3.6.1.4.1.2021.11.50.0 
percentages of system CPU time: .1.3.6.1.4.1.2021.11.10.0 
raw system cpu time: .1.3.6.1.4.1.2021.11.52.0 
percentages of idle CPU time: .1.3.6.1.4.1.2021.11.11.0 
raw idle cpu time: .1.3.6.1.4.1.2021.11.53.0 
raw nice cpu time: .1.3.6.1.4.1.2021.11.51.0 

 

内存的 
Total Swap Size: .1.3.6.1.4.1.2021.4.3.0 
Available Swap Space: .1.3.6.1.4.1.2021.4.4.0 
Total RAM in machine: .1.3.6.1.4.1.2021.4.5.0 
Total RAM used: .1.3.6.1.4.1.2021.4.6.0 
Total RAM Free: .1.3.6.1.4.1.2021.4.11.0 
Total RAM Shared: .1.3.6.1.4.1.2021.4.13.0 
Total RAM Buffered: .1.3.6.1.4.1.2021.4.14.0 

Total Cached Memory: .1.3.6.1.4.1.2021.4.15.0 

 

硬盘的

The snmpd.conf needs to be edited. Add the following (assuming a machine with a single ‘/’ partition): 

disk / 100000 (or) 

includeAllDisks 10% for all partitions and disks 

The OIDs are as follows 

Path where the disk is mounted: .1.3.6.1.4.1.2021.9.1.2.1 
Path of the device for the partition: .1.3.6.1.4.1.2021.9.1.3.1 
Total size of the disk/partion (kBytes): .1.3.6.1.4.1.2021.9.1.6.1 
Available space on the disk: .1.3.6.1.4.1.2021.9.1.7.1 
Used space on the disk: .1.3.6.1.4.1.2021.9.1.8.1 
Percentage of space used on disk: .1.3.6.1.4.1.2021.9.1.9.1 

Percentage of inodes used on disk: .1.3.6.1.4.1.2021.9.1.10.1 

 

以下是windows下常用的OID

CPU

.1.3.6.1.2.1.25.3.3.1.2

如果有一个双核cpu则有2个值,显示当前负载

 

内存,硬盘

内存跟硬盘都统一在mib2.host.hrStorage里 1.3.6.1.2.1.25.2

hrStorageType节点,hrStorageFixedDisk表示硬盘,hrStorageVirtualMemory是虚拟内存,hrStorageRam是内存

根据id号查:

hrStorageAllocationUnits是簇的大小

hrStorageSize是有多少簇,两者想乘就是总容量

hrStorageUsed是已使用多少,跟总容量相除就是占用率

 

系统运行时间

System Uptime: .1.3.6.1.2.1.1.3.0 

注:linux系统的话也可直接用uptime命令获得

 

网络设备的

ifIndex         1.3.6.1.2.1.2.2.1.1.0        端口索引号

ifDescr        1.3.6.1.2.1.2.2.1.2.0        端口描述

ifType        1.3.6.1.2.1.2.2.1.3.0        端口类型

ifMtu        1.3.6.1.2.1.2.2.1.4.0         最大传输包字节数

ifSpeed        1.3.6.1.2.1.2.2.1.5.0         端口速度

ifPhysAddress        1.3.6.1.2.1.2.2.1.6.0        物理地址

ifOperStatus        1.3.6.1.2.1.2.2.1.8.0        操作状态

ifLastChange        1.3.6.1.2.1.2.2.1.9.0        上次状态更新时间

ifInOctets        1.3.6.1.2.1.2.2.1.10.0         输入字节数

ifInUcastPkts        1.3.6.1.2.1.2.2.1.11.0         输入非广播包数

ifInNUcastPkts        1.3.6.1.2.1.2.2.1.12.0         输入广播包数

ifInDiscards        1.3.6.1.2.1.2.2.1.13.0         输入包丢弃数

ifInErrors        1.3.6.1.2.1.2.2.1.14.0         输入包错误数

ifInUnknownProtos        1.3.6.1.2.1.2.2.1.15.0        输入未知协议包数

ifOutOctets        1.3.6.1.2.1.2.2.1.16.0         输出字节数

ifOutUcastPkts        1.3.6.1.2.1.2.2.1.17.0         输出非广播包数

ifOutNUcastPkts        1.3.6.1.2.1.2.2.1.18.0        输出广播包数

ifOutDiscards        1.3.6.1.2.1.2.2.1.19.0         输出包丢弃数

ifOutErrors         1.3.6.1.2.1.2.2.1.20.0         输出包错误数

ifOutQLen        1.3.6.1.2.1.2.2.1.21.0         输出队长

流量输出的是计数器,单位是byte,32位

 

如果流量过大出现统计不正确的情况,就需要编译时加上enable-mfd-rewrites参数,来支持64位的计数器

转自:https://my.oschina.net/yisenn/blog/14626

其他相关链接:http://www.0x55aa.com/linux/1216.html

posted @ 2020-03-23 16:18  老虎死了还有狼  阅读(1808)  评论(0编辑  收藏  举报