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人日で実施可能でだろう。