Linux
oracle
zabbix

(後編)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 の監視ライフに少しでもお役に立てたら光栄です。