Каков OID для получения количества ядер процессора в SNMP

#snmp

#snmp

Вопрос:

Кто-нибудь знает, какой OID для получения количества ядер процессора в SNMP? Я хочу получить для этого целочисленное значение.

Спасибо.

Комментарии:

1. Это полностью зависит от того, какие MIBS предоставляет ваш хост! Также возможно, что информация вообще недоступна из SNMP на вашем хосте.

2. Я думаю, что ваш комментарий может быть достойным ответом на этот вопрос. =)

Ответ №1:

Вы можете выполнить SNMP-обход этого OID: 1.3.6.1.2.1.25.3.3.1.2 он вернет нагрузку для каждого процессора, вы можете просто подсчитать результаты, и вы узнаете количество ядер.

Этот OID 1.3.6.1.2.1.25.3.3.1.2 следует за HOST-RESOURCES-MIB из стандартов / RFC, поэтому он должен работать на других платформах. 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 таким, как я использую Intel i5 с 4 ядрами.

Ответ №2:

Вот версия NETSNMP, основанная на предыдущем ответе @celso-catarino-neto

 ➜ 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
  

OID для hrProcessorTable является …

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

Ответ №3:

Используйте для этого инструмент snmpwalk.

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

Он вернет целое число в виде желаемого количества ядер процессора