housekeeperで削除しているitemデータの対象のテーブルについて
以下のバージョンでzabbix環境を構築しています
zabbix2.2.12
mysql5.7.12-1
表題についてどなたかご存知の方がいらっしゃればご教示ください
housekeeperで大量のitemデータ(約480万件)を削除しており、
zabbixのDBの領域を逼迫しております。
そのため、対象のテーブルに対して、OPTIMISE TABLEを実施して、
物理的なDiskサイズを減らす方法を検討しています。
housekeeperのログに下記のように出力されておりますが、このitemというのは、zabbixのどのテーブルなのかが分かりません。
分かる方がいらっしゃれば、ご教示ください。
----------ログの内容----------
housekeeper [deleted 107848 hist/trends, 4860009 items, 0 events, 0 sessions, 0 alarms, 0 audit items in 556.031245 sec, idle 1 hour(s)]
----------ログの内容----------
以上です、よろしくお願いします。
TNK - 投稿数: 4769
アイテムを削除したとき、その時点ですぐにhistoryテーブルなど
の履歴データを削除するのではなく、housekeeperテーブルという
テーブルに削除する対象の情報を登録しておいて、次のハウスキー
ピング処理で削除するようになっていたと思います。
ということで、削除されたアイテムに対する履歴の削除分がitems
の削除分として出力されたはずです。
shimizu - 投稿数: 7
コメントありがとうございます。
そういう仕様になっているのですね。
大変、勉強になります。
今回は大量のアイテムデータが削除されたことで、
アイテムテーブルに対してDBの最適化(OPTIMISE TABLE)を実施することで、
容量の削減を図ろうと思っております。
実際にhousekeeperが削除したitemデータが格納されているテーブルは
itemsテーブルであっていますでしょうか?
ご存知であれば教えていただきたいです。
TNK - 投稿数: 4769
レコードを削除するのはitemsテーブルではなく、先ほどの回答に
書かせて頂いた通り、
historyテーブルなどの履歴データ
です。
historyに関しては、アイテムのデータ型によって
history
history_log
history_str
history_text
history_uint
などのテーブルが対象となります。
trendsに関しては、trendsかtrends_uintになります。
shimizu - 投稿数: 7
自分の知識がなく、何度も質問して申し訳ありません。
下記のhousekeeperで削除しているものについて教えていただけますでしょうか。
housekeeper [deleted 107848 hist/trends, 4860009 items, 0 events, 0 sessions, 0 alarms, 0 audit items in 556.031245 sec, idle 1 hour(s)]
~~~~~~~~~~~~~~ ^^^^^^^^^^^^^^
上記で下線部(^^^^^^^^)にて削除している「4860009 items」というのは
ヒストリテーブルのデータのことを指しているのでしょうか。
自分としては、(~~~~~~~~~)の部分の「107848 hist/trends」がヒストリ/トレンドテーブルのデータ(history,history_log等のテーブル)であり、
「4860009 items」はアイテムテーブルのデータ(items等のテーブル)のことであると認識しておりました。
housekeeperが削除している「hist/trends」、「items」、「events」、「sessions」、「alarms」、「audit items 」というのは
結局、下記のどれかのテーブルのデータという認識であっていますでしょうか。
history
history_log
history_str
history_text
history_uint
ご存知であれば、ご教示いただきたいと思います。
TNK - 投稿数: 4769
表示がずれているかもしれませんので、housekeeperのログの行を
最初から説明します。
最初のhist/trendsの部分は、アイテムの設定の、
「ヒストリ保存期間(日)」
「トレンド保存期間(日)」
もしくは、システム全体で指定してあるデータ保存期間が過ぎた古
いhistoryテーブルなどの履歴データを削除した件数です。
2つめのitemsの部分は、アイテムを削除した時に、その時にそのア
イテムの削除処理を一気に実行してしまうとシステムに負荷を掛け
てしまうので、削除処理を保留していたhistoryテーブルなどの履
歴データ分を削除した件数です。
「events」、「sessions」、「alarms」、「audit items」に関し
ては、それぞれの役割に対応したテーブルがありますので、それら
のテーブルで削除した件数が出力されたはずです。
shimizu - 投稿数: 7
表示はかなりずれていました。
申し訳ありません。。。
丁寧に説明してくださり、ありがとうございます。
やっとhousekeeperで削除しているitemsが何かということが分かりました。
itemを削除したときの、そのitemのhistoryテーブル等に残っている
データということなのですね。
つまり、大量のitemを削除するとそれに紐づいているhistoryテーブルのデータも
削除しようとするが、一気に削除すると、負荷がかかってしまうので、
housekeeperが徐々に削除していくということですね。
今回、480万件も一気に削除しているのは
MaxHousekeeperDeleteの値をデフォルトの500から0(無制限)に変更しておりまして、
徐々に削除していたitemの付随のhistoryテーブル等のデータを一気に削除したためということですね。
だから、もともとおっしゃられていた通り、
480万件データは、itemsのhistoryテーブル等のデータを削除したということなのですね。
大変、分かりやすく丁寧な説明ありがとうございました!!!