#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
Он вернет целое число в виде желаемого количества ядер процессора