株式会社コーソル

コーソルDatabaseエンジニアのブログ

技術ブログ

  • Zabbix
  • 2018.09.30
  • 渡部 亮太

動的なZabbixアイテム設定 (ユーザーマクロとローレベルディスカバリ)

渡部です。 実は以前から弊社にZabbixを用いたOracle Database監視に関するご相談が増えてきたこともあり、 私を含めた複数のコーソル メンバーがOracle Database監視を想定したZabbixの拡張の実装に取り組んでいます。

zabbix_logo_500x131.png

Zabbixにおいて監視を実装するということは、監視項目を定義すること、すなわちアイテムを設定(作成)することになるわけですが、設定するアイテムの構成は環境により異なります。

具体的に表領域の監視を行うとしても、表領域の名前や数は環境によりことなるため、 アイテム設定の定義を一概に決めることはできません。 このため、動的にアイテムを設定する仕組みが必要となるわけですが、それを実現するのがユーザーマクロとローレベルディスカバリです。

動的なアイテム設定の基本となる考え方はシンプルです。

  • 可変となる部分を変数化したアイテムのプロトタイプを、テンプレートに定義する
  • テンプレートをホストにリンクすると、変数部分が定数化され、アイテム定義が動的に決定されてホストに継承される

zabbix_pf_023.png

1つのアイテムのプロトタイプから、1つのアイテムを動的に設定する場合はユーザーマクロを使用します。 また、1つのアイテムのプロトタイプから、1つ以上の複数のアイテムを動的に設定する場合はローレベルディスカバリを使用します。

ユーザーマクロ

ユーザーマクロを用いて動的にアイテムを設定する考え方は、ユーザーマクロを使って変数の設定値を定義しておき、これをアイテム定義が動的に決定するときに使用するというものです。

zabbix_pf_025.png

ユーザーマクロは、グローバルレベル、テンプレートレベル、およびホストレベルで定義できます。

ローレベルディスカバリ

ローレベルディスカバリを用いて動的にアイテムを設定する考え方は、 1つのアイテムのプロトタイプから、1つ以上の複数のアイテムを動的に設定するため、 ディスカバリルールと呼ばれる一種の関数から複数パターンの変数設定を得るというものです。

zabbix_pf_027.png

ローレベルディスカバリの動作のカギになるのは、ディスカバリルールです。 ディスカバリルールは、監視対象のホストの構成に応じて、JSON形式で複数パターンの変数設定(変数=値)を返す一種の関数です。

zabbix_pf_028.png

zabbix_pf_029.png

プロフィール

On7tWW6m1Ul4

渡部 亮太

・Oracle ACE
・AWS Certified Solutions Architect - Associate
・ORACLE MASTER Platinum Oracle Database 11g, 12c 他多数

カテゴリー

アーカイブ