Edited at

(後編)Zabbix で Orabbix インストール

More than 1 year has passed since last update.

前編では、Orabbix をインストールする Zabbix 3.0 をインストールしました。

Orabbix では JDBC を使用して、Oracle Database のリソース(SGAやPGAなど)監視できます。

本投稿は、後編として Orabbix をインストールするまでを記載します。

前編は以下へ

http://qiita.com/junya19862/items/c75b50693326b33ac674


Orabbix公式マニュアル

http://www.smartmarmot.com/wiki/index.php?title=Orabbix#ORABBIX


ダウンロードは以下のサイトより

http://www.smartmarmot.com/product/orabbix/download/


構成


OSバージョン

CentOS6.7 64bit

※SELinux無効しておく

Zabbix 3.0

Oracle Database 12.1.0.2 64bit

PHP 5.6

Apache 2.2

MySQL 5.7


zipファイル解凍

# Orabbix は orabbix-1.2.3.zip という名前の zip ファイルで提供される。

# マニュアルに従い、/opt/orabbix に解凍する。
cd /opt/
sudo mkdir orabbix
sudo unzip orabbix-1.2.3.zip


セットアップ

# /opt/orabbix/init.d/orabbix を /etc/init.d/orabbix としてコピーし、

# /etc/init.d/orabbix と /opt/orabbix/run.sh に実行権限を与える。
sudo cp /opt/orabbix/init.d/orabbix /etc/init.d/orabbix
sudo chmod 755 /etc/init.d/orabbix
sudo chmod 755 /opt/orabbix/run.sh


監視対象の Oracle Database 設定

# SYSユーザで Oracle Database にログイン

sqlplus / as sysdba

# zabbix ユーザ作成
CREATE USER ZABBIX
IDENTIFIED BY zabbix
DEFAULT TABLESPACE SYSTEM
TEMPORARY TABLESPACE TEMP
PROFILE DEFAULT
ACCOUNT UNLOCK;

# zabbix ユーザへロールと権限付与
GRANT CONNECT TO ZABBIX;
GRANT RESOURCE TO ZABBIX;
ALTER USER ZABBIX DEFAULT ROLE ALL;
GRANT SELECT ANY TABLE TO ZABBIX;
GRANT CREATE SESSION TO ZABBIX;
GRANT SELECT ANY DICTIONARY TO ZABBIX;
GRANT UNLIMITED TABLESPACE TO ZABBIX;
GRANT SELECT ANY DICTIONARY TO ZABBIX;

# 指定プロシージャ実行
exec dbms_network_acl_admin.create_acl(acl => 'resolve.xml',description => 'resolve acl', principal =>'ZABBIX', is_grant => true, privilege => 'resolve');
exec dbms_network_acl_admin.assign_acl(acl => 'resolve.xml', host =>'*');
commit;

# 設定確認
# localhost と返ってくること。
select utl_inaddr.get_host_name('127.0.0.1') from dual;
UTL_INADDR.GET_HOST_NAME('127.0.0.1')
--------------------------------------------------------------------------------
localhost


Zabbix へテンプレートインポート

Zabbix へ Admin/zabbix でログインし、設定 > テンプレート> インポートと押下。

/opt/orabbix/template/Orabbix_export_full.xml をインポートする。

1.png


/opt/orabbix/conf/config.props の設定


設定ファイル作成

# /opt/orabbix/conf/config.props.sample をコピーして、/opt/orabbix/conf/config.props を作成する。

sudo cp /opt/orabbix/conf/config.props.sample /opt/orabbix/conf/config.props


設定

# DatabaseList の SID は Zabbix で設定したホスト名と同じにする。

sudo vi /opt/orabbix/conf/config.props
#pidFile
OrabbixDaemon.PidFile=./logs/orabbix.pid
#frequency of item's refresh
OrabbixDaemon.Sleep=300
#MaxThreadNumber should be >= than the number of your databases
OrabbixDaemon.MaxThreadNumber=100

#put here your databases in a comma separated list
DatabaseList=<DBインスタンス名>

#Configuration of Connection pool
#if not specified Orabbis is going to use default values (hardcoded)
#Maximum number of active connection inside pool
DatabaseList.MaxActive=10
#The maximum number of milliseconds that the pool will wait
#(when there are no available connections) for a connection to be returned
#before throwing an exception, or <= 0 to wait indefinitely.
DatabaseList.MaxWait=100
DatabaseList.MaxIdle=1

#define here your connection string for each database
<DBインスタンス名>.Url=jdbc:oracle:thin:@<ホスト名>:<リスナーポート>:orcl
<DBインスタンス名>l.User=zabbix
<DBインスタンス名>.Password=zabbix
#Those values are optionals if not specified Orabbix is going to use the general values
<DBインスタンス名>.MaxActive=10
<DBインスタンス名>.MaxWait=100
<DBインスタンス名>.MaxIdle=1
<DBインスタンス名>.QueryListFile=./conf/query.props

DB2.Url=jdbc:oracle:thin:@server2.domain.example.com:<LISTENER_PORT>:DB2
DB2.User=zabbix
DB2.Password=zabbix_password
DB2.QueryListFile=./conf/query.props

DB3.Url=jdbc:oracle:thin:@server3.domain.example.com:<LISTENER_PORT>:DB3
DB3.User=zabbix
DB3.Password=zabbix_password
DB3.QueryListFile=./conf/query.props


ホスト作成

インポートしたテンプレートを指定して、DBインスタンス名と同名のZabbixのホストを作成する。

2.png

# Orabbix 再起動

sudo /etc/init.d/orabbix restart

# 動作しているかはログを確認
cat /opt/orabbix/logs/orabbix.log
2017-09-15 19:58:39,668 [main] INFO Orabbix - Starting Orabbix Version 1.2.3
2017-09-15 19:58:39,714 [main] INFO Orabbix - Orabbix started with pid:3563
2017-09-15 19:58:39,714 [main] INFO Orabbix - PidFile -> ./logs/orabbix.pid
2017-09-15 19:58:39,990 [main] INFO Orabbix - DB Pool created: org.apache.commons.dbcp.datasources.SharedPoolDataSource@62bbf09c
2017-09-15 19:58:39,990 [main] INFO Orabbix - URL=jdbc:oracle:thin:@ora190:1521:orcl
2017-09-15 19:58:39,990 [main] INFO Orabbix - maxPoolSize=10
2017-09-15 19:58:39,990 [main] INFO Orabbix - maxIdleSize=1
2017-09-15 19:58:39,990 [main] INFO Orabbix - maxIdleTime=1800000ms
2017-09-15 19:58:39,990 [main] INFO Orabbix - poolTimeout=100
2017-09-15 19:58:39,990 [main] INFO Orabbix - timeBetweenEvictionRunsMillis=-1
2017-09-15 19:58:39,990 [main] INFO Orabbix - numTestsPerEvictionRun=3
2017-09-15 19:58:41,710 [main] INFO Orabbix - Connected as ZABBIX
2017-09-15 19:58:41,712 [main] INFO Orabbix - --------- on Database -> orcl


確認

グラフを確認すると監視されていることがわかる。

3.png

グラフの種類はこんな感じ。

監視が最低限必要なリソースは監視可能です。

4.png

以上、前編/後編と2回に分けて記載しましたがいかがでしたでしょうか。

皆様の Oracle Database の監視ライフに少しでもお役に立てたら光栄です。