ZABBIX PROXY側のDB容量設定

ZabbbixProxyを利用して関しサーバを分散しようと考えています。
ノードではないので、Proxy側の取得データはメインのサーバに定期的に送られる、という理解をしていますが、
Proxy側のDB用ディスク容量としてはどのぐらいを用意すべきなのでしょうか?
環境によって変わる、といわれるのを承知でたとえばメインサーバの何割ぐらい、などというTipsのようなものは
無いのでしょうか?探した限りでは、このあたりの事が書かれているフォーラムはありませんでした。
また、Zabbix総合監視実践入門にもインストール方法のみが記載されていました。

長時間動機が取れなければそれだけ容量を消費するので、ある程度は必要だとは思うのですが。

何か参考になるようなものがあれば、ぜひご助言ください。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー fripper の写真

以下、サーバ側で取得した値です
DB:MySQL 5.5 InnoDB
OS:CentOS 6 x86_64

テーブル名      DB容量     DB内件数      Byte/件
history         792723456   8710520    91.00759266
history_uint     1107296256  13222315    83.74450737
history_str       13631488     36402   374.4708532
history 系平均   1913651200   21969237   87.10594728

これらより、データ1件あたりで 100Bytes 程度を見ておけば保管できそうです
データ件数の少ない history_str 等では、かなりバラつきが大きいので、あまりアテにならないかもですが‥

で、Proxy の場合ですが‥
未同期のデータのうちほとんどは、proxy_history テーブルに保管されているようです。
Proxy 配下のホスト数・アイテム数・監視間隔にもよるとは思いますが

以下、1日あたり195000件のアイテムデータを取得しているproxyでの実測データです

テーブル名      DB容量     DB内件数   Byte/件
proxy_history    29360128    1155     25420.024 

あまりにも大きくておかしいと感じたので、テーブルの最適化を行なって、再計測しました
>alter table proxy_history engine=innodb;

テーブル名      DB容量     DB内件数   Byte/件
proxy_history    393216     2189     179.6327089995432

1レコードあたり 200Bytes 程度になるみたいです。
これも、レコード数が少なすぎて、あまりアテにならないかもです

とりあえず、

200 bytes * 期間あたりのデータ取得件数

これに、
「同期が取れていても、insert / delete が繰り返されることから、テーブルのファイルサイズは、
レコード数だけでは想定できないこと
を加味して、

200 bytes x 期間あたりのデータ取得件数 x 1000倍程度

しておけば、安心なのではないでしょうか?

もちろん、mysql の binlog や、その他の領域でも多々使用されますので、
そのあたり加味してください

ユーザー yas の写真

ありがとうございます、参考になりました。
大きくなりすぎている、と言うのが気になりますが、再構築で減ったと言う事は
一応送信済みの物はちゃんと削除される動きになっていると言う事ですね。
現在の環境から、取得アイテム数も増える想定ですので、そのあたりを加味して
容量を決定しようと思います。

ユーザー fripper の写真

>大きくなりすぎている、と言うのが気になりますが、再構築で減ったと言う事は

これはレコードが頻繁に追加・削除された結果として、
DBのテーブルファイルサイズが、若干膨らんだものだと思います
いわゆるデータフラグメント化です

その結果、実際にその瞬間に含まれているレコード数だけから見積もれる
ファイルサイズではなくなってしまうので、「余裕をみて」という言い方を
させて頂きました

まぁ、その他の作業ファイル(DBのbin-logや他のテーブル類、zabbix含めログ類)も
考えると、「最低限」はそんなに大きくする必要はないでしょうけど
ある程度余裕を見ておくほうが、運用はラクかと。