
Я хотел бы собрать информацию о пространстве файловой системы с помощью SNMP на Solaris 10 и Ubuntu 11.10. Проблема в том, что SNMP, похоже, не имеет атрибута, соответствующего столбцу «Доступно» в df
.
Например, вот df -k
вывод моей локальной файловой системы:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sdb1 36841040 13489312 21480268 39% /
А вот соответствующие атрибуты демона SNMP (согласнодокументация Net-SNMP):
HOST-RESOURCES-MIB::hrStorageDescr.31 = STRING: /
HOST-RESOURCES-MIB::hrStorageSize.31 = INTEGER: 9210260
HOST-RESOURCES-MIB::hrStorageUsed.31 = INTEGER: 3372328
HOST-RESOURCES-MIB::hrStorageAllocationUnits.31 = INTEGER: 4096 Bytes
Теперь 9210260*4 = 36841040
, и 3372328*4 = 13489312
, которые соответствуют столбцам в df
выводе. Однако я не вижу ни одного атрибута, соответствующего столбцу "Доступно". Обратите внимание, что дело не только в вычитании двух столбцов - столбец "Доступно", похоже, учитывает некоторые скрытые накладные расходы, которые различаются в зависимости от файловой системы.
Есть ли способ собрать или рассчитать информацию в столбце «Доступно» с помощью SNMP?
решение1
Я думаю, вам нужно сделать дополнительную настройку поверх стандартного SNMP, чтобы получить доступное пространство.Документация NET-SNMPупоминает следующее:
Есть две таблицы, которые можно использовать при мониторинге дискового пространства, UCD-SNMP-MIB:dskTable и HOST-RESOURCES-MIB:hrStorageTable. Между этими таблицами есть два заметных различия: UCD-SNMP-MIB:dskTable требует директивы конфигурации в snmpd.conf, но также дает прямую меру процента свободного пространства
Похоже, вам просто нужно использовать UCD-SNMP-MIB вместо HOST-RESOURCES-MIB, чтобы получить доступ к dskTable вместо hrStorageTable.