有谁知道获取SNMP内核CPU数量的OID是什么?我希望得到一个Integer值。
谢谢。
答案 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核心数