Zabbixで使用してるデータベースのサイズをすぐに減らす方法
Zabbixでサーバー監視をしているのですが、利用しているデータベースそのものが肥大化した状態になっています。
過去のフォーラムを見ていると
・ヒストリーの期間を短くする
・監視する時間間隔を広くする
・トレンドの値を小さくする
などが見られたのでこれらも対処しようと思うのですが、いかんせんハードディスクのサイズが逼迫しているため手っ取り早く削除できる方法を探しています。できれば直近のもの(例えば30日分)とかは残しておきたいと思っています。
使用しているデータベースはPostgreSQLです。今のところhistoryテーブルとhistory_uintのテーブルが大半を占めているというところまではわかっています。
宜しくお願いします。
TNK - 投稿数: 4753
まずは、
の設定を行って下さい。
あと、
管理 -> 一般設定 -> データの保存期間
にデータの保存期間の設定もあったと思いますので、ここの日数も
小さくしておいたほうが良いでしょう。
その後、zabbix_serverプロセスを再起動するか、1時間程度経過す
ると
というようにログが出力され古いデータが削除されるはずです。
あとは、PostgreSQLを利用されているようですので、VACUUM FULL
を実行すれば良いのではないでしょうか?
もしくは、pg_dumpでバックアップを取得してDBを作成しなおすこ
とになると思います。
利用されているPostgreSQLのバージョンがわかりませんが、古いバ
ージョンだとVACUUM実行中はDBにアクセスできなくなったり、新し
いバージョンでもレスポンスの低下が発生したりすると思いますの
で、zabbix_serverも停止して作業された方が良いと思います。
tommy - 投稿数: 20
TNK様
回答ありがとうございます。教えていただいた方法を早速試してみます。
利用しているPostgreSQLのバージョンは8.4.4です。Vacuum Full等を実行しようと思ったのですが、ほぼディスクフルの状態(10GB程度残っている状態)ですので難しい気がしてきました。
ちなみにpg_dumpでダンプして作り直したい場合は空のデータベースを作成後にダンプ内容をリストアするだけで問題ないと思ってよろしいでしょうか?それとも何か設定が必要になりますでしょうか?
TNK - 投稿数: 4753
通常のPostgreSQLのDBバックアップとリカバリの手順で問題無かった
と思います。
tommy - 投稿数: 20
TNK様
試しにvacuume fullを試したのですが半日たっても一向に終わる見込みもなかったため、設定ファイルをエクスポートしてZabbixデータベースを再構築しました。
今後は履歴保存期間を短くして運用するようにします。ありがとうございました。