Zabbix ダッシュボードからすべてのトリガーを取得する必要があります。したがって、トリガーがある場合は、重大度に関係なく、これを取得する必要があります。これは、1 つのエントリを含むトリガー ダッシュボードのスクリーンショットです:
クリックすると大きく表示されます
。したがって、アクティブなトリガーがない場合、このリストは空です。
私がすでに持っているもの:
jsonObj.put("method", "trigger.get");
// Priority: 0 = Not classified | 1 = Information | 2 = Warning | 3 =
// Average | 4 = High | 5 = Disaster
jsonObj.put(
"params",
(new JSONObject().put(
"filter",
new JSONObject().put("priority", 1).put("group", "WZU-Server")).put(
"output", "extend")));
しかし、これはもうアクティブではない多くの古いトリガーを返します。本当に必要なのは、ダッシュボードに表示されるトリガーだけです!
どうすればこれを達成できますか?zabbix APIで何時間も取得できません...
情報:
グループ ID は 7 です
このグループにはさまざまなホストがあります
トリガーのステータスが OK の場合、それは必要ありません。問題がある場合のみ。
編集
私は私の目標に本当に近いです。
私の現在のコードは次のようになります。
int count = 2;
while (count <= 5){
jsonObj.put("jsonrpc", "2.0");
jsonObj.put("method", "trigger.get");
// Value: 0 = OK | 1 = PROBLEM | 2 = UNKNOWN
// Priority: 0 = Not classified | 1 = Information | 2 = Warning | 3 =
// Average | 4 = High | 5 = Disaster
// count = priority. It start with two and end with 5
jsonObj.put("params", (new JSONObject().put("filter", new JSONObject().put("priority", count).put("group", "WZU-Server").put("value", 1)).put("output", "extend")));
jsonObj.put("id", 0);
jsonObj.put("auth", "8ba6b9f29dd68e0c98cdea9ee01f2614");
putMethod.setRequestEntity(new StringRequestEntity(jsonObj.toString(), "application/json", "UTF-8"));
}
この時点で、私のダッシュボードは空です。したがって、このコードのオブジェクトを取得するべきではありません。
「警告」は空なので大丈夫です。
"Average は 8 個のオブジェクトを返します。すべてのオブジェクトが 1 週間以上経過しています。悪いです!
"High" は空なので問題ありません。
"Disaster" は 1 個のオブジェクトを返します。このオブジェクトは 1 週間以上経過しています。悪いです!
では、ダッシュボードのエントリのみを取得するにはどうすればよいでしょうか?