株式会社コーソル

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

技術ブログ

  • Zabbix
  • 2018.09.30
  • 渡部 亮太

Orabbixについて少し調べてみた

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

その作業の中で、以前Orabbixについて少し調べてみた時のメモを書いておきたいと思います。

orabbix_logo_02.png

ご存知の方が多いとは思いますが、ZabbixはOSSの運用監視ツールでは現在デファクトスタンダードといってよいソフトウェアです。導入コストが低いことから、弊社のお取引先でも多くのお客様がご利用ですが、残念ながらデフォルトのままではOracle Databaseの監視はできません。作りこみをするか、拡張機能を導入する必要があります。

若干古いですが、Zabbix関連の著作で有名なAndrea Dalle Vacche氏が作成したOracle Database監視のZabbix拡張であるOrabbixが存在していますので、 参考のため、以前調査しました。

Orabbixの特徴および気になる点

  • 無償 / GPLライセンス
  • 最新リリース: 1.2.2 (2011年10月12日)
  • 動作要件
    • Zabbix 1.8.x (最新: Zabbix 3.4 / 4.0近日中リリース予定)
    • Oracle Database 10gR2, 10gR1
    • Java Runtime Environment 6 (最新: Java 11)

最近はアクティブな状態では無いようで、動作要件が全般的に古いですね。

Orabbixのアーキテクチャ

orabbix_003.png

Orabbixアーキテクチャの特徴は以下の通りです。

  • Orabbix監視の実体はOrabbixサーバ上で動作するOrabbixデーモン
    • Java 6で実装
    • (※) Orabbixサーバは単独のサーバとせず、Zabbixサーバなどに同居することも可能
  • OrabbixデーモンはJDBCリモート接続を用いてOracleデータベースに接続し、監視データを収集する
    • 複数データベースを監視可能
  • 収集した監視データはZabbixトラッパーを用いてZabbix Serverに送信される
    • Orabbixデーモンがzabbix_sender相当の機能を持つイメージ
  • アイテムを定義したテンプレートTemplate_Oracleが提供されるため、監視対象ホストにこのテンプレートをリンク(適用)すると、Orabbixが定義した監視項目を使ってそのホストを監視できる

Orabbix同梱のZabbixテンプレートTemplate_Oracleで提供されるアイテムとグラフ

Orabbixには、アイテムなどを定義したZabbixテンプレートTemplate_Oracleが同梱されており、 監視対象ホストにこのテンプレートをリンク(適用)すると、Orabbixが定義したアイテムなどを使ってそのホストを監視できます。

以下にテンプレートTemplate_Oracleに含まれるアイテムとグラフの一覧を示します。 なお、このテンプレートにはアイテムとグラフ以外にもトリガーも含まれています。

テンプレートTemplate_Oracleのアイテムの一覧

orabbix_items_graphs.png

テンプレートTemplate_Oracleのグラフ一覧

orabbix_graphs.png

実際のグラフ表示例は http://www.smartmarmot.com/wiki/index.php?title=Orabbix#What_can_it_monitor.3F から確認できます。

config.pros

Orabbixのアーキテクチャで示した通り、監視処理の主体/実体はOrabbixデーモンです。 そのOrabbixデーモンの設定はconfig.prosファイルに指定します。

基本的な構成におけるconfig.prosファイルの主要な設定は、

  1. 監視データ送信先となるZabbix Serverのアドレス情報
  2. 監視対象となるOracleデータベースへのJDBCリモート接続の接続情報
  3. Oracleデータベースの監視処理で使用する監視クエリ定義

です。

orabbix_012.png

監視クエリの構成

監視データを取得するために実行する監視クエリ(SELECT文)は、query.propsファイルに定義されており、通常はこれを使用します。アイテムに対応する形で監視クエリが定義されています。

orabbix_015.png

orabbix_013.png

ただ、何らかの理由で監視クエリ(SELECT文)をデフォルトから変更したい場合は、query.propsファイルに定義されているSELECT文を変更したり、変更を加えた監視クエリ(SELECT文)を記載した別の監視クエリ定義ファイルを使用することもできます。

また、監視対象のOracleデータベース毎に異なる監視クエリ定義ファイルを使用可能です。 これは、バージョンによって監視データを得るSELECT文が異なる場合などに有効です。

orabbix_014.png

監視クエリ構成の基本は監視クエリのSELECT文を定義することですが、これ以外もいくつかの設定が可能です。

orabbix_016.png

orabbix_017.png

orabbix_018.png

Orabbixについて

弊社では独自にOracle Database監視機能の実装を進めているため、Orabbixをそのまま使うことは考えにくいのですが、 Orabbixの適度な柔軟性は良い感じに思えます 🙂

  • システム構成が柔軟かつ一般的な用途に沿っている
    • 1つのOrabbixサーバから複数データベースを監視可能
    • ZabbixサーバとOrabbixサーバを分離可能 : ZabbixサーバからOracleへのリモート接続が不可な場合に必要になる
  • アイテムおよび監視処理の拡張性が比較的高い
    • アイテムごとに監視間隔を設定可能
    • 接続先データベース毎に実行するクエリを変更可能
    • アイテムの追加が可能

プロフィール

On7tWW6m1Ul4

渡部 亮太

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

カテゴリー

アーカイブ