ZabbixAPIを使うメリット
これは私が現状使っていて享受しているメリットを記載する。
ZabbixAPIはZabbixで行う大半の操作が可能、逆に言えばGUI済むのであれば敢えて扱いの難しいAPIを使う必要はない。
しかし、「大量の設定を追加・修正する」際に、ZabbixAPIが使える場合天と地ほど作業時間の差が出る。
例1) 新規追加のシステム(サーバ群)を新規監視登録する場合
「こんな監視をしてください」というリストが構築担当から提供される場合が多い。
CPU・メモリ等のリソース監視は概ねお任せにされるが、特定プロセスやサービス監視、ポート監視、ログ監視等は指定されるケースが多い。
この量が尋常でなく多い場合のGUI操作では、アイテム名とアイテムキーの一部を書き換えながら1つずつ複製していく操作になることが多い。
ところが「複製」→「追加」とせず、「更新」としてしまうと追加済みのアイテムが置き換わったりして、入力操作も手間であればその後の入力内容確認も手間である。
ZabbixAPIであれば渡されたリストから、「アイテム名」と「アイテムキー」をテキスト変換等で生成し、最終的にitem.createのAPIで使用可能なJSONに置換していく作業で完了となる。
テンプレートの作成が終わっていて、純粋に300個のポート監視アイテムのみを追加であれば、1~2時間もあれば設定可能である。(もっと定型化を進めれば30分切りも難しくないと思う)
ディスカバリを活用すれば不要かもしれないが、構築中サーバなどでは難しいかもしれない。
例2) 登録済みトリガーの閾値を一定のルールで置換する場合
アイテムのヒストリ保持期間変更等、「一括更新」で対応可能な内容であれば良いが
アイテム名やアイテムキー、トリガー名やトリガーキーなどはGUIでは1件ずつ書き換えることになる。
しかしZabbixAPIを駆使すれば、現在登録されているポート監視の全件を抽出し、トリガー条件式を書き換えて全件更新することも可能である。
上記のような作業で、Zabbixへの操作に関わる部分は、ZabbixAPIを使えるようになってから、ほぼ私一人で可能な状態となった。
作業時間を見積もる際、1アイテム登録1分、1トリガー登録1分で積算してもかなりタイトになりがちであるが、ZabbixAPIを使用すると同種の登録や変更であれば、その数に因らず作業時間は延びなくなる。
4000~5000アイテムと同数のトリガーの設定時に、ZabbixAPI使いはじめ当時は手探りもあり、15人日を要していたが、使い慣れた現状であれば5人日で実施可能でだろう。