什么是获取SNMP中CPU核心数量的OID

时间:2014-06-17 06:29:14

标签: snmp

有谁知道获取SNMP内核CPU数量的OID是什么?我希望得到一个Integer值。

谢谢。

3 个答案:

答案 0 :(得分:0)

您可以对此OID执行SNMP步骤:1.3.6.1.2.1.25.3.3.1.2它将返回每个CPU的负载,您可以简单地计算结果,并且您将知道核心数。

OID 1.3.6.1.2.1.25.3.3.1.2遵循标准/ RFC的HOST-RESOURCES-MIB,因此它应该在其他平台上运行。 http://www.oidview.com/mibs/0/HOST-RESOURCES-MIB.html

我使用SharpSnmpLib的示例代码:

using Lextm.SharpSnmpLib;
using Lextm.SharpSnmpLib.Messaging;
using Lextm.SharpSnmpLib.Security;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication
{
  class Program
  {
    static void Main(string[] args)
    {

      var result = new List<Variable>();
      Messenger.BulkWalk(VersionCode.V2,
                     new IPEndPoint(IPAddress.Parse("10.10.10.23"), 161),
                     new OctetString("public"),
                     new ObjectIdentifier("1.3.6.1.2.1.25.3.3.1.2"),
                     result,
                     6000,
                     10,
                     WalkMode.WithinSubtree,
                     null,
                     null);
    }
  }
}

result的计数为4,因为我使用的是4核的英特尔i5。

答案 1 :(得分:0)

以下是基于@ celso-catarino-neto之前答案的NETSNMP版本

➜ snmptable -M +.  -m +ALL -v 2c -c public -Pu -Ci  mylinuxserver  HOST-RESOURCES-MIB::hrProcessorTable
SNMP table: HOST-RESOURCES-MIB::hrProcessorTable

 index        hrProcessorFrwID hrProcessorLoad
   768 SNMPv2-SMI::zeroDotZero              42
   769 SNMPv2-SMI::zeroDotZero              32
   770 SNMPv2-SMI::zeroDotZero              40
   771 SNMPv2-SMI::zeroDotZero              37

hrProcessorTable的OID是......

➜ snmptranslate -M+. -m +ALL  -On  HOST-RESOURCES-MIB::hrProcessorTable
.1.3.6.1.2.1.25.3.3

答案 2 :(得分:0)

使用snmpwalk工具。

$ snmpwalk -c public <machine ip-addr> 1.3.6.1.2.1.25.3.3.1.2 | wc -l

它将返回一个整数作为所需的CPU核心数