2014年8月21日木曜日

ZabbixAPIを使ってテンプレートをコピーするPHPスクリプトを書いた

ZabbixのWebUIからはテンプレートを複製する機能がありますが、どうやらAPIにはコピーのAPIがないので各種取得を実行してから作成系のAPIをコールすることでコピーを実現しています

ソースコード
https://gist.github.com/kakakikikeke/b7d6fe1bb671297b921f

簡単に実行の流れを説明すると
  1. ソース内の冒頭、configurationの部分を適宜設定
  2. コピー元になるテンプレートIDをconfigurationで設定したテンプレート名を元に取得
  3. 取得したテンプレートIDを元にテンプレートに設定してあるアイテムの情報を取得
  4. 同様に取得したテンプレートIDを元にトリガーの情報を取得
  5. コピー元のテンプレート名を元に新たにテンプレートを作成(同一テンプレート名は作成できないのでコピー元のテンプレート名を一部置換して作成)
  6. 新たに作成したテンプレートと取得したアイテムの情報を元に新規にアイテムを登録(ここでもアイテム名を一部置換)
  7. 新たに作成したテンプレートと取得したトリガー情報を元に新規にトリガーを登録(ここでもトリガー名を一部置換)

といった流れになっています
置換している部分は個人的に必要なロジックだったので使っているだけで必要に応じて削除してもらって大丈夫です

ZabbixのWebUIのソースを見ていないので何とも言えませんが、WebUIでも同じようなことをしているのだろうか

0 件のコメント:

コメントを投稿