私はITモニタリングの分野で働く下級システム管理者です。質問があります。check_snmp_storage.plスクリプトは、一部のパーティション(/ var)のディスク使用量が、同じサーバー上のdfコマンドが表示するものより数パーセント低いことを示しています。
私は次のようにcheck_snmp_storage.plを呼び出します。
perl check_snmp_storage.pl -2 -C public <IP_ADDRESS> -m /var -w 80 -c 90 -G
出力は次のとおりです。
Alarm at 15
SNMP v2c login
Filter : /var
OID : 1.3.6.1.2.1.25.2.3.1.3.8, Desc : Shared memory
OID : 1.3.6.1.2.1.25.2.3.1.3.56, Desc : /dev/shm
OID : 1.3.6.1.2.1.25.2.3.1.3.31, Desc : /var
Name : /var, Index : 31
OID : 1.3.6.1.2.1.25.2.3.1.3.6, Desc : Memory buffers
OID : 1.3.6.1.2.1.25.2.3.1.3.10, Desc : Swap space
OID : 1.3.6.1.2.1.25.2.3.1.3.40, Desc : /sys/fs/cgroup
OID : 1.3.6.1.2.1.25.2.3.1.3.7, Desc : Cached memory
OID : 1.3.6.1.2.1.25.2.3.1.3.3, Desc : Virtual memory
OID : 1.3.6.1.2.1.25.2.3.1.3.36, Desc : /run
OID : 1.3.6.1.2.1.25.2.3.1.3.32, Desc : /
OID : 1.3.6.1.2.1.25.2.3.1.3.1, Desc : Physical memory
storages selected : 1
1.3.6.1.2.1.25.2.3.1.6.31 : 320923825
1.3.6.1.2.1.25.2.3.1.4.31 : 4096
1.3.6.1.2.1.25.2.3.1.5.31 : 428831117
Descr : /var
Size : 428831117
Used : 320923825
Alloc : 4096
Perf data : /var=1224GB;
/var: 75%used(1224GB/1636GB) (<80%) : OK
一方、同じサーバーから呼び出されたdfコマンドは、次のようにディスク使用量を表示します。
Filesystem Size Used Avail Use% Mounted on
/dev/md3 1.8T 1.4T 354G 79% /var
私の監視クラスタでは、違いが大きすぎるため、システム状態の良い情報源にはなりません。
2つの実際の違いが何であるかを見つけようとしましたが、説明が見つかりませんでした。私はdfがディスク使用量に「何かを追加する」と仮定していますが、これら2つの値を等しく(または1%の差のように非常に近い)何を、どのようにするのかわかりません。
ベストアンサー1
提供されるディスクシステム予約およびsnmp情報を確認してください。この資料では、2 つの結果の違いについて説明します。
ご覧のとおり、net-snmpはUsedとSizeのみを返しますが、使用できません。これにより、監視ソフトウェアはすべての関連データ(特にdfの利用可能な列で利用可能な値)なしで計算を実行できます。
空き容量は実際には2つの異なる方法でbfreeとbavailにインポートされます。
df.c:
input_units = fsu.fsu_blocksize;
output_units = output_block_size;
total = fsu.fsu_blocks;
available = fsu.fsu_bavail;
negate_available = (fsu.fsu_bavail_top_bit_set
& (available != UINTMAX_MAX));
available_to_root = fsu.fsu_bfree;
[..]
used = total - available_to_root;
dfは有名な5%ディスクシステム予約で空きディスク容量を返し、snmpはこの予約に関係なく空き容量を返します。