APIを利用したユーザ登録について(バージョン2.0.4)

kenchanといいます。

Zabbix 2.0.4にてユーザの登録をAPIを利用して行おうとして、うまくいきません。
元々は、Rubyの zbxapiライブラリを利用としていました。
ユーザグループの登録はうまくいったのですが、ユーザの登録がうまくできませんでした。
会社の環境なので、エラーの内容は失念してしまいました。

とりあえず、curlコマンドで登録できないかと試行錯誤したのですが、こちらもうまくいきませんでした。参考にしたのは、http://www.zabbix.com/documentation/2.0/manual/appendix/api/user/create です。 curlコマンドは何も表示されませんでした。
このAPIのリファレンスをみると、user data, usrgrps, user_mediasは必須とありましたが、例をみるとuser_mediasが指定されていないように見えました。
また、user dataのパラメータの渡し方がarray or objectとありますが、この例の渡し方は正しいのか、わかりませんでした。

もちろん、curlに渡すauthは、事前に user.login メソッドでadminユーザを指定した結果を渡しています。usrgrpsのusrgrpidは、APIで取得した値を指定しました。例とは異なり二桁"16"という数字でした。

そこで、以下の2点についてご教授ください。
- user.createのメソッドの使い方(curlコマンドの場合)
- user.createのメソッドで、rubyのAPI(zbxapi)を利用方法

Zabbixの機能から考えると、APIを使ってユーザを登録するなんて利用方法はもしかして少ないような気もします。そのため、いろいろと検索してみたのですが、思ったような情報が得られませんでした。
もしかしたら、phpのソースを読んだ方が早いのでしょうか? phpは今までまともに読んだことがないので、ちょっと困っています。

よろしくお願いします。

コメント表示オプション

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

kenchanです。

あまりコメントがつかないところをみると、APIを使っている人が少ないのか、私の情報が不足しているのか... そもそも、会社のマシンなので詳細な情報を投稿できていないのが問題かもしれませんね。

結論から言いますと、何とかうまく動くようになりました。
バージョンが2.0.4になってから、zbxapiのrawのインターフェースが使えなくなっていました。で、もっと単純に zbxapi.user.createのメソッドが割と簡単でした。

curlのコマンドは、単純なミスで パラメータが一つ抜け落ちていました。

あと、APIのリファレンスですが、user_mediasは必須ではありませんでした。ドキュメントのミスかなと思うのですが...

私なりにわかったことは、APIのイメージとZabbixのWebの操作が割と似ているということです。つまり、Webの操作と同じようなことをAPIで行えばよいといった感じでした。
もちろんプログラミングなので、エラーチェックやユーザの存在確認など処理は必要でした。

実は、Webからユーザ登録の時にメディアを指定しないので、ユーザ作成のAPIにuser_mediasが必須というのが疑問でした。実際にAPIを使ってもuser_mediasは必須ではありませんでした。
この調子でAPIによる他の操作も簡単にできそうです。

(おまけ)
一晩問題を寝かせると、意外と自己解決するものですね。