problem.getでクローズ許可のみ取得する方法

お世話になっております。

ログ系の監視でトリガの生成モードを「複数」にしている障害を、手動クローズするのが手間な為、
APIを使って1時間前の障害を自動クローズしようと考えています。
APIのメソッドとパラメータは以下でeventidを取得し、そのidに対しevent.acknowledgeメソッドで
クローズする流れは一応できました。

method = 'problem.get'
params = {
'output': [ 'eventid' ],
'tags': [{'tag': 'TYPE', 'value': 'Log', 'operator': 1}],
'time_till': <1時間前のunixtime>,
'limit': 1000
}

ただ、この絞り込み条件ですと、トリガの生成モードが「単一」で手動クローズを
許可していないログ監視の障害まで取得し、「クローズ許可がない」エラーで
event.acknowledgeが終了してしまいます。

タグを別々に振り直せば絞り込みは可能なのですが
できればタグはこのままで「手動クローズを許可」している障害だけをフィルタできないでしょうか。
(難しいようであれば、おとなしくタグの振替で対応します)

どうぞよろしくお願い致します。

■環境
zabbix 4.0.5

コメント表示オプション

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

手元にすぐに確認できる環境がないのですが、
「objectids」がトリガーのID になってたりしないでしょうか。

処理が1つ増えますが、トリガーIDをもとに該当のトリガー情報を見に行って、
「manual_close」が "1" かどうかの判定を増やすのはどうでしょう。

ユーザー kz999 の写真

ありがとうございます。
確かに「objectids」の値は、「trigger.get」での「triggerid」の値と同じようでした。
この「manual_close」の値をチェックして「event.acknowledge」に渡すようにします。

最初の「problem.get」でフィルタできないのでlimit:1000のままだと
close許可してない障害が1000件超えた時に不具合が出そうですが、
またそれは別途考えます。