アラート送信キューに大量にメールが溜まってしまった場合
以下で全除する方法を知りました。
この方法は、全メールが削除されてしまいます。
UPDATE alerts SET status = "1" where status = "0";
SQLを工夫することで、一部のメール(alert id)だけ
status = "1"に変更するようにしたら
アラート送信キューの一部だけを削除することが
可能でしょうか?
一部の削除だけをおこなって、zabbix本体の動作に
支障はないのでしょうか?
よろしくお願い致します。
zabbix 2.4.7
wakaba - 投稿数: 228
広瀬です
alertidは送られるメール毎にインクリメントされますので、指定する意味は持ちません(1件毎に異なる)。
代わりにactionidとstatusの2つを検索に指定すれば良いかと思います。
actionidはアクションで作成したアクションの1件そのものです。そのIDとstatusが『0』のものという条件
で検索し、Updateすることで良いかと思います。尚、対象となるアクションを作り直した場合、IDが変化
しますので、その場合にはそれに合わせる必要が出てきます
SQLに於けるUPDATEコマンドは更新(上書き)を意味し、削除する訳ではありません。滞留している
未送信アラートキューを「送信済み(を示す値)にした」と変更させているに過ぎません。
ご質問にある「一部だけ削除で、Zabbixに影響あるか」という点に関しては、UPDATEコマンドの意味を
ご存じならば解消されるお話かと思います。