ksaitoの日記

日々試したことの覚え書き

orabbixでOracleを監視する(設定編)

Orabbixは、設定ファイルに監視対象のOracleや通知するZabbixサーバの接続情報、監視のためのSQLを設定する必要があります。
設定は、/opt/orabbix/conf/config.propsファイルにkey=value形式の設定ファイルで設定します。
監視のために発行するSQLSQLの結果をモニタするZabbixのアイテムは名前ベースのマッピングとなるので最初に動かすときには関係が分かりづらいです。
OrabbixでOracleを監視する場合のサーバとソフトウェアの設定の関係を書いてみました。(これも分かりやすいかどうか微妙ですが...)

接続情報の設定

通知先のZabbixサーバ

/opt/orabbix/conf/config.propsファイルにZabbixサーバの接続情報を設定します。
下記のようにZabbixServerListに任意の名前を定義します。
名前.Addressに通知するZabbixサーバのIPアドレス、名前.Portにポートを設定します。
カンマ区切りで複数のZabbixサーバに通知することができます。

#comma separed list of Zabbix servers
ZabbixServerList=ZabbixServer1

ZabbixServer1.Address=10.1.1.10
ZabbixServer1.Port=10051

ZabbixServer2.Address=IP_ADDRESS_OF_ZABBIX_SERVER
ZabbixServer2.Port=PORT_OF_ZABBIX_SERVER
監視対象のOracle

同じ設定ファイルに監視対象のOracleの接続情報を設定します。
下記のようにDatabaseListにZabbixに登録するホスト名と同じ名前を定義します。(ココが一つ目のポイント!)
名前.UrlにJDBC URL、名前.UserにOracleユーザ名、名前.Passwordにパスワードを設定します。
名前.QueryListFileには監視のためのSQL文が記載されたファイルを指定します。

#put here your databases in a comma separated list
DatabaseList=XE

#define here your connection string for each database
XE.Url=jdbc:oracle:thin:@oracle:1521:XE
XE.User=zabbix
XE.Password=pass
#Those values are optionals if not specified Orabbix is going to use the general values
XE.MaxActive=10
XE.MaxWait=100
XE.MaxIdle=1
XE.QueryListFile=./conf/query.props

Zabbixへのホスト登録

Zabbixにホストを登録します。
ホスト名をDatabaseListに定義した名前に合わせて設定し、Template_Oracleを適用します。

Orabbixの起動

Orabbixを起動すると監視が始まります。

$ sudo /etc/init.d/orabbix start

動いているかどうかは、Orabbixのログファイルを見るとわかります。

$ pwd
/opt/orabbix/logs
$ multitail orabbix.log
 2011-12-10 19:23:40,614 [main] INFO  Orabbix - Starting Orabbix Version 1.2.3
 2011-12-10 19:23:40,622 [main] INFO  Orabbix - Orabbix started with pid:16449
 2011-12-10 19:23:40,623 [main] INFO  Orabbix - PidFile -> ./logs/orabbix.pid
 2011-12-10 19:23:40,757 [main] INFO  Orabbix - DB Pool created: org.apache.commons.dbcp.datasources.SharedPoolDataSource@70cb6009
 2011-12-10 19:23:40,758 [main] INFO  Orabbix - URL=jdbc:oracle:thin:@oracle:1521:XE
 2011-12-10 19:23:40,758 [main] INFO  Orabbix - maxPoolSize=10
 2011-12-10 19:23:40,759 [main] INFO  Orabbix - maxIdleSize=1
 2011-12-10 19:23:40,759 [main] INFO  Orabbix - maxIdleTime=1800000ms
 2011-12-10 19:23:40,759 [main] INFO  Orabbix - poolTimeout=100
 2011-12-10 19:23:40,760 [main] INFO  Orabbix - timeBetweenEvictionRunsMillis=-1
 2011-12-10 19:23:40,760 [main] INFO  Orabbix - numTestsPerEvictionRun=3
 2011-12-10 19:23:41,032 [main] INFO  Orabbix - Connected as ZABBIX
 2011-12-10 19:23:41,034 [main] INFO  Orabbix - --------- on Database -> XE
 2011-12-10 19:23:41,396 [pool-1-thread-1] INFO  Orabbix - Done with dbJob on database XE QueryList elapsed time 331 ms
 2011-12-10 19:24:41,097 [pool-1-thread-2] INFO  Orabbix - Done with dbJob on database XE QueryList elapsed time 19 ms

グラフを見てみる

Template_Oracleには、69個のアイテムと14個のトリガー、13個のグラブが定義されています。
Oracleの基本的な監視は揃っているようです。