コーソルDatabaseエンジニアのブログ
技術ブログ
目次
渡部です。 実は以前から弊社にZabbixを用いたOracle Database監視に関するご相談が増えてきたこともあり、 私を含めた複数のコーソル メンバーがOracle Database監視を想定したZabbixの拡張の実装に取り組んでいます。
残念ながら、ZabbixはデフォルトのままではOracle Databaseを監視できません。Oracle Database向けの監視処理の拡張を実装する必要があります。
Zabbix監視処理を拡張する主な方法には以下の3つがあります。
上記の3つのうち、Loadable moduleを用いる方法は、UserParameterやZabbixトラッパーを用いる方法では性能上問題となる状況で使用する位置づけです。このため、まずはUserParameterやZabbixトラッパーを用いる方法に限定して学習しました。
UserParameterによる監視機能の拡張の考え方はシンプルで(「ナイーブ」が正しいかもしれない・・・)、 監視処理を実行するリモートコマンドをAgentで実行するというものです。
若干蛇足/余談気味ですが、なぜこの機能に「UserParameter」という名前を付けたんだろう・・・
Zabbixトラッパによる監視機能の拡張の考え方は、Zabbix Serverに監視データの受け口を用意しておくので、そちらで勝手に監視しといてというものです(若干乱暴なまとめですが・・・)
Zabbixトラッパを構成する流れは以下の通りです。
なお、Zabbixには監視データ送信処理を実装したコマンドとしてzabbix_senderが用意されており、 簡単な監視処理であれば、監視処理とzabbix_senderの呼出しを行うスクリプトを作成し、これをcronで定期的に実行することで実装が可能です。