Zabbixを監視サーバとして、下記のバージョンを使用しており、DBは同梱版のPostgreSQLを使用しております。
・zabbix-server-pgsql-3.4.6
・zabbix-agent-3.4.6
現在監視アラート件数が増大し、DB領域のディスク使用率が増加してしまい、使用率90%を超えてしまっています。
ディスク使用率を減らす、推奨方法はVACUUM FULLを実施する方法でしょうか。
監視アラートはalertsテーブルに保存されていると思いますが、他に監視アラートを保存するテーブルはありますでしょうか。
以上、よろしくお願いします。
wakaba - 投稿数: 228
①まずは、アラートデータをZABBIX上から保持期間を短くしましょう。
3.0以降なら、管理 -> 一般設定 -> データの保存期間で「イベントとアラート」の
保持期間を短くします。その後、VACCUMの実行です。順番間違えると意味ない
ので、ご注意ください
②VACUUMが良いか、FULLが良いかは状況、条件次第でデメリットもあります。
FULLが推奨という訳でもありませんのでご注意ください。またFULL実行時は
テーブルロックされますので、ZABBIXは処理終了まで止める必要があります。
VACUUM、またはFULLのどちらが正しいかという点は議論出来るほど知識は無
いので、任意の方式をとって頂くしかありません。
参考:https://wiki.postgresql.org/wiki/VACUUM_FULL/ja
尚、「他に監視アラートを保存するテーブル」って概念は存在しません。
少々ご質問の意味がわかりかねるので回答しづらいで、この場合は出来ませんと
お答えしておくに止めます。
hellozabbix - 投稿数: 21
wakaba 様
返事ありがとうございます。教えていただいた手順で確認します。
hellozabbix - 投稿数: 21
wakaba 様
バタバタして、まだVACCUMの実行ができていないですが、もう一つ確認させてください。
>①まずは、アラートデータをZABBIX上から保持期間を短くしましょう。
>3.0以降なら、管理 -> 一般設定 -> データの保存期間で「イベントとアラート」の
>保持期間を短くします。その後、VACCUMの実行です。順番間違えると意味ない
>ので、ご注意ください
保存期間を変更後、VACCUMの実行前、一時間(一定の期間)を空けたほうがいいでしょうか。
保存期間を変更後すぐにVACCUMを実行すると、保存期間の変更によるデータ削除が行われない不安があります。
それとも、時間を空けなくてもVACCUMの実行は、保存期間の変更によるデータ削除が行われますでしょうか。
TNK - 投稿数: 4769
housekeeperによる削除が実行されるのは1時間に1回なので、保存
期間を変更後、1時間程度は待った方が良いでしょう。
削除処理が実行されると、Zabbixサーバーのログに出力されるので
ログファイルを確認してください。
housekeeperによってデータが削除されて未使用領域ができていな
ければ、VACUUMの処理を行ってもディスクの空き領域は増えないと
思います。