Как узнать, что такое OID для использования процессора в Windows 7?

У меня есть виртуальная машина с Windows 7. Я установил службу агента Windows snmp. Затем на своем компьютере я разработал небольшую программу на C# для связи с агентом SNMP с помощью snmpsharpnet и работает!

Я использовал несколько примеров OID, таких как:

  • .1.3.6.1.2.1.1.1.0, чтобы получить описание системы
  • .1.3.6.1.2.1.25.1.6. чтобы получить количество процессов

Итак, моя программа работает, и у меня правильное сетевое подключение.

        string host = "192.168.1.92";
        string community = "public";
        SimpleSnmp snmp = new SimpleSnmp(host, community);

        if (!snmp.Valid)
        {
            Console.WriteLine("SNMP agent host name/ip address is invalid.");
            return;
        }
        Dictionary<Oid, AsnType> result = snmp.Get(SnmpVersion.Ver1, new string[] { ".1.3.6.1.2.1.25.3.3.1.2" }); 

        if (result == null)
        {
            Console.WriteLine("No results received.");
            Console.ReadKey();
            return;
        }

        foreach (KeyValuePair<Oid, AsnType>  kvp in result)
        {
            Console.WriteLine("{0}: {1} {2}", kvp.Key.ToString(),
                                  SnmpConstants.GetTypeName(kvp.Value.Type),
                                  kvp.Value.ToString());
        }
        Console.ReadKey();
    }

Теперь я пытаюсь получить загрузку процессора с помощью .1.3.6.1.2.1.25.3.3.1.2, но у меня не получается (получил информацию с здесь). Я также установил Mib Browser (от ireasoning.com), чтобы узнать правильные OID.

Мои вопросы:

  • Какой правильный OID для загрузки ЦП из Windows 7?

  • OID не являются общими для всех систем, не так ли? Я имею в виду linux, windows, роутеры имеют свои OID?

  • Где я могу найти OID для Windows 7?


person Oscar Foley    schedule 12.08.2012    source источник


Ответы (1)


1.3.6.1.2.1.25.3.3.1.2 является частью hrProcessorTable в HOST-RESOURCES MIB. Используя такой инструмент, как Mib Browser, выполните SNMP-обход по OID таблицы 1.3.6.1.2.1.25.3.3. Или начните с этого OID и выполните SNMP Next. Например, если у вас двухъядерный ЦП, загрузка процессора для одного из ядер может иметь OID, например 1.3.6.1.2.1.25.3.3.1.2.1.

person dangowans    schedule 12.08.2012
comment
Моя виртуальная машина работает только на процессоре. В моем браузере Ireasoning MIB я перешел к OID hrProcessorLoad (.1.3.6.1.2.1.25.3.3.1.2) и работает (он дает среднее значение за последнюю минуту). Но в моем коде snmp.get возвращает null - person Oscar Foley; 12.08.2012
comment
Я не очень хорошо знаком с MIB Browser, но я думаю, что при выполнении вызовов SNMP выводится необработанный текст. Интересно, делает ли он вызов SNMP Next для вас. - person dangowans; 12.08.2012
comment
GetNext работал нормально. Иногда CPULoad находится в .1.3.6.1.2.1.25.3.3.1.2.7, другие в .1.3.6.1.2.1.25.3.3.1.2.6, поэтому я выполняю GetNext на верхнем уровне GetNext(.1.3.6.1.2.1.25.3. 3.1.2) и понял. Спасибо. - person Oscar Foley; 22.08.2012
comment
У SNMP определенно есть свои особенности. Рад слышать, что вы нашли то, что искали. - person dangowans; 22.08.2012