APIを利用してアクションの情報を取得したい

OS:CentOS :7.2
Zabbix Server :3.2.11
--------------------------------------------
ZabbixServer上に設定しているアクションの情報をAPIで出力したいと考えています。
※アクションの有効無効問わず全ての設定値を出力したい。
"action.get"メソッドを利用して以下内容で実行しました。

---------------------------------------------------------------------------
curl -X GET -H "Content-Type:application/json-rpc" \
-d '{"auth":"'${TOKEN}'",
"method":"action.get",
"id":1,
"params":"output":"extend", "selectOperations": "extend", "selectConditions": "extend"}, "jsonrpc":"2.0"}' \
${URL} > act.txt
---------------------------------------------------------------------------

出力結果をみると、リモートコマンドを実行するアクションについては取得できていますが、
メール送信を行うアクションについては取得されていません。
目的としては、全てのアクションを取得したいためget.actionメソッドでのparamsの指定方法に
誤りがあるのではと思っております。
全てのアクション(設定値も含めて)について出力する方法をご教示願います。

コメント表示オプション

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

動作確認を全然してない中で返信して恐縮なのですが、取り急ぎ一点気になりましたので...

3.2 で "selectConditions" のオプションは使用可能ですか?
マニュアル上記載はないですが... (2.2はあります)

API もバージョンによって異なるので、
使用されているバージョンにあったマニュアルに答えが書かれているかもしれません。
(私でも動作確認出来たら追記したいと思います。)

ユーザー dondoc の写真

yk_taikoさん

>3.2 で "selectConditions"・・・
マニュアルに記載ありませんね。。
オプションから外して再度実行しましたが挙動としては変化ありませんでした。
動作確認できましたら、投稿のほどよろしくお願いいたします。

ユーザー yk_taiko の写真

3.2.11 をインストールして試しましたが、「"output":"extend", "selectOperations": "extend",」 で取得できています。

どう取れないのかもう少し具体的に記載いただければと思います。

記載いただいている内容だと、ソースがトリガー以外のもの出力されるかと思いますが、それは出力されていますか。

ユーザー dondoc の写真

yk_taikoさん

どのように取得できていないか下記に記載します。

現状、Zabbixコンソールのアクションからみると4つのアクションが定義されています。

[コンソールのアクション]
(1)アクションID:7 /リモートコマンドを実行するアクション
(2)アクションID:3 /メッセージを送信するアクション
(3)アクションID:9 /リモートコマンドを実行するアクション
(4)アクションID:8 /メッセージを送信するアクション

[action.getで取得した場合]
(1)アクションID:2 /Auto discovery
(2)アクションID:7 /リモートコマンドを実行するアクション
(3)アクションID:9 /リモートコマンドを実行するアクション

上記のように、メッセージ送信するアクションについて、
action.getでは出力されない状態です。
また全てのアクションは"有効"になっております。
アクションの情報としては、トリガー以外にもメンテナンスモードの設定など
他多数出力されております。

お手数ですが、何か情報がございましたらご教示願います。

ユーザー yk_taiko の写真

API でフィルターをかけていなければ、有効でも無効でも出力されます。

以下、確認したい事項です。

・内部イベントのアクションが無いようですが、アクションは削除されましたか。
・「"filter": {"eventsource": "0"}」 を param に追加してみた場合にどうなりますか。

ユーザー fripper の写真

渡している json data 内にて
======
"params":{"output":"extend", "selectOpe
======
params に渡すパラメータの先頭の「開き中括弧」が漏れていませんか?

SelectConditions": "extend"の後に「閉じ中括弧」は書かれていますが、それに対応する
「開き中括弧」が無く、渡そうとした json の先頭部の「開き中括弧」がそれとして
解釈されている気がします

掲示板記載時の漏れ・転記ミスであれば良いのですが‥

ユーザー dondoc の写真

fripperさん

ご指摘ありがとうございます。
単純に転記ミスでした。。
下記内容で取得しようとしています。
-----------------------------------------------------------------------------------------------------------
curl -X GET -H "Content-Type:application/json-rpc" \
-d '{"auth":"'${TOKEN}'",
"method":"action.get",
"id":10,
"params":{"output":"extend","selectOperations":"extend"}, "jsonrpc":"2.0"}' \
${URL} > act.txt
-----------------------------------------------------------------------------------------------------------