host.create実行時のエラーについて

phpzabbixapiを使ってホストの作成をしようとしたのですがNo permissions to referred object or it does not exist!と表示されてしまいます。指定するgroupidを変更してみたところエラーが表示されるものとされないものがあり混乱しています。このエラーの解決方法を教えてください。groupidはcurlを使って下にあるように探して、コピペしているので間違っていないはずなのですが。

curl -X GET -H "Content-Type:application/json-rpc" -d '{"auth":"******", "method":"hostgroup.get", "id":1, "params":{"output":"extend"}, "jsonrpc":"2.0"}' http://localhost/zabbix/api_jsonrpc.php | jq '.'

実行環境 CentOS7, Zabbix 3.0
実行プログラム
・・・
$host = $api->hostCreate( array('host' => 'tameshi',
'interfaces' => (array(
'type' => 2,
'main' => 1,
'useip' => 1,
'ip' => 'IP address',
'dns' => '',
'port' => '161'
)),
'groups' => (array(
'groupid' => $groupid //この行の$groupidが問題
)),
'templates' => (array(
'templateid' => $templateid
))));

var_dump($host);
・・・

コメント表示オプション

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

質問される際は、「詳細な」バージョン情報をお教えください。

3.0も、すでに3.0.14までリリースされていますので、古いバージ
ョンを使用されている場合は、バージョンアップすることで改善す
る場合があります。

あと、操作に使用しているアカウントには何を使用していますか?
そのアカウントのユーザーの種類やアクセス権限も確認しなおして
みてください。

すいません書き忘れていました。確認したところ
Zabbixのバージョン:3.0.12
  ユーザーの種類:Zabbix特権管理者
 ユーザーグループ:Zabbix administrators
と設定していたのですが、エラーになります。

Zabbixのバージョンを3.0.14にアップデートしてみましたが変化はありませんでした。
3.2や3.4、4.0などのバージョンがあるそうですが使いやすいのはどちらでしょうか。

ユーザー TNK の写真

3.2は既にサポートが終了しています。

3.4はポイントリリースのバージョンですので、継続して利用する
ことはお勧めしません。
4.0が正式リリースされたら、その1ヶ月後にサポートが終了する予
定になっています。

そして、4.0はまだリリースされていません。

元々ご質問頂いた内容に関しては、まだ調査中です。

ユーザー TNK の写真

phpzabbixapiというのは使用していないので、指定されていると思
われる引数でAPIを直接curlで呼び出してホストを登録してもエラ
ーは発生しませんでした。
# Zabbix 3.0.13の環境にて確認。

新規にホストグループを作成して、そのIDを指定しても問題なく登
録できています。

指定した'groupid'に対する値には、具体的にどのような値を指定
されたのでしょうか?
あと新規に作成したホストグループですか?
それともデフォルトで用意されているホストグループですか?

すいません返信遅れました。
curlで呼び出した場合もうまくいきませんでした。

>指定した'groupid'に対する値には、具体的にどのような値を指定
 されたのでしょうか?
指定したgroupidは登録できた方が8、できなかった方が12でそれぞれ'で囲って指定していました。

>あと新規に作成したホストグループですか?
 それともデフォルトで用意されているホストグループですか?
登録できなかったホストグループは新規作成したものですが、登録できたホストグループも自分で作成したも
のです。違いは作って時間が経過していることとホストがいくつか登録されていることぐらいです。

まだいくらか試してみようと思いますができないと感じた場合は登録可能な方でやりくりしていこうと思います。
ありがとうございました。

ユーザー heya の写真

念のため確認ですが、$templateid は、全部同じものを指定しているのですか?つまり$groupid によって変えていたりしませんか?

templateidはgroupidにかかわらず固定のものを使用していました。

ユーザー catvstrada の写真

groupsで指定するIDによって、"No permissions to referred object or it does not exist!"エラーでhost.createが失敗しますが、
groups部分のarray()を2つすることで回避できました。
 ・対策前:'groups' => array('groupid' => "15"),
 ・対策後:'groups' => array(array('groupid' => "15")),

Zabbix 2.4.4のときは、array()を2回する必要はありませんでしたが、
最近、Zabbix4.0.11でエラーがでることに気づきました。array()2回の対策によって、4.0.11でもhost.createできました。

以上、ご参考まで。