登録したトリガーの一覧抽出について

いつもお世話になっております。

表題の件、初歩的な質問で申し訳ございません。
現在、監視システムを他システムからzabbix 2.4.8へ移行しております。

必要なトリガーはほぼ移行し、トリガーの移行漏れが等がないかのチェックの段階になり、チェック方法につきまして、
Web画面からホストを検索し、設定したトリガーを事前に準備してあるリストと
突き合わせる、もしくは全てのホストをxmlにエクスポートして成型する以外に
何らかの方法はございますでしょうか。

ご教示の程よろしくお願い致します。

コメント表示オプション

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

ZabbixのAPIを使用して、トリガーの一覧を取得することができま
す。
ただし、突合せしやすいフォーマットにして出力するためには、
何らかのスクリプトを作成することが必要になると思います。

例えば、ホスト「Zabbix server」に設定されているトリガーの一
覧を取得するときには、以下のような引数でAPIを呼び出して取得
することができます。

{
 "jsonrpc": "2.0",
 "method": "trigger.get",
 "params":
 {
  "host": "Zabbix server",
  "output": "extend",
  "expandExpression": "true"
 },
 "auth": "f851f69c054fbcd57dcbe596886b48dc",
 "id": 1
}

※Zabbix 3.0.7の環境で確認

あと気になったのは、使用されているバージョンが2.4.8というこ
とです。
すでにサポートが終了していて不具合や脆弱性の問題が残ったまま
となっている可能性がありますので、早急にバージョンアップを検
討されることをお勧めします。

ユーザー T-A の写真

TNK様

お世話になっております。
返信遅くなり申し訳ございません。

API上から一覧を取得できる旨承知しました。

ちなみにSQLのテーブルからトリガー名および条件式を抽出することは
可能でしょうか。

よろしくお願い致します。

ユーザー heya の写真

>ちなみにSQLのテーブルからトリガー名および条件式を抽出することは
>可能でしょうか。

可能といえば可能でしょうが、トリガー名や条件式内のマクロは展開されていないし、条件式の関数の部分はIDになっているので、該当する物を探して置換するという作業が必要で、さらに、関数に使われているアイテムもIDから引っ張ってくる必要があり、かなり大変(というか、面倒)だと思いますよ。
API の "expandExpression": "true" に頼った方が楽です。

ユーザー fripper の写真

DB的には、トリガーのメインデータはtriggers テーブルに保存されています

トリガーで設定されている各条件式は expression カラムにあるのですが
"{20197}#1|{20198}<1|{20199}=0|{20200}#0 "
"{20056}=0"
のような文字列記載となっています

条件式内の {} で括られた数値が functions テーブルの functionid となっていて
functions テーブル側に、
・式で書かれている item の itemid
・last / diff / nodata 等の関数
のような情報が記録されています

このような構造のため、単純なSQLだけではトリガー条件式を
GUI等から設定している条件式の表現にすることは難しく、
単純なSQLだけでなく、結果文字列をパースしたうえで別SQLを実行して、
欲しい条件式表現を生成‥といったようなプログラムの介在が不可欠です

正直なところ、直接SQLではなく、API経由のほうが、データの取り回しは
ラクになるかと思います‥

ユーザー T-A の写真

heya様 fripper様

お世話になっております。
ご連絡遅くなり申し訳ございません。

DBの担当に確認したところ、やはり
ご指摘通りデータの取り回しが複雑なのでSQLから抽出するのは
得策ではないとの結論となりました。

API経由で実施しようと思います。

有難うございました。