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 - 投稿数: 4719
質問される際は、「詳細な」バージョン情報をお教えください。
3.0も、すでに3.0.14までリリースされていますので、古いバージ
ョンを使用されている場合は、バージョンアップすることで改善す
る場合があります。
あと、操作に使用しているアカウントには何を使用していますか?
そのアカウントのユーザーの種類やアクセス権限も確認しなおして
みてください。
masa.beginner - 投稿数: 11
すいません書き忘れていました。確認したところ
Zabbixのバージョン:3.0.12
ユーザーの種類:Zabbix特権管理者
ユーザーグループ:Zabbix administrators
と設定していたのですが、エラーになります。
masa.beginner - 投稿数: 11
Zabbixのバージョンを3.0.14にアップデートしてみましたが変化はありませんでした。
3.2や3.4、4.0などのバージョンがあるそうですが使いやすいのはどちらでしょうか。
TNK - 投稿数: 4719
3.2は既にサポートが終了しています。
3.4はポイントリリースのバージョンですので、継続して利用する
ことはお勧めしません。
4.0が正式リリースされたら、その1ヶ月後にサポートが終了する予
定になっています。
そして、4.0はまだリリースされていません。
元々ご質問頂いた内容に関しては、まだ調査中です。
TNK - 投稿数: 4719
phpzabbixapiというのは使用していないので、指定されていると思
われる引数でAPIを直接curlで呼び出してホストを登録してもエラ
ーは発生しませんでした。
# Zabbix 3.0.13の環境にて確認。
新規にホストグループを作成して、そのIDを指定しても問題なく登
録できています。
指定した'groupid'に対する値には、具体的にどのような値を指定
されたのでしょうか?
あと新規に作成したホストグループですか?
それともデフォルトで用意されているホストグループですか?
masa.beginner - 投稿数: 11
すいません返信遅れました。
curlで呼び出した場合もうまくいきませんでした。
>指定した'groupid'に対する値には、具体的にどのような値を指定
されたのでしょうか?
指定したgroupidは登録できた方が8、できなかった方が12でそれぞれ'で囲って指定していました。
>あと新規に作成したホストグループですか?
それともデフォルトで用意されているホストグループですか?
登録できなかったホストグループは新規作成したものですが、登録できたホストグループも自分で作成したも
のです。違いは作って時間が経過していることとホストがいくつか登録されていることぐらいです。
まだいくらか試してみようと思いますができないと感じた場合は登録可能な方でやりくりしていこうと思います。
ありがとうございました。
heya - 投稿数: 319
念のため確認ですが、$templateid は、全部同じものを指定しているのですか?つまり$groupid によって変えていたりしませんか?
masa.beginner - 投稿数: 11
templateidはgroupidにかかわらず固定のものを使用していました。
catvstrada - 投稿数: 1
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できました。
以上、ご参考まで。