首先编译的时候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

利用net-snmp读取windows,linux,snmp设备数据(cpu,内存,网卡)的更多相关文章

  1. 利用wireshark抓取远程linux上的数据包

    原文发表在我的博客主页,转载请注明出处. 前言 因为出差,前后准备总结了一周多,所以博客有所搁置.出差真是累人的活计,不过确实可以学习到很多东西,跟着老板学习做人,学习交流的技巧.入正题~ wires ...

  2. Linux 性能监控之CPU&内存&I/O监控Shell脚本2

    Linux 性能监控之CPU&内存&I/O监控Shell脚本2   by:授客 QQ:1033553122 思路: 捕获数据->停止捕获数据->提取数据 备注:一些命令的输 ...

  3. Linux 性能监控之CPU&内存&I/O监控Shell脚本1

    Linux 性能监控之CPU&内存&I/O监控Shell脚本1   by:授客 QQ:1033553122   #!/bin/bash # 获取要监控的本地服务器IP地址 IP=`if ...

  4. 【转】Linux 下取进程占用 cpu/内存 最高的前10个进程

    # Linux 下 取进程占用 cpu 最高的前10个进程ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head # linux 下 取进程占用内存 ...

  5. linux 下取进程占用 cpu/内存 最高的前10个进程

    linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合: ;|head linux下获取占用内存资源最多的10个进程,可以使用如下命令组合: ;|head 命令组合解析(针对CPU的,M ...

  6. 我的计划任务 --- 实现市电停电安全关闭群辉,Windows, Linux等设备

    有一次突然停电,我的群辉DS218+ 的一块硬盘出现故障了,让我担心我的数据安全,其实我是有UPS, 不是在线式的,然后就想如何实现停电自动关机呢? 经过半天的了解,其实群辉支持telnet协议,于是 ...

  7. 【编程开发】x86,I386,i686, x86_64, x64,amd64、Windows Linux AIX下查看CPU位数和操作系统位数、rpm包名

    a2ps-4.13b-57.2.el5.i386.rpm 每一个rpm包的名称都由"-"和"."分成了若干部分.就拿 a2ps-4.13b-57.2.el5.i ...

  8. 利用php unpack读取c struct的二进制数据,struct内存对齐引起的一些问题

    c语言代码 #include <stdio.h> struct test{ int a; unsigned char b; int c; }; int main(){ FILE *fp; ...

  9. Windows/Linux下查看系统CPU使用最高的线程

    参考:https://blog.csdn.net/qq_27818157/article/details/78688580 jstack -l 31372 > c:/31372.stack

  10. Linux SNMP 监控一些常用OID

    Linux SNMP 监控一些常用OID ===============linux服务器snmp常用oid http://www.haiyun.me/archives/linux-snmp-oid.h ...

随机推荐

  1. CF1523D Love-Hate

    抽象化题意: 一共有 \(m\) 个元素,给定 \(n\) 个集合,每个集合的元素不超过 \(15\) 个,求出一个元素个数最多的集合 \(S\) 是至少 \(\lceil \dfrac{n}{2} ...

  2. CodeFormer一款既能图像修复、还能视频增强去码的AI软件(下载介绍)

    CodeFormer是一款强大的人工智能工具,主要用于图像和视频的修复和增强.它基于深度学习技术,特别是人脸复原模型,可以轻松修复和增强面部图像,提升照片和视频的质量和视觉效果 工作原理 1.通过自动 ...

  3. 【资料分享】全志科技T507工业核心板硬件说明书(上)

    目    录 前言 1硬件资源 1.1CPU 1.2ROM 1.3RAM 1.4时钟系统 1.5电源 1.6LED 1.7外设资源 2引脚说明 2.1引脚排列 2.2引脚定义 2.3内部引脚使用说明 ...

  4. 全国产!全志T3+Logos FPGA开发板(4核ARM Cortex-A7)规格书

    评估板简介 创龙科技TLT3F-EVM是一款基于全志科技T3四核ARM Cortex-A7 + 紫光同创Logos PGL25G/PGL50G FPGA设计的异构多核国产工业评估板,ARM Corte ...

  5. Unity中自定义应用程序打开Assets目录下指定类型的文件

    在Unity使用VS2017打开unityShader文件时总提示错误: 我也一直没找啥原因,shader文件直接使用VSCode打开,当然其他类型的文件也可这样处理用相应的exe打开,如:pdf,t ...

  6. MFC基于对话框工程笔记->新建MFC对话框

    一.前言 最近用MFC做了一个对话框小工具,学到了很多知识,现在做一下总结,以作备忘.(如有不足,后期添加修改) 二.MFC使用->新建MFC对话框 操作环境:VS2010 主要使用语言:C.C ...

  7. Vue 组件间通信有哪几种方式?

    父子通信 (1)父组件向子组件传值props <button-counter :title="send"></button-counter> Vue.com ...

  8. 可能是全网最适合入门的面向对象编程教程:Python实现-嵌入式爱好者必看!

    前言 对于嵌入式入门的同学来说,往往会遇到设备端处理能力不足.在面对大规模计算情况下需要借助上位机完成进一步的数据处理的情况.此时,Python 语言因其简单易用的特点和丰富多样的库成为了我们做上位机 ...

  9. 通俗讲解promise

        JavaScript 中的 Promise 是一种特殊的对象,它用于解决异步编程中的复杂性问题,特别是回调的问题.我们可以把它比喻成现实生活中的一个"承诺": 想象一下,你 ...

  10. [oeasy]python0051_ 转义_escape_字符_character_单引号_双引号_反引号_ 退格键

    转义字符 回忆上次内容 上次研究的是进制转化 10进制可以转化为其他形式 bin oct hex 其他进制也可以转化为10进制 int 可以设置base来决定转为多少进制 回忆一下 我们为什么会有八进 ...