Я хочу собирать информацию о пространстве файловой системы с помощью 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?
Я думаю, вам нужно выполнить дополнительную настройку поверх стандартного 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.