
Мы пытаемся отслеживать наши серверы в основном с помощью SNMP. По причинам производительности мы меняем это с одиночных запросов на snmp-bulk-requests (как разрешено в SNMP v2c).
Теоретически (по крайней мере, насколько мне известно) должна быть возможность запросить несколько ветвей/значений в одном массовом запросе, поэтому количество необходимых для этого TCP-сеансов будет минимальным.
В настоящее время мы используем для этого CentOS 5 (соответствующая команда высокого уровня snmpbulkwalk
— ), но, похоже, она может запрашивать только одну ветвь (т. е. поддерево) за раз.
Я ошибаюсь в теории или существует командование высокого уровня, которое может сделать то, что я хочу?
решение1
Команда snmpbulkget
позволяет вам указывать произвольные, несмежные запросы OID. Для правильного получения non-repeaters и max-repetitions может потребоваться некоторое экспериментирование.
Вот хороший пример:http://docstore.mik.ua/orelly/networking_2ndEd/snmp/ch02_06.htm
решение2
Вы правы. snmpbulkwalk
намного более эффективен в сети. Однако SNMP обычно не использует TCP; он использует UDP.
Массовые запросы SNMP не входят в спецификации SNMPv1, поэтому убедитесь, что ваши агенты SNMP, к которым вы обращаетесь, поддерживают версию SNMPv2c или выше.
При желании вы можете оформить snmpbulkwalk
скрипт, который поможет вам с пакетной обработкой массовых запросов.
Если вы хотите отслеживать большой объем информации, вам, возможно, стоит рассмотреть возможность использования RRDTool
полнофункциональной системы мониторинга, например Nagios
.