浅谈 Linux 系统中的 SNMP Trap

转载: http://www.ibm.com/developerworks/cn/linux/l-cn-snmp/

本文讲解 SNMP Trap,在介绍 Trap 概念之前,首先认识一下 SNMP 吧。

简单网络管理协议(Simple Network Management Protocol)是一种应用层协议,是TCP/IP协议族的一部分。它使网络设备之间能够方便地交换管理信息。能够让网络管理员管理网络的性能,发现和解决网络问题及进行网络的扩充。

目前SNMP已成为网络管理领域中事实上的工业标准,并被广泛支持和应用,大多数网络管理系统和平台都是基于SNMP的。

SNMP 管理控制框架

简而言之,SNMP 协议是用来管理设备的协议,何谓管理呢?我斗胆将其归纳为两个基本点:监控(get)和配置(set)。也就是说:人们管理一个设备的基本手段可以归纳为 get 和 set 两种操作。如图 1 所示。

图 1. SNMP 基本管理控制框架

如果 NMS( 网管系统 ) 需要查询被管理设备的状态,则需要通过 SNMP 的 get 操作获得设备的状态信息;同样,如果 NMS 需要修改或者配置被管理设备的参数,则需要通过 SNMP 的 set 操作来完成。

什么是 MIB?

MIB 是描述被管理设备上的参数的数据结构。如前所述,管理一个设备,就是利用 SNMP 协议,通过网络对被管理设备上的参数进行 get 和 set 操作。

那么如何组织被管理设备上的参数呢?多数情况下,可以 get 和 set 的参数实在多得惊人,假如仅仅简单地线性罗列它们,操作会十分不便。想象一下把 1000 个参数列成一张表,需要使用的时候查询这样一张表会有多么困难啊?比如您打算在地球上找一个城市,”Ithaca”,如果没有归类和分级,则需要查找一张巨大的表格。但如果告诉您城市” Ithaca”是:南美洲国家圭亚那的北部城市"Ithaca",那么就容易些了吧?

被管理的设备相当复杂,拥有很多可以被管理的参数,需要对它们进行归类,分级。管理信息库 (MIB) 是一个具有分层特性的信息的集合,我们可以通过 SNMP 去存取它。MIB 的成员是一些被管理的对象 (Managed Object),以对象标示符 (Object Identifiers) 来区分它们。被管理的对象由一个或多个对象实例 (Object Instances) 组成,本质上,这些对象实例就是变量。

在 MIB 的层次结构中,一个对象标示符唯一标识了被管理对象。MIB 的层次结构可以被描述成无根名的树,树的级别被不同的组织所划分。如下图所示:

图 2. MIB 树

很多能够被 SNMP 管理的对象都是由标准组织定义好的。比如系统磁盘的信息,用 OID ”1.3.6.1.4.1.2021.9” 表示。这串数字是国际标准化组织协商定义好的,大家都要去遵循它。当然,国际组织不可能预知未来,如果您要开发的设备有一些管理需求没有任何 RFC 定义过,那么您也可以编写自己的 MIB 文件来定义私有的 MIB 对象。

什么是 SNMP Trap

前面介绍的 get/set 操作都是从 NMS 发送到被管理设备的。但有时候,能够从被管理设备主动发送信息到 NMS 也是非常必要的。

SNMP Trap 是 SNMP 的一部分,当被监控段出现特定事件,可能是性能问题,甚至是网络设备接口宕掉等,代理端会给管理站发告警事件。假如在特定事件出现的时刻,不是由 Agent 主动通知 NMS,那么 NMS 必须不断地对 Agent 进行轮询。这是非常浪费计算资源的方法,正如人们用中断通知 CPU 数据的到达,而不是让 CPU 进行轮询一样。Trap 通知是更加合理的选择。

用一句话来说的话,SNMP Trap 就是被管理设备主动发送消息给 NMS 的一种机制。这是本文主要关注的话题。

NET-SNMP 简介

在 Linux 系统中,我们可以选择 net-snmp 来处理绝大多数和 SNMP 相关的工作。

NET-SNMP 是一种开放源代码的 SNMP 协议实现。它支持 SNMP v1, SNMP v2c 与 SNMP v3,并可以使用 IPV4 及 IPV6 。也包含 SNMP Trap 的所有相关实现。Net-snmp 包含了 snmp 实用程序集和完整的 snmp 开发库。

用户使用 net-snmp 提供的工具,可以完成很多关于 SNMP 的操作,具体说来,包括以下一些命令行应用程序:

一些应用程序可以用来从支持 SNMP 的设备获得数据。其中 snmpget, snmpgetnext 可以支持独立请求,比如:

1
2
% snmpget -v 1 -c demopublic test.net-snmp.org system.sysUpTime.0
system.sysUpTime.0 = Timeticks: (586731977) 67 days, 21:48:39.77

该命令获得单个独立的 MIB 对象 system.sysUpTime.0 的值。

而 snmpwalk, snmptable, snmpdelta 则用来支持重复请求。

1
2
3
4
5
6
% snmpwalk -v 2c -c demopublic test.net-snmp.org system
SNMPv2-MIB::sysDescr.0 = HP-UX net-snmp B.10.20 A 9000/715
SNMPv2-MIB::sysObjectID.0 = OID: enterprises.ucdavis.ucdSnmpAgent.hpux10
SNMPv2-MIB::sysUpTime.0 = Timeticks: (586998396) 67 days, 22:33:03.96
SNMPv2-MIB::sysContact.0 = Wes Hardaker wjhardaker@ucdavis.edu
SNMPv2-MIB::sysName.0 = net-snmp

上面的命令返回所有 system 节点以下的 MIB 对象的值。

命令 snmpset 对支持 SNMP 的设备配置属性。如下例所示:

1
2
3
4
5
6
$ snmpget -v 1 -c demopublic test.net-snmp.org ucdDemoPublicString.0
  UCD-DEMO-MIB::ucdDemoPublicString.0 = "hi there!"
$ snmpset -v 1 -c demopublic test.net-snmp.org ucdDemoPublicString.0 s "Hello, world!"
  UCD-DEMO-MIB::ucdDemoPublicString.0 = "Hello, world!"
$ snmpget -v 1 -c demopublic test.net-snmp.org ucdDemoPublicString.0
  UCD-DEMO-MIB::ucdDemoPublicString.0 = "Hello, world!"

命令 snmpdf, snmpnetstat, snmpstatus 可以从支持 SNMP 的设备获取特定的信息。比如下面的命令从目标系统上获得类似 netstat 的信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
% snmpnetstat -v 2c -c public -a testhost
Active Internet (tcp) Connections (including servers)
Proto Local Address Foreign Address           (state)
tcp   *.echo         *.*                      LISTEN
tcp   *.discard      *.*                      LISTEN
tcp   *.daytime      *.*                      LISTEN
tcp   *.chargen      *.*                      LISTEN
tcp   *.ftp          *.*                      LISTEN
tcp   *.telnet       *.*                      LISTEN
tcp   *.smtp         *.*                      LISTEN
Active Internet (udp) Connections
Proto Local Address
udp    *.echo
udp    *.discard
udp    *.daytime
udp    *.chargen
udp    *.time

snmptranslate 命令将 MIB OIDs 的两种表现形式 ( 数字及文字 ) 相互转换。并显示 MIB 的内容与结构,如下所示:

1
2
3
4
% snmptranslate .1.3.6.1.2.1.1.3.0
     SNMPv2-MIB::sysUpTime.0
% snmptranslate -On SNMPv2-MIB::sysUpTime.0
     .1.3.6.1.2.1.1.3.0

Net-snmp 还提供了一个基于 Tk/perl 的,图形化的 MIB 浏览器 tkmib。

图 2. Tkmib 界面

Net-snmp 还提供了接收 SNMP traps 的守护程序 snmptrapd。可以将选定的 SNMP 消息记录到系统日志 syslog,NT 事件日志,或者文本文件中。或是转发到其它的 SNMP 管理程序 , 也可以传给外部的应用程序。本文的后面我们将用它来演示 SNMP Trap 的收发。

Net-snmp 还提供了一个回应 SNMP 查询的客户端 snmpd. 它集成了大量 SNMP 的模块 . 并可通过动态链接库 , 外部脚本与命令 , 多路 SNMP 技术 (SMUX), 以及可扩客户端协议 (AgentX) 进行扩展 .

此外,net-snmp 还包含了用来开发 SNMP 应用程序的程序库。支持 C 与 perl 的 APIs。因此您可以使用 net-snmp 的工具集完成一些关于 SNMP 的工作,也可以依赖 net-snmp 提供的开发包自己写程序开发您所需要的 snmp 应用。

NET-SNMP 的安装

不同的 Linux 发行版有不同的包管理机制,因此在这里,我打算写下从源代码安装 net-snmp 的过程,适用于各种 Linux 发行版。

到 sourceforge网站下载适合的 net-snmp 版本,解压。

执行文件目录下的 configure 可执行文件,如果想指定程序包的安装路径,那么您首先建立相应的文件夹来存放安装信息,您可以写成 ./configure --prefix= 您指定的路径名。参数 --prefix 用来告诉系统安装信息存放的路径,如果您没有指定路径,直接执行 ./configure,那么程序包都会安装在系统默认的目录下,通常为:/usr/local 下。例如:

1
./configure --prefix=/usr/local/snmp // 配置指定安装目录,

在配置过程中需要进行一些简单的选择:

1
2
3
4
5
6
7
8
9
default version of-snmp-version: 2
Systemcontact information(配置该设备的联系人): yourname
System location ( 该设备的位置 ): china
Location to write logfile ( 日志文件位置 ): /var/log/snmpd.log
Location to Write persistent( 数据存储目录 ): /var/net-snmp

之后编译并且安装:

1
#make && make install // 编译并且安装

Snmp Trap 的发送和接收演示

实验环境如图 4 所示。在测试机 M1 上启动 snmptrapd 进程,并且在 UDP 1162 端口上监听 SNMP Trap 信息,一旦收到 Trap,snmptrapd 将所接收到的 Trap 信息内容打印到一个本地的文本文件中。 机器 M2 模拟发送 SNMP Trap 的设备,将调用 net-snmp 的命令行程序 snmptrap 发送一个 Trap。

图 4. SNMP Trap 实验环境

设计一个 Trap 消息

Trap 消息也是用 MIB 来定义的。在下面的例子中,我们定义了一个 Trap 消息:nodeDown

清单 1. Trap nodeDown 的 MIB 定义
1
2
3
4
nodeDown NOTIFICATION-TYPE
    STATUS          current
    DESCRIPTION     "node down notification"
::= { notification 1 }

nodeDown 被定义为 Notification 类型,即 SNMPv2 类型的 Trap。

受空间所限,这里无法贴出完整的 MIB 文件。感兴趣的读者可以参考本文的附件。图 5 给出了实验所用的完整 MIB 树:

图 5. 包含 Trap nodedown 的完整 MIB 树

NodeDown 对象位于 notification 节点下,子 OID 为 1。该 Trap 消息中我们打算包含两个数据对象:Host 名字和 IP 地址。Host 和 ip 位于 enterprises.sampleTest.data 分支下。

搭建接受 Trap 的 snmptrapd 进程

可以利用 Net-snmp 提供的 snmptrapd 应用程序作为后台 SNMP Trap 服务器,负责接收被管理设备发送过来的 Trap 消息。

在图 4 实验机 M1 的命令行窗口中输入以下命令:

1
snmptrapd – c mysnmptrad.conf udp:1622

该命令启动了一个 snmptrapd 进程,守候在 UDP 端口 1622 上,侦听 SNMP Trap 消息。-c 命令行指定了名为 mysnmptrapd.conf 的配置文件。文件内容如下:

1
2
3
$cat mysnmptrapd.conf
traphandle default lognotify IBM-DW-SAMPLE::nodeDown
authCommunity log,execute,net public

其中,以 traphandle 开头的一行定义了 snmptrapd 进程接收到 Trap 消息后应该执行的动作。在本例中,lognotify 是一个 shell 脚本,功能是将接收到的 Trap 信息写入文件 checkfile。

以 authCommunity 开头的一行配置了 snmptrapd 的安全设置,表示可以接收 community 为”public”的 SNMP Trap,并且本进程可以有 log,net 和 execute 的权限。

Log 权限表明收到 Trap 之后 snmptrapd 可以记录日志;execute 表明收到 Trap 之后可以执行 traphandle 中所指定的操作。Net 表示 snmptrapd 可以将接收到的 Trap 信息转发到其他的 Receiver 去。(假如需要转发,还需要对给定的 OID 指定以 forward 为开始的处理细节:forward OID|default DESTINATION)

脚本 lognotify 代码如下:

清单 2. Lognotify 脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$cat lognotify
#!/bin/sh
read host
read ip
vars=
while read oid val
do
   if [ "$vars" = "" ]
   then
     vars="$oid = $val"
   else
     vars="$vars, $oid = $val"
   fi
done
echo trap: $1 $host $ip $vars >checkfile

使用 snmptrap 发送 SNMP Trap

可以用命令 snmptrap 在测试机 M2 上发送一个 SNMP Trap。假定 Trap 定义在文件 sample-trap.mib 中。在测试机 M2 上输入以下命令:

1
2
snmptrap -m ./sample- trap.mib  -v 2c -c public 16.157.76.227:1622 \
"" IBM-DW-SAMPLE::nodeDown     IBM-DW-SAMPLE::nodeDown.1 s "M1"

您在试验的时候,将 IP 地址替换为 M1 的真实 IP 地址即可。在上面的例子命令中我们只设置了 Trap nodeDown 消息中的 host 信息。其 OID 为 IBM-DW-SAMPLE::nodeDown.1。字母 s 表示该 OID 的类型为 string。“M1”为该 OID 变量的值。

打开文件 checkfile,应该能够看到如下信息:

1
2
3
4
5
Trap: IBM-DW-SAMPLE::nodeDown < UNKNOWN > UDP: [16.157.76.221]:
  54329->[16.157.76.227]:1622 DISMAN-EVENT-MIB::sysUpTimeInstance=
  5:2:22:26.99, SNMPv2-MIB::snmpTrapOID.0 = SNMPv2-SMI::
  enterprises.10234.100.1 SNMPv2-SMI::enterprises.10234.100.1.1 =
“M1”

还不错,这表示我们已经能够用 snmptrap 发送 Trap;并且能够使用 snmptrapd 来接收 Trap 消息了。

此例虽然简单,但却是 SNMP Trap 的典型应用。实际生产环境中的 SNMP Trap 应用的基本模型和本例是类似的。

此外,有的时候,我们可能不仅需要 net-snmp 所提供的现成工具,还需要在自己开发的应用程序中编码发送 Trap。Net-snmp 不仅提供了现成的工具,也提供了开发库,下面我们来看看如何在 C 程序中调用 net-snmp 的库函数进行 SNMP Trap 的开发吧。

C 语言直接调用 API 进行 SNMP Trap 处理

C/C++ 依旧是很多系统必须的编程语言,当您的 C/C++ 程序需要发送 SNMP Trap 时,便可以考虑使用 net-snmp 提供的 SNMP 库函数来实现。

所需要的头文件

为了使用 netsnmp 的 API,必须 include 以下这些头文件:

1
2
#include < net-snmp /net-snmp-config.h>
#include < net-snmp /net-snmp-includes.h>

初始化

在使用 netsnmp 库之前,先要做一些必要的初始化工作。 函数 init_snmp 初始化 SNMP Library。 假如在调用 init_snmp 函数时指定了文件名,init_snmp 函数将读取配置文件,设置诸如 Access Control 等具体配置。否则会使用默认的 /etc 下面的配置文件。

初始化 SNMP 库之后,我们就可以打开一个会话 session。此后所有和 NMS 的信息交互都在该 session 内进行,因为可能在同一台机器上运行多个 SNMP 进程,每个进程都需要自己独立的 session 来和 NMS 进行信息交互。

调用函数 snmp_sess_init 成功后将返回一个 session 数据结构。我们用该数据结构来设置 session 的属性,比如 peer 的 IP 信息。

这里 peer 就是图 2 中的 M2,在我本人的试验环境下,该机器的 IP 地址为 16.157.76.227。因此在下面的代码中,我将 peername 设置为 16.157.76.227。

还可以设置其它的必要信息,比如 Community,即用于 SNMP 安全的社区设置,前面 snmptrapd 设置为 public,因此这里也设置为 public。这类似于通行密码,不过安全性的确比较弱。

Session 属性设置好之后便可以使用函数 snmp_open 打开 session。示例代码如下。

清单 3. 代码最大长度示例
1
2
3
4
5
6
7
8
9
10
init_snmp("myexample");
struct snmp_session session;
snmp_sess_init(&session);
session.version = SNMP_VERSION_2c;
strcpy(peername,"16.157.76.227:1622");
strcpy(commu,"public");
session.peername = peername;
session.community = (unsigned char*)commu;
session.community_len = strlen(commu);
ss = snmp_open(&session);

打开一个会话之后,程序可以通过该会话发送 Trap 给 NMS,也可以从 NMS 接受 SNMP get/set 操作。

创建 pdu,发送 Trap

每个 Trap 都由 PDU 承载,PDU 有固定的格式。 为了简化描述,本文只描述 SNMPv2 的 Trap 发送方法。SNMP v2c 和 v1 的 Trap 有所不同。请阅读参考文献了解这些不同的细节,此外本文的附件代码中也实现了 v1 的支持代码。SNMPv2 的 Trap PDU 定义如下:

图 3. SNMP Trap PDU 格式

其中各个组成部分的解释如下: sysUpTime– 被管理设备上一次初始化网络到本 Trap 发送以来的累积时间。 snmpTrapOID– 表示本 PDU 是一个 Trap,有固定的值。对于一般的 Trap,RFC1907 给出了通用的定义。用户自定义的 Trap 通常是由以下几个部分连接而成:SNMPv1 Enterprise parameter + '0' + SNMPv1 Specific trap code。 VarBindList– 变量列表,所谓变量就是 Trap 消息中所携带的信息单元。

下面的代码片断用来填充如图三所示的一个 PDU。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
oid objid_sysuptime[] = { 1, 3, 6, 1, 2, 1, 1, 3, 0 };
  oid objid_snmptrap[] = { 1, 3, 6, 1, 6, 3, 1, 1, 4, 1, 0 };
  netsnmp_pdu * pdu = NULL;
  oid tmpOID[MAX_OID_LEN];
  size_t tmpOID_len;
  in_addr_t addr;
  pdu = snmp_pdu_create(SNMP_MSG_TRAP2);
  long sysuptime;
  char tempbuf[128];
  memset(tempbuf,128,0);
  sprintf(tempbuf,"%ld",sysuptime);
  sysuptime = get_uptime();
  oid tmpOID[MAX_OID_LEN];
  size_t tmpOID_len;
  tmpOID_len = MAX_OID_LEN;
  if(!snmp_parse_oid(TRAP_NAME_1, tmpOID, &tmpOID_len))
snmp_error(“snmp_parse_oid”);
  snmp_add_var(pdu, objid_sysuptime, sizeof(objid_sysuptime)/sizeof(oid), 't', tempbuf);
  snmp_add_var(pdu, objid_snmptrap, sizeof(objid_snmptrap)/sizeof(oid),'o',
               “IBM-DW-SAMPLE::nodeDown”);

首先调用函数 snmp_pdu_create 创建一个 SNMPv2 的 Trap PDU。然后调用 snmp_add_var 向该 PDU 中添加图三所示的三个部分。 sysUpTime 在 SNMPv2-MIB 中定义,其 OID 为”1.3.6.1.2.1.1.3.0”。我们只需要通过 get_uptime() 函数获得该值,然后调用 snmp_add_var 将该变量加入刚才创建的 PDU 中。

同理,snmpTrapOID 也是固定的 :” 1.3.6.1.6.3.1.1.4.1.0”。同样利用 snmp_add_var 函数将我们定义的 OID 为“IBM-DW-SAMPLE::nodeDown”的 Trap 加入该 PDU。 稍稍留意一下,您应该可以发现,sysUpTime 的类型为't',即 timestamp;而 snmpTrapOID 的类型为’ o ’,即 OID 类型。PDU 内的每一个元素都拥有自己的类型。 在该 Trap 中,我们还打算携带两个变量:IBM-DW-SAMPLE::host 和 IBM-DW-SAMPLE::ip。表示一些真正有趣的信息。 添加这两个变量的代码如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
HP-DW-SAMPLE::ip",varId,&varIdLen))
     {
       snmp_perror("ip");
     }
     else
     {
        printf("Success snmp_parse_oid\n");
        snmp_add_var(pdu, varId, sizeof(varId)/sizeof(oid),'s',"2.2.2.2");
     }
     if(!snmp_parse_oid("HP-DW-SAMPLE::host",varId,&varIdLen))
     {
       snmp_perror("host");
     }
     else
     {
        retv =  snmp_add_var(pdu, varId, sizeof(varId)/sizeof(oid),'s',”M1”);
  }

用 snmp_parse_oid 解析相应变量的 OID,然后就可以调用 snmp_add_var 将您想设置的值加入 PDU 中了。假如您直接在代码中使用”HP-DW-SAMPLE::ip”的 OID,(即 1.3.6.1.4.1.10234.10.2),那么可以不需要调用 snmp_parse_oid。该函数只是把一个好记的字符串翻译为一串数字的 OID。不过这就好比用 16.157.1.2 而不使用 www.ibm.com 一样。

至此,一个 SNMP Trap PDU 就创建成功了。将该 PDU 发送出去即可:

1
2
3
4
if( !snmp_send(sptr, pdu) )
{
   snmp_error("Send pdu error \n");
}

结束清理

程序结束之前需要做清理工作,代码如下:

1
2
3
snmp_close(sptr);
snmp_shutdown( "myexample" );
SOCK_CLEANUP;

一个基本的 SNMP Trap 发送程序就这样完成了。我们在 M1 上编译运行它:

1
2
-bash-3.2$ gcc -o t1 snmptrap.c – lnetsnmp
-bash-3.2$ ./t1

在 M2 上查看 checkfile,可以验证所收到的 Trap 消息的内容。假如您能看到该文件中正确的内容,那么恭喜您,您已经拥有了编程发送 SNMP Trap 的能力了。

结束语

虽然 SNMP 叫做简单网络管理协议,但似乎并不简单,甚至可以说十分复杂,本文只关注 Trap 的相关概念和编程方法,却也只能走马观花地说个皮毛,还是完全的实用主义。于我而言,这点儿皮毛便可以让我交代手头的工作任务了,但一个有理想的程序员或许会仅将本文当作一个起点,坚定不移地继续深入地了解更多 SNMP 的知识吧。

补充linux服务器snmp常用oid :

系统参数(1.3.6.1.2.1.1)

OID

描述

备注

请求方式

.1.3.6.1.2.1.1.1.0

获取系统基本信息

SysDesc

GET

.1.3.6.1.2.1.1.3.0

监控时间

sysUptime

GET

.1.3.6.1.2.1.1.4.0

系统联系人

sysContact

GET

.1.3.6.1.2.1.1.5.0

获取机器名

SysName

GET

.1.3.6.1.2.1.1.6.0

机器坐在位置

SysLocation

GET

.1.3.6.1.2.1.1.7.0

机器提供的服务

SysService

GET

.1.3.6.1.2.1.25.4.2.1.2

系统运行的进程列表

hrSWRunName

WALK

.1.3.6.1.2.1.25.6.3.1.2

系统安装的软件列表

hrSWInstalledName

WALK

网络接口(1.3.6.1.2.1.2)

OID

描述

备注

请求方式

.1.3.6.1.2.1.2.1.0

网络接口的数目

IfNumber

GET

.1.3.6.1.2.1.2.2.1.2

网络接口信息描述

IfDescr

WALK

.1.3.6.1.2.1.2.2.1.3

网络接口类型

IfType

WALK

.1.3.6.1.2.1.2.2.1.4

接口发送和接收的最大IP数据报[BYTE]

IfMTU

WALK

.1.3.6.1.2.1.2.2.1.5

接口当前带宽[bps]

IfSpeed

WALK

.1.3.6.1.2.1.2.2.1.6

接口的物理地址

IfPhysAddress

WALK

.1.3.6.1.2.1.2.2.1.8

接口当前操作状态[up|down]

IfOperStatus

WALK

.1.3.6.1.2.1.2.2.1.10

接口收到的字节数

IfInOctet

WALK

.1.3.6.1.2.1.2.2.1.16

接口发送的字节数

IfOutOctet

WALK

.1.3.6.1.2.1.2.2.1.11

接口收到的数据包个数

IfInUcastPkts

WALK

.1.3.6.1.2.1.2.2.1.17

接口发送的数据包个数

IfOutUcastPkts

WALK

CPU及负载

OID

描述

备注

请求方式

. 1.3.6.1.4.1.2021.11.9.0

用户CPU百分比

ssCpuUser

GET

. 1.3.6.1.4.1.2021.11.10.0

系统CPU百分比

ssCpuSystem

GET

. 1.3.6.1.4.1.2021.11.11.0

空闲CPU百分比

ssCpuIdle

GET

. 1.3.6.1.4.1.2021.11.50.0

原始用户CPU使用时间

ssCpuRawUser

GET

.1.3.6.1.4.1.2021.11.51.0

原始nice占用时间

ssCpuRawNice

GET

. 1.3.6.1.4.1.2021.11.52.0

原始系统CPU使用时间

ssCpuRawSystem.

GET

. 1.3.6.1.4.1.2021.11.53.0

原始CPU空闲时间

ssCpuRawIdle

GET

. 1.3.6.1.2.1.25.3.3.1.2

CPU的当前负载,N个核就有N个负载

hrProcessorLoad

WALK

. 1.3.6.1.4.1.2021.11.3.0

ssSwapIn

GET

 

. 1.3.6.1.4.1.2021.11.4.0

SsSwapOut

GET

 

. 1.3.6.1.4.1.2021.11.5.0

ssIOSent

GET

 

. 1.3.6.1.4.1.2021.11.6.0

ssIOReceive

GET

 

. 1.3.6.1.4.1.2021.11.7.0

ssSysInterrupts

GET

 

. 1.3.6.1.4.1.2021.11.8.0

ssSysContext

GET

 

. 1.3.6.1.4.1.2021.11.54.0

ssCpuRawWait

GET

 

. 1.3.6.1.4.1.2021.11.56.0

ssCpuRawInterrupt

GET

 

. 1.3.6.1.4.1.2021.11.57.0

ssIORawSent

GET

 

. 1.3.6.1.4.1.2021.11.58.0

ssIORawReceived

GET

 

. 1.3.6.1.4.1.2021.11.59.0

ssRawInterrupts

GET

 

. 1.3.6.1.4.1.2021.11.60.0

ssRawContexts

GET

 

. 1.3.6.1.4.1.2021.11.61.0

ssCpuRawSoftIRQ

GET

 

. 1.3.6.1.4.1.2021.11.62.0

ssRawSwapIn.

GET

 

. 1.3.6.1.4.1.2021.11.63.0

ssRawSwapOut

GET

 

.1.3.6.1.4.1.2021.10.1.3.1

Load5

GET

 

.1.3.6.1.4.1.2021.10.1.3.2

Load10

GET

 

.1.3.6.1.4.1.2021.10.1.3.3

Load15

GET

 

内存及磁盘(1.3.6.1.2.1.25)

OID

描述

备注

请求方式

.1.3.6.1.2.1.25.2.2.0

获取内存大小

hrMemorySize

GET

.1.3.6.1.2.1.25.2.3.1.1

存储设备编号

hrStorageIndex

WALK

.1.3.6.1.2.1.25.2.3.1.2

存储设备类型

hrStorageType[OID]

WALK

.1.3.6.1.2.1.25.2.3.1.3

存储设备描述

hrStorageDescr

WALK

.1.3.6.1.2.1.25.2.3.1.4

簇的大小

hrStorageAllocationUnits

WALK

.1.3.6.1.2.1.25.2.3.1.5

簇的的数目

hrStorageSize

WALK

.1.3.6.1.2.1.25.2.3.1.6

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

hrStorageUsed

WALK

.1.3.6.1.4.1.2021.4.3.0

Total Swap Size(虚拟内存)

memTotalSwap

GET

.1.3.6.1.4.1.2021.4.4.0

Available Swap Space

memAvailSwap

GET

.1.3.6.1.4.1.2021.4.5.0

Total RAM in machine

memTotalReal

GET

.1.3.6.1.4.1.2021.4.6.0

Total RAM used

memAvailReal

GET

.1.3.6.1.4.1.2021.4.11.0

Total RAM Free

memTotalFree

GET

.1.3.6.1.4.1.2021.4.13.0

Total RAM Shared

memShared

GET

.1.3.6.1.4.1.2021.4.14.0

Total RAM Buffered

memBuffer

GET

.1.3.6.1.4.1.2021.4.15.0

Total Cached Memory

memCached

GET

.1.3.6.1.4.1.2021.9.1.2

Path where the disk is mounted

dskPath

WALK

.1.3.6.1.4.1.2021.9.1.3

Path of the device for the partition

dskDevice

WALK

.1.3.6.1.4.1.2021.9.1.6

Total size of the disk/partion (kBytes)

dskTotal

WALK

.1.3.6.1.4.1.2021.9.1.7

Available space on the disk

dskAvail

WALK

.1.3.6.1.4.1.2021.9.1.8

Used space on the disk

dskUsed

WALK

.1.3.6.1.4.1.2021.9.1.9

Percentage of space used on disk

dskPercent

WALK

.1.3.6.1.4.1.2021.9.1.10

Percentage of inodes used on disk

dskPercentNode

WALK

System Group
sysDescr 1.3.6.1.2.1.1.1
sysObjectID 1.3.6.1.2.1.1.2
sysUpTime 1.3.6.1.2.1.1.3
sysContact 1.3.6.1.2.1.1.4
sysName 1.3.6.1.2.1.1.5
sysLocation 1.3.6.1.2.1.1.6
sysServices 1.3.6.1.2.1.1.7
Interfaces Group
ifNumber 1.3.6.1.2.1.2.1
ifTable 1.3.6.1.2.1.2.2
ifEntry 1.3.6.1.2.1.2.2.1
ifIndex 1.3.6.1.2.1.2.2.1.1
ifDescr 1.3.6.1.2.1.2.2.1.2
ifType 1.3.6.1.2.1.2.2.1.3
ifMtu 1.3.6.1.2.1.2.2.1.4
ifSpeed 1.3.6.1.2.1.2.2.1.5
ifPhysAddress 1.3.6.1.2.1.2.2.1.6
ifAdminStatus 1.3.6.1.2.1.2.2.1.7
ifOperStatus 1.3.6.1.2.1.2.2.1.8
ifLastChange 1.3.6.1.2.1.2.2.1.9
ifInOctets 1.3.6.1.2.1.2.2.1.10
ifInUcastPkts 1.3.6.1.2.1.2.2.1.11
ifInNUcastPkts 1.3.6.1.2.1.2.2.1.12
ifInDiscards 1.3.6.1.2.1.2.2.1.13
ifInErrors 1.3.6.1.2.1.2.2.1.14
ifInUnknownProtos 1.3.6.1.2.1.2.2.1.15
ifOutOctets 1.3.6.1.2.1.2.2.1.16
ifOutUcastPkts 1.3.6.1.2.1.2.2.1.17
ifOutNUcastPkts 1.3.6.1.2.1.2.2.1.18
ifOutDiscards 1.3.6.1.2.1.2.2.1.19
ifOutErrors 1.3.6.1.2.1.2.2.1.20
ifOutQLen 1.3.6.1.2.1.2.2.1.21
ifSpecific 1.3.6.1.2.1.2.2.1.22
IP Group
ipForwarding 1.3.6.1.2.1.4.1
ipDefaultTTL 1.3.6.1.2.1.4.2
ipInReceives 1.3.6.1.2.1.4.3
ipInHdrErrors 1.3.6.1.2.1.4.4
ipInAddrErrors 1.3.6.1.2.1.4.5
ipForwDatagrams 1.3.6.1.2.1.4.6
ipInUnknownProtos 1.3.6.1.2.1.4.7
ipInDiscards 1.3.6.1.2.1.4.8
ipInDelivers 1.3.6.1.2.1.4.9
ipOutRequests 1.3.6.1.2.1.4.10
ipOutDiscards 1.3.6.1.2.1.4.11
ipOutNoRoutes 1.3.6.1.2.1.4.12
ipReasmTimeout 1.3.6.1.2.1.4.13
ipReasmReqds 1.3.6.1.2.1.4.14
ipReasmOKs 1.3.6.1.2.1.4.15
ipReasmFails 1.3.6.1.2.1.4.16
ipFragsOKs 1.3.6.1.2.1.4.17
ipFragsFails 1.3.6.1.2.1.4.18
ipFragCreates 1.3.6.1.2.1.4.19
ipAddrTable 1.3.6.1.2.1.4.20
ipAddrEntry 1.3.6.1.2.1.4.20.1
ipAdEntAddr 1.3.6.1.2.1.4.20.1.1
ipAdEntIfIndex 1.3.6.1.2.1.4.20.1.2
ipAdEntNetMask 1.3.6.1.2.1.4.20.1.3
ipAdEntBcastAddr 1.3.6.1.2.1.4.20.1.4
ipAdEntReasmMaxSize 1.3.6.1.2.1.4.20.1.5
ICMP Group
icmpInMsgs 1.3.6.1.2.1.5.1
icmpInErrors 1.3.6.1.2.1.5.2
icmpInDestUnreachs 1.3.6.1.2.1.5.3
icmpInTimeExcds 1.3.6.1.2.1.5.4
icmpInParmProbs 1.3.6.1.2.1.5.5
icmpInSrcQuenchs 1.3.6.1.2.1.5.6
icmpInRedirects 1.3.6.1.2.1.5.7
icmpInEchos 1.3.6.1.2.1.5.8
icmpInEchoReps 1.3.6.1.2.1.5.9
icmpInTimestamps 1.3.6.1.2.1.5.10
icmpInTimestampReps 1.3.6.1.2.1.5.11
icmpInAddrMasks 1.3.6.1.2.1.5.12
icmpInAddrMaskReps 1.3.6.1.2.1.5.13
icmpOutMsgs 1.3.6.1.2.1.5.14
icmpOutErrors 1.3.6.1.2.1.5.15
icmpOutDestUnreachs 1.3.6.1.2.1.5.16
icmpOutTimeExcds 1.3.6.1.2.1.5.17
icmpOutParmProbs 1.3.6.1.2.1.5.18
icmpOutSrcQuenchs 1.3.6.1.2.1.5.19
icmpOutRedirects 1.3.6.1.2.1.5.20
icmpOutEchos 1.3.6.1.2.1.5.21
icmpOutEchoReps 1.3.6.1.2.1.5.22
icmpOutTimestamps 1.3.6.1.2.1.5.23
icmpOutTimestampReps 1.3.6.1.2.1.5.24
icmpOutAddrMasks 1.3.6.1.2.1.5.25
icmpOutAddrMaskReps 1.3.6.1.2.1.5.26
TCP Group
tcpRtoAlgorithm 1.3.6.1.2.1.6.1
tcpRtoMin 1.3.6.1.2.1.6.2
tcpRtoMax 1.3.6.1.2.1.6.3
tcpMaxConn 1.3.6.1.2.1.6.4
tcpActiveOpens 1.3.6.1.2.1.6.5
tcpPassiveOpens 1.3.6.1.2.1.6.6
tcpAttemptFails 1.3.6.1.2.1.6.7
tcpEstabResets 1.3.6.1.2.1.6.8
tcpCurrEstab 1.3.6.1.2.1.6.9
tcpInSegs 1.3.6.1.2.1.6.10
tcpOutSegs 1.3.6.1.2.1.6.11
tcpRetransSegs 1.3.6.1.2.1.6.12
tcpConnTable 1.3.6.1.2.1.6.13
tcpConnEntry 1.3.6.1.2.1.6.13.1
tcpConnState 1.3.6.1.2.1.6.13.1.1
tcpConnLocalAddress 1.3.6.1.2.1.6.13.1.2
tcpConnLocalPort 1.3.6.1.2.1.6.13.1.3
tcpConnRemAddress 1.3.6.1.2.1.6.13.1.4
tcpConnRemPort 1.3.6.1.2.1.6.13.1.5
tcpInErrs 1.3.6.1.2.1.6.14
tcpOutRsts 1.3.6.1.2.1.6.15
UDP Group
udpInDatagrams 1.3.6.1.2.1.7.1
udpNoPorts 1.3.6.1.2.1.7.2
udpInErrors 1.3.6.1.2.1.7.3
udpOutDatagrams 1.3.6.1.2.1.7.4
udpTable 1.3.6.1.2.1.7.5
udpEntry 1.3.6.1.2.1.7.5.1
udpLocalAddress 1.3.6.1.2.1.7.5.1.1
udpLocalPort 1.3.6.1.2.1.7.5.1.2
SNMP Group
snmpInPkts 1.3.6.1.2.1.11.1
snmpOutPkts 1.3.6.1.2.1.11.2
snmpInBadVersions 1.3.6.1.2.1.11.3
snmpInBadCommunityNames 1.3.6.1.2.1.11.4
snmpInBadCommunityUses 1.3.6.1.2.1.11.5
snmpInASNParseErrs 1.3.6.1.2.1.11.6
NOT USED 1.3.6.1.2.1.11.7
snmpInTooBigs 1.3.6.1.2.1.11.8
snmpInNoSuchNames 1.3.6.1.2.1.11.9
snmpInBadValues 1.3.6.1.2.1.11.10
snmpInReadOnlys 1.3.6.1.2.1.11.11
snmpInGenErrs 1.3.6.1.2.1.11.12
snmpInTotalReqVars 1.3.6.1.2.1.11.13
snmpInTotalSetVars 1.3.6.1.2.1.11.14
snmpInGetRequests 1.3.6.1.2.1.11.15
snmpInGetNexts 1.3.6.1.2.1.11.16
snmpInSetRequests 1.3.6.1.2.1.11.17
snmpInGetResponses 1.3.6.1.2.1.11.18
snmpInTraps 1.3.6.1.2.1.11.19
snmpOutTooBigs 1.3.6.1.2.1.11.20
snmpOutNoSuchNames 1.3.6.1.2.1.11.21
snmpOutBadValues 1.3.6.1.2.1.11.22
NOT USED 1.3.6.1.2.1.11.23
snmpOutGenErrs 1.3.6.1.2.1.11.24
snmpOutGetRequests 1.3.6.1.2.1.11.25
snmpOutGetNexts 1.3.6.1.2.1.11.26
snmpOutSetRequests 1.3.6.1.2.1.11.27
snmpOutGetResponses 1.3.6.1.2.1.11.28
snmpOutTraps 1.3.6.1.2.1.11.29
snmpEnableAuthenTraps 1.3.6.1.2.1.11.30

收集整理一些Linux下snmp常用的OID,用做服务器监控很不错。

服务器负载:

1
2
3
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信息:

1
2
3
4
5
6
7
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

内存使用:

1
2
3
4
5
6
7
8
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

硬盘使用:

1
2
3
4
5
6
7
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

系统运行时间:

1
.1.3.6.1.2.1.1.3.0

SNMP System Group:

1
2
3
4
5
6
7
sysDescr 1.3.6.1.2.1.1.1
sysObjectID 1.3.6.1.2.1.1.2
sysUpTime 1.3.6.1.2.1.1.3
sysContact 1.3.6.1.2.1.1.4
sysName 1.3.6.1.2.1.1.5
sysLocation 1.3.6.1.2.1.1.6
sysServices 1.3.6.1.2.1.1.7

SNMP Interfaces Group:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
ifNumber 1.3.6.1.2.1.2.1
ifTable 1.3.6.1.2.1.2.2
ifEntry 1.3.6.1.2.1.2.2.1
ifIndex 1.3.6.1.2.1.2.2.1.1
ifDescr 1.3.6.1.2.1.2.2.1.2
ifType 1.3.6.1.2.1.2.2.1.3
ifMtu 1.3.6.1.2.1.2.2.1.4
ifSpeed 1.3.6.1.2.1.2.2.1.5
ifPhysAddress 1.3.6.1.2.1.2.2.1.6
ifAdminStatus 1.3.6.1.2.1.2.2.1.7
ifOperStatus 1.3.6.1.2.1.2.2.1.8
ifLastChange 1.3.6.1.2.1.2.2.1.9
ifInOctets 1.3.6.1.2.1.2.2.1.10
ifInUcastPkts 1.3.6.1.2.1.2.2.1.11
ifInNUcastPkts 1.3.6.1.2.1.2.2.1.12
ifInDiscards 1.3.6.1.2.1.2.2.1.13
ifInErrors 1.3.6.1.2.1.2.2.1.14
ifInUnknownProtos 1.3.6.1.2.1.2.2.1.15
ifOutOctets 1.3.6.1.2.1.2.2.1.16
ifOutUcastPkts 1.3.6.1.2.1.2.2.1.17
ifOutNUcastPkts 1.3.6.1.2.1.2.2.1.18
ifOutDiscards 1.3.6.1.2.1.2.2.1.19
ifOutErrors 1.3.6.1.2.1.2.2.1.20
ifOutQLen 1.3.6.1.2.1.2.2.1.21
ifSpecific 1.3.6.1.2.1.2.2.1.22

SNMP IP Group

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
ipForwarding 1.3.6.1.2.1.4.1
ipDefaultTTL 1.3.6.1.2.1.4.2
ipInReceives 1.3.6.1.2.1.4.3
ipInHdrErrors 1.3.6.1.2.1.4.4
ipInAddrErrors 1.3.6.1.2.1.4.5
ipForwDatagrams 1.3.6.1.2.1.4.6
ipInUnknownProtos 1.3.6.1.2.1.4.7
ipInDiscards 1.3.6.1.2.1.4.8
ipInDelivers 1.3.6.1.2.1.4.9
ipOutRequests 1.3.6.1.2.1.4.10
ipOutDiscards 1.3.6.1.2.1.4.11
ipOutNoRoutes 1.3.6.1.2.1.4.12
ipReasmTimeout 1.3.6.1.2.1.4.13
ipReasmReqds 1.3.6.1.2.1.4.14
ipReasmOKs 1.3.6.1.2.1.4.15
ipReasmFails 1.3.6.1.2.1.4.16
ipFragsOKs 1.3.6.1.2.1.4.17
ipFragsFails 1.3.6.1.2.1.4.18
ipFragCreates 1.3.6.1.2.1.4.19
ipAddrTable 1.3.6.1.2.1.4.20
ipAddrEntry 1.3.6.1.2.1.4.20.1
ipAdEntAddr 1.3.6.1.2.1.4.20.1.1
ipAdEntIfIndex 1.3.6.1.2.1.4.20.1.2
ipAdEntNetMask 1.3.6.1.2.1.4.20.1.3
ipAdEntBcastAddr 1.3.6.1.2.1.4.20.1.4
ipAdEntReasmMaxSize 1.3.6.1.2.1.4.20.1.5

SNMP ICMP Group

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
icmpInMsgs 1.3.6.1.2.1.5.1
icmpInErrors 1.3.6.1.2.1.5.2
icmpInDestUnreachs 1.3.6.1.2.1.5.3
icmpInTimeExcds 1.3.6.1.2.1.5.4
icmpInParmProbs 1.3.6.1.2.1.5.5
icmpInSrcQuenchs 1.3.6.1.2.1.5.6
icmpInRedirects 1.3.6.1.2.1.5.7
icmpInEchos 1.3.6.1.2.1.5.8
icmpInEchoReps 1.3.6.1.2.1.5.9
icmpInTimestamps 1.3.6.1.2.1.5.10
icmpInTimestampReps 1.3.6.1.2.1.5.11
icmpInAddrMasks 1.3.6.1.2.1.5.12
icmpInAddrMaskReps 1.3.6.1.2.1.5.13
icmpOutMsgs 1.3.6.1.2.1.5.14
icmpOutErrors 1.3.6.1.2.1.5.15
icmpOutDestUnreachs 1.3.6.1.2.1.5.16
icmpOutTimeExcds 1.3.6.1.2.1.5.17
icmpOutParmProbs 1.3.6.1.2.1.5.18
icmpOutSrcQuenchs 1.3.6.1.2.1.5.19
icmpOutRedirects 1.3.6.1.2.1.5.20
icmpOutEchos 1.3.6.1.2.1.5.21
icmpOutEchoReps 1.3.6.1.2.1.5.22
icmpOutTimestamps 1.3.6.1.2.1.5.23
icmpOutTimestampReps 1.3.6.1.2.1.5.24
icmpOutAddrMasks 1.3.6.1.2.1.5.25
icmpOutAddrMaskReps 1.3.6.1.2.1.5.26

SNMP TCP Group:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
tcpRtoAlgorithm 1.3.6.1.2.1.6.1
tcpRtoMin 1.3.6.1.2.1.6.2
tcpRtoMax 1.3.6.1.2.1.6.3
tcpMaxConn 1.3.6.1.2.1.6.4
tcpActiveOpens 1.3.6.1.2.1.6.5
tcpPassiveOpens 1.3.6.1.2.1.6.6
tcpAttemptFails 1.3.6.1.2.1.6.7
tcpEstabResets 1.3.6.1.2.1.6.8
tcpCurrEstab 1.3.6.1.2.1.6.9
tcpInSegs 1.3.6.1.2.1.6.10
tcpOutSegs 1.3.6.1.2.1.6.11
tcpRetransSegs 1.3.6.1.2.1.6.12
tcpConnTable 1.3.6.1.2.1.6.13
tcpConnEntry 1.3.6.1.2.1.6.13.1
tcpConnState 1.3.6.1.2.1.6.13.1.1
tcpConnLocalAddress 1.3.6.1.2.1.6.13.1.2
tcpConnLocalPort 1.3.6.1.2.1.6.13.1.3
tcpConnRemAddress 1.3.6.1.2.1.6.13.1.4
tcpConnRemPort 1.3.6.1.2.1.6.13.1.5
tcpInErrs 1.3.6.1.2.1.6.14
tcpOutRsts 1.3.6.1.2.1.6.15

SNMP UDP Group

1
2
3
4
5
6
7
8
udpInDatagrams 1.3.6.1.2.1.7.1
udpNoPorts 1.3.6.1.2.1.7.2
udpInErrors 1.3.6.1.2.1.7.3
udpOutDatagrams 1.3.6.1.2.1.7.4
udpTable 1.3.6.1.2.1.7.5
udpEntry 1.3.6.1.2.1.7.5.1
udpLocalAddress 1.3.6.1.2.1.7.5.1.1
udpLocalPort 1.3.6.1.2.1.7.5.1.2

SNMP Group:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
snmpInPkts 1.3.6.1.2.1.11.1
snmpOutPkts 1.3.6.1.2.1.11.2
snmpInBadVersions 1.3.6.1.2.1.11.3
snmpInBadCommunityNames 1.3.6.1.2.1.11.4
snmpInBadCommunityUses 1.3.6.1.2.1.11.5
snmpInASNParseErrs 1.3.6.1.2.1.11.6
NOT USED 1.3.6.1.2.1.11.7
snmpInTooBigs 1.3.6.1.2.1.11.8
snmpInNoSuchNames 1.3.6.1.2.1.11.9
snmpInBadValues 1.3.6.1.2.1.11.10
snmpInReadOnlys 1.3.6.1.2.1.11.11
snmpInGenErrs 1.3.6.1.2.1.11.12
snmpInTotalReqVars 1.3.6.1.2.1.11.13
snmpInTotalSetVars 1.3.6.1.2.1.11.14
snmpInGetRequests 1.3.6.1.2.1.11.15
snmpInGetNexts 1.3.6.1.2.1.11.16
snmpInSetRequests 1.3.6.1.2.1.11.17
snmpInGetResponses 1.3.6.1.2.1.11.18
snmpInTraps 1.3.6.1.2.1.11.19
snmpOutTooBigs 1.3.6.1.2.1.11.20
snmpOutNoSuchNames 1.3.6.1.2.1.11.21
snmpOutBadValues 1.3.6.1.2.1.11.22
NOT USED 1.3.6.1.2.1.11.23
snmpOutGenErrs 1.3.6.1.2.1.11.24
snmpOutGetRequests 1.3.6.1.2.1.11.25
snmpOutGetNexts 1.3.6.1.2.1.11.26
snmpOutSetRequests 1.3.6.1.2.1.11.27
snmpOutGetResponses 1.3.6.1.2.1.11.28
snmpOutTraps 1.3.6.1.2.1.11.29
snmpEnableAuthenTraps 1.3.6.1.2.1.11.30

应用示例:
查看服务器1分钟平均负载:

1
2
snmpwalk -v1 -c public 127.0.0.1 .1.3.6.1.4.1.2021.10.1.3.1
UCD-SNMP-MIB::laLoad.1 = STRING: 0.25

查看服务器当前连接:

1
2
3
4
5
6
7
8
9
10
11
snmpwalk -v1 -c public 127.0.0.1 1.3.6.1.2.1.6.13.1.1
TCP-MIB::tcpConnState.0.0.0.0.22.0.0.0.0.0 = INTEGER: listen(2)
TCP-MIB::tcpConnState.0.0.0.0.80.0.0.0.0.0 = INTEGER: listen(2)
TCP-MIB::tcpConnState.0.0.0.0.111.0.0.0.0.0 = INTEGER: listen(2)
TCP-MIB::tcpConnState.0.0.0.0.443.0.0.0.0.0 = INTEGER: listen(2)
TCP-MIB::tcpConnState.0.0.0.0.3306.0.0.0.0.0 = INTEGER: listen(2)
TCP-MIB::tcpConnState.127.0.0.1.25.0.0.0.0.0 = INTEGER: listen(2)
TCP-MIB::tcpConnState.127.0.0.1.199.0.0.0.0.0 = INTEGER: listen(2)
TCP-MIB::tcpConnState.192.168.1.2.22.192.168.1.16.5035 = INTEGER: established(5)
TCP-MIB::tcpConnState.192.168.1.2.22.192.168.1.16.10518 = INTEGER: established(5)
TCP-MIB::tcpConnState.192.168.1.2.22.192.168.1.16.24713 = INTEGER: established(5)

Linux 系统中的 SNMP Trap及常用OID相关推荐

  1. 浅谈 Linux 系统中的 SNMP Trap 【转】

    文章来源:浅谈 Linux 系统中的 SNMP Trap 简介 本文讲解 SNMP Trap,在介绍 Trap 概念之前,首先认识一下 SNMP 吧. 简单网络管理协议(Simple Network ...

  2. Linux 系统中的 SNMP Trap

    简介 本文讲解 SNMP Trap,在介绍 Trap 概念之前,首先认识一下 SNMP 吧. 简单网络管理协议(Simple Network Management Protocol)是一种应用层协议, ...

  3. linux系统shell知识点,Linux 系统中shell知识点说明和常用的帮助命令简单介绍 | IT工程师的生活足迹...

    linux 系统内核和各种驱动程序覆盖在下层的硬件系统之上:对上提供各种系统调用接口API,供shell和各种程序应用程序调用. 总体结构图如下: 操作系统的层次架构 一般我们理解shell指的是BA ...

  4. Linux 系统中kill命令杀死进程常用技巧

    前言 在Linux的系统中,kill是我们最常见的命令之一. kill,英语中为杀死的意思,顾名思义,就是用来杀死一些东西的命令,在linux中就是用来杀死系统中的进程. 在Windows系统中,如果 ...

  5. linux命令中强杀进程,Linux 系统中kill命令杀死进程常用技巧

    目录 前言 基础 进阶 1 查找进程号的方式进行改进 2 将常规的两步杀死进程合并为一步 3 强制踢掉登陆用户 kill的注意事项 前言 在Linux的系统中,kill是我们最常见的命令之一. kil ...

  6. linux 内核日志等级,Linux系统中日志级别详情

    日志信息分类 1.等级由低到高:debug 2.区别: debug 级别最低,可以随意的使用于任何觉得有利于在调试时更详细的了解系统运行状态的东东: info  重要,输出信息:用来反馈系统的当前状态 ...

  7. Linux系统中常见文件系统格式

    Linux系统中常见文件系统格式 Windows常用的分区格式有三种,分别是FAT16.FAT32.NTFS格式. 在Linux操作系统里有Ext2.Ext3.Linux swap和VFAT四种格式. ...

  8. Linux系统中的文件系统格式区别及详解

    Linux系统中常见文件系统格式 Windows常用的分区格式有三种,分别是FAT16.FAT32.NTFS格式 在Linux操作系统里有Ext2.Ext3.Linux swap和VFAT 种格式. ...

  9. linux系统中如何查看日志 (常用命令)

    linux系统中如何查看日志 (常用命令) cat  tail -f 日 志 文 件 说    明  /var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用 ...

最新文章

  1. 2017年深度学习重大研究进展全解读
  2. 使用GitHub Pages搭建博客
  3. Ubuntu共享WiFi(AP)给Android方法
  4. C语言经典算法 1-10
  5. linux fedora kde桌面设置全局显示字体大小
  6. Dima and a Bad XOR
  7. Oracle修改表列名与顺序的解决方案 (sql 修改列名)
  8. 十二五期间三网融合将有实质性进展
  9. LoadRunner中进程运行和线程运行区别
  10. 法线贴图Nomal mapping 原理
  11. dg修改归档目录 oracle_Oracle RAC归档管理: 修改归档位置(FRA和其他位置)
  12. 机器学习的常见分类及常用算法
  13. 娓娓道来图模型、图查询、图计算和图学习知识
  14. 《CRAFT:Character Region Awareness for Text Detection》论文笔记
  15. 专访 iOS 技术专家孙源:开发者的成长始于“死磕”
  16. matplotlib绘制曲线图
  17. 【Linux】gcc-程序的翻译四个阶段(图示)
  18. windows代理软件对比
  19. 12000+star的GANSynth,音乐与AI的完美结合
  20. halcon第二十讲:halcon联合c#配置及例程

热门文章

  1. linux忘了用户名和密码_linux用户名和密码忘记怎么办
  2. Photoshop介绍及视频教程
  3. Cf Round #817 D. Line(贪心)
  4. (十九)冲动是魔鬼 - 8
  5. vscode撤销快捷键
  6. 阿里五年自动化测试工程详细解说:unittest单元测试框架
  7. 如何在SPM®5封装上安装散热器
  8. Dicom中的Image Orientation/Position的理解和应用
  9. Forword(请求转发)与Redirect(重定向) 区别
  10. vim 中批量添加注释(块选择模式)