株式会社コーソル

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

技術ブログ

  • Zabbix
  • 2018.09.30
  • 渡部 亮太

Zabbix監視処理の拡張

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

zabbix_logo_500x131.png

残念ながら、ZabbixはデフォルトのままではOracle Databaseを監視できません。Oracle Database向けの監視処理の拡張を実装する必要があります。

Zabbix監視処理を拡張する主な方法には以下の3つがあります。

  • UserParameter : 監視処理を実行するリモートコマンドをAgentで実行する
  • Zabbixトラッパー : 別途、監視対象ホストで監視処理を実行しておき、その結果となる監視データをZabbix Serverに送信する。
  • Loadable module : 共有ライブラリ(*.so)として拡張処理を実装する

上記の3つのうち、Loadable moduleを用いる方法は、UserParameterやZabbixトラッパーを用いる方法では性能上問題となる状況で使用する位置づけです。このため、まずはUserParameterやZabbixトラッパーを用いる方法に限定して学習しました。

UserParameterによる監視機能の拡張

UserParameterによる監視機能の拡張の考え方はシンプルで(「ナイーブ」が正しいかもしれない・・・)、 監視処理を実行するリモートコマンドをAgentで実行するというものです。

zabbix_pf_037.png

若干蛇足/余談気味ですが、なぜこの機能に「UserParameter」という名前を付けたんだろう・・・

Zabbixトラッパー

Zabbixトラッパによる監視機能の拡張の考え方は、Zabbix Serverに監視データの受け口を用意しておくので、そちらで勝手に監視しといてというものです(若干乱暴なまとめですが・・・)

zabbix_pf_038.png

Zabbixトラッパを構成する流れは以下の通りです。

  1. Zabbix Server側で受け取る監視データに対応するトラッパーアイテムを作成しておく必要がある
    • アイテムタイプ=トラッパー
    • キー文字列=監視データ(JSON形式)のkey
  2. 監視対象ホストで監視処理および監視データ送信処理を定期的に実行する
    • 送信する監視データのフォーマットはJSON

なお、Zabbixには監視データ送信処理を実装したコマンドとしてzabbix_senderが用意されており、 簡単な監視処理であれば、監視処理とzabbix_senderの呼出しを行うスクリプトを作成し、これをcronで定期的に実行することで実装が可能です。

zabbix_pf_039.png

プロフィール

On7tWW6m1Ul4

渡部 亮太

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

カテゴリー

アーカイブ