zabbix

orabbixでOracleを監視する(インストール編)

zabbixでOracleを監視してみました。
zabbixで直接、Oracleを監視するのではなくorabbixというJDBCベースのエージェントからOracleにログインして各種SQLを発行し、取得した値をZabbixに通知する仕組みです。
エージェントを動かすサーバにはJRE6以上があればよく、監視対象のOracleにはエージェントは不要でディクショナリにアクセスできるOracleユーザを準備するだけです。
これなら既存のデータベースにも割と簡単に組み込むことができます。
日本語の情報は少ないのですが、Orabbixのサイトにあるインストール手順に従って比較的簡単に導入できます。

ダウンロードと展開

Orabbixは、zipファイルで提供されます。
インストール手順は、/opt/orabbixに展開される前提です。

$ cd /opt
$ ls
$ sudo mkdir orabbix
$ cd orabbix
$ sudo unzip /tmp/orabbix-1.2.3.zip
Archive:  /home/ksaito/orabbix-1.2.3.zip
creating: conf/
inflating: conf/config.props.sample
inflating: conf/log4j.properties
inflating: conf/log4j.properties.sample
inflating: conf/query.props
inflating: conf/query.props.sample
inflating: conf/query_a.props
inflating: conf/query_a_1.props
inflating: conf/query_b.props
creating: doc/
inflating: doc/CHANGELOG.txt
inflating: doc/Orabbix_Install_v0.6.pdf
inflating: doc/gpl.txt
creating: init.d/
inflating: init.d/orabbix
inflating: install.cmd
creating: lib/
inflating: lib/commons-codec-1.4.jar
inflating: lib/commons-dbcp-1.4.jar
inflating: lib/commons-lang-2.5.jar
inflating: lib/commons-logging-1.1.1.jar
inflating: lib/commons-pool-1.5.4.jar
inflating: lib/hsqldb.jar
inflating: lib/log4j-1.2.15.jar
inflating: lib/ojdbc6.jar
inflating: orabbix-1.2.3.jar
inflating: orabbix.exe
inflating: orabbixw.exe
inflating: run.bat
inflating: run.sh
creating: template/
inflating: template/Orabbix_export_full.xml
inflating: template/Orabbix_export_graphs.xml
inflating: template/Orabbix_export_items.xml
inflating: template/Orabbix_export_triggers.xml
inflating: uninstall.cmd
inflating: conf/query - Copy.props
$ 

セットアップ

展開後にいくつか設定したらインストール完了です。

$ sudo cp /opt/orabbix/init.d/orabbix /etc/init.d
$ sudo chmod u+x /etc/init.d/orabbix
$ sudo chmod u+x /opt/orabbix/run.sh
$ 

監視対象のデータベースの設定

Orabbixは、JDBCで監視対象のデータベースに接続してディクショナリのデータを取得しZabbixサーバに送信します。
監視対象のOracleには、監視専用のユーザを作成する必要があります。

SQL> CREATE USER ZABBIX IDENTIFIED BY <<パスワード>>
2  DEFAULT TABLESPACE SYSTEM
3  TEMPORARY TABLESPACE TEMP
4  PROFILE DEFAULT
5  ACCOUNT UNLOCK;
ユーザーが作成されました。
SQL> GRANT CONNECT TO ZABBIX;
権限付与が成功しました。
SQL> GRANT RESOURCE TO ZABBIX;
権限付与が成功しました。
SQL> ALTER USER ZABBIX DEFAULT ROLE ALL;
ユーザーが変更されました。
SQL> GRANT SELECT ANY TABLE TO ZABBIX;
権限付与が成功しました。
SQL> GRANT CREATE SESSION TO ZABBIX;
権限付与が成功しました。
SQL> GRANT SELECT ANY DICTIONARY TO ZABBIX;
権限付与が成功しました。
SQL> GRANT UNLIMITED TABLESPACE TO ZABBIX;
権限付与が成功しました。
SQL> GRANT SELECT ANY DICTIONARY TO ZABBIX;
権限付与が成功しました。
SQL> 

後処理

Oracle 11gの場合、以下の後処理が必要となるようです。

SQL> select utl_inaddr.get_host_name('127.0.0.1') from dual;
UTL_INADDR.GET_HOST_NAME('127.0.0.1')
--------------------------------------------------------------------------------
localhost
SQL> exec dbms_network_acl_admin.create_acl(acl => 'resolve.xml',description => 'resolve acl', principal =>'ZABBIX', is_grant => true, privilege => 'resolve');
PL/SQLプロシージャが正常に完了しました。
SQL> exec dbms_network_acl_admin.assign_acl(acl => 'resolve.xml', host =>'*');
PL/SQLプロシージャが正常に完了しました。
SQL> commit;
コミットが完了しました。
SQL> 

Zabbix側の設定

/opt/orabbix/template/Orabbix_export_full.xmlをZabbixにインポートします。

これで、Template_Oracleがインポートされます。
以上でOrabbixのインストールは完了です。

タイトルとURLをコピーしました