前編では、Orabbix をインストールする Zabbix 3.0 をインストールしました。
Orabbix では JDBC を使用して、Oracle Database のリソース(SGAやPGAなど)監視できます。
本投稿は、後編として Orabbix をインストールするまでを記載します。
前編は以下へ
http://qiita.com/junya19862/items/c75b50693326b33ac674
Orabbix公式マニュアル
ダウンロードは以下のサイトより
構成
- 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 をインポートする。
/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のホストを作成する。
# 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
確認
グラフの種類はこんな感じ。
監視が最低限必要なリソースは監視可能です。
以上、前編/後編と2回に分けて記載しましたがいかがでしたでしょうか。
皆様の Oracle Database の監視ライフに少しでもお役に立てたら光栄です。