LInux duコマンドで取得したサイズの単位処理に関して
お世話になっております。
Zabbix 5.4.3.
監視対象CentOS7
あるディレクトリのサイズ監視をsystem.run にてduコマンドを実行しているのですが
ターミナル上での挙動は以下の通りです。
※system.runからはオプション無しでdu実行しています。
$ du
44724 ./test
$ du -h
44M ./test
duコマンドのデフォルト単位はKBとの情報が有りましたので
アイテムの単位にはKBを設定しました。
最新データには44.72 KKBと表示されます。
44Mと表示されるのを期待したのですが、何か設定が間違っているでしょうか。
どうぞよろしくお願い致します。
TNK - 投稿数: 4730
KMGの変換をさせたいのであれば、元の値がKB単位なら、アイテム
の値として1024倍した値を保存するようにしてみてください。
単位は、Bにしておきます。
MSG - 投稿数: 59
どうもありがとうございます。
元データがKBなら1024倍にて保存するとは想像出来ませんでした。
シェルの四則演算で保存する様にしたところ正しくMB表示される様になりました。
参考になるか分かりませんが残しておきます。
system.run[check=`/usr/bin/du /var/spool/xxx/yyy/zzz/{#DOMAIN} | tail -n 1 | awk '{ print $1 }'` && sum=$(($check * 1024)) && echo $sum]
TNK - 投稿数: 4730
シェルの四則演算を使用しなくても、Zabbix側のアイテムの設定で、
保存前処理(Preprocessing)という機能を使用すると簡単です。
「乗数」(Custom multiplier)という選択肢を使用して、1024を指定
します。
英語ですが、マニュアルにもKMG変換時に使用する例が紹介されてい
ます。
https://www.zabbix.com/documentation/5.4/en/manual/config/items/preproce...
MSG - 投稿数: 59
ありがとうございます。
この様な便利な機能が有るとは知りませんでした。
勉強になりました。