dfコマンドとcheck_snmp_storage.plを使用したさまざまなディスク使用量

dfコマンドとcheck_snmp_storage.plを使用したさまざまなディスク使用量

私は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 つの結果の違いについて説明します。

https://thwack.solarwinds.com/product-forums/f/general-it-topics/19043/linux-drive-monitors-not-accounting-for-reserved-space

ご覧のとおり、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はこの予約に関係なく空き容量を返します。

おすすめ記事