Linux での Oracle パフォーマンス メトリクス スクリプトのセットアップ
このページでは、Linux で Oracle アプリケーション用のパフォーマンス メトリクス スクリプトをセットアップする手順を説明します。
スクリプトは次の環境で開発、テストされています。
-
Ubuntu OS (16.04.3 LTS)、Python (2.7.12)、Oracle Database 11g Enterprise エディション リリース 11.2.0.1.0 - 64 ビット製品
パフォーマンス メトリクス スクリプトについて
Oracle 用 Sumo アプリケーションは、データベース テーブルに対してクエリを実行する Python スクリプトを使用して、Oracle サーバのパフォーマンス メトリクスを収集します。
スクリプトはデータベース ユーザ アカウントを使用してデータベースに接続し、一連の SQL クエリ サンプルを実行して、クエリ結果を JSON 形式でコンソールに出力します。アカウント資格情報と SQL クエリは、スクリプト設定ファイル oracle-perf-monitor.cfg で指定されています。
設定ファイルの "[queries]" セクションに含まれる SQL クエリは、サンプルとして提供されています。必要に応じてクエリを追加、変更、削除できます。使用する予定のクエリは DBA に確認してもらうことをお勧めします。
SQL クエリを実行するために使用するデータベース ユーザには、特定のデータベース、テーブル、およびビューにアクセスし、クエリを実行する権限が必要です。次のテーブルは、各クエリに必要な権限を付与するための SQL コマンドを示しています。
クエリ | 権限を付与する SQL コマンド |
クエリ 1 ~ 3 | SQL> grant select on sys.v_$tablespace to <username>; |
クエリ 4 | SQL> grant select on sys.v_$session to <username>; |
クエリ 5 と 6 | SQL> grant select on sys.v_$session_wait to <username>; |
ステップ 1.Linux バージョンの確認
お使いのマシンで現在実行されている Linux のバージョンを確認し、スクリプトとの互換性を確保します。
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.3 LTS
Release: 16.04
Codename: xenial
ステップ 2.Linux 用 Python 2.7.12 のインストール
この手順では、Linux 用 Python 2.7.12 をインストールします。
-
次のコマンドを使用して Python をインストールします。
sudo apt install python
-
Python バージョンを確認するには:
python --version
Python 2.7.12 -
この手順では、pip がインストールされていない場合はインストールします。
- pip がインストールされているかどうかを判断するために、このコマンドを実行します。
$ pip -V
pip がインストールされていない場合は、このメッセージが表示されます。
The program 'pip' is currently not installed.
- pip をインストールするには、このコマンドを実行します。
sudo apt install python-pip
- インストールを確認するには、このコマンドを実行します。
$ pip -V
このメッセージが表示されるはずです。
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
ステップ 3.Linux 64bit OS での Oracle インスタント クライアントのインストール
-
次から Linux 用 Oracle インスタント クライアントをダウンロードします。
http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html -
これらのファイルをシステムの、たとえば
~/Application/oracle
フォルダにコピーします。
Oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm
Oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm
Oracle-instantclient12.2-sqlplus-12.2.0.1.0-1.x86_64.rpm -
alien パッケージをインストールします(alien は、rpm、dpkg、stampede slp、および slackware tgz ファイル形式の変換を行うプログラムです。システムにインストールされているものとは異なるディストリビューションのパッケージを使用する場合は、alien を使用して必要なパッケージ形式に変換してからインストールできます)。
sudo apt-get install alien
-
ダウンロードされた Oracle インスタント クライアント RPM パッケージをインストールします。
sudo alien -i oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm
sudo alien -i oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm
sudo alien -i oracle-instantclient12.2-sqlplus-12.2.0.1.0-1.x86_64.rpm -
libaio1
およびlibaio-dev
パッケージがインストールされていない場合は、インストールします。一般的に、標準の Ubuntu では、libaio1
とlibaio-dev
は事前インストールされていません。これらのパッケージは、Oracle インスタント クライアントを開始するために必要です。
sudo apt-get install libaio1 libaio-dev
-
システムにインストールされている唯一の Oracle ソフトウェアがインスタント クライアントの場合は、たとえば次のようにランタイム リンク パスを更新します。
sudo sh -c "echo /usr/lib/oracle/12.2/client64/lib > \
/etc/ld.so.conf.d/oracle-instantclient.conf"
sudo ldconfig
またはLD_LIBRARY_PATH
環境変数を設定してから、アプリケーションを実行します。例:
Export LD_LIBRARY_PATH=/opt/oracle/instantclient_12_2:$LD_LIBRARY_PATH
必要に応じて、変数を~/.bash_profile
などの設定ファイルや/etc/sysconfig/httpd.
などのアプリケーション設定ファイルに追加できます。 -
クライアントをテストします。
sqlplus64 username/password@//databasehost:1521/sidvalue
SQL*Plus: Release 12.2.0.1.0 Production on Tue Mar 20 08:39:20 2018
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options -
SQL クエリ サンプルを実行して、接続をテストします。
SQL> select * from v$version ;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
ステップ 4.Linux での cx_Oracle のセットアップ
この手順では、Oracle とのオープン ソースの Python インターフェイスである cx_Oracle をセットアップします。
-
cx_Oracle をインストールします。
sudo pip install cx_Oracle
-
cx_Oracle バージョンを確認します。
$ pip list | grep cx-Oracle
cx-Oracle (6.2.1)
ステップ 5.パフォーマンス メトリクス スクリプトのセットアップ
この手順では、パフォーマンス メトリクス スクリプトをセットアップします。
-
次の Sumo Python パフォーマンス メトリクス スクリプトと設定ファイルをダウンロードします。
oracle-perf-monitor.cfg
(https://s3.amazonaws.com/script-collection/oracle/r1.0.0/oracle-perf-monitor.cfg)
oracle-perf-monitor.py
(https://s3.amazonaws.com/script-collection/oracle/r1.0.0/oracle-perf-monitor.py) -
oracle-perf-monitor.py
を、たとえば/home/ubuntu/Application/sumo_OracleDB_Scripts
フォルダにコピーします。 -
スクリプト設定ファイル (
oracle-perf-monitor.cfg
) を次のように更新します。[dbLogin]
セクションで、各パラメータの値を指定します。
[dbLogin]
oraUser= database user id example myuser123
oraPassword= user password example mypwd123
oraHost=server name example ip-101-25-17-22
oraPort=port number example 1521
oraInstance=oracle instance SID (SID_NAME) example XE
-
スクリプトをテストします。
$ python oracle-perf-monitor.py
ステップ 6.スクリプト ソースの設定
この手順では、Sumo のパフォーマンス スクリプトにスクリプト ソースを設定します。
-
Sumo Logic で [Manage Data (データの管理)] > [Collection (コレクション)] > [Collection (コレクション)] に移動します。
-
ソースを追加するインストール済みコレクタの名前を見つけます。[Add... (追加...)] をクリックして、ポップアップ メニューから [Add Source (ソースの追加)] を選択します。
-
[Script (スクリプト)] をソース タイプとして選択します。
- [Name (名前)] に、たとえば「Oracle サーバ スクリプト」などの任意の名前を入力します。
- 必要に応じて [Description (説明)] を入力します。
- [Source Category (ソース カテゴリ)] に任意のカテゴリを入力します。
DB/Oracle/DBQueryScript
のような値を入力できます。 - [Frequency (頻度)] では、たとえば 5 分などの任意の頻度を選択します。
- [Specify a timeout for your command (コマンドのタイムアウトを指定)] では、長く続くクエリが完了できる十分な長さの値、たとえば 30 秒を選択します。
- [Command (コマンド)] では
/usr/bin/python.
を選択します。 - [Script (スクリプト)] には、スクリプトへのパス、たとえば
/home/ubuntu/Application/sumo_OracleDB_Scripts/oracle-perf-monitor.py
を入力します。 - [Working Directory (作業ディレクトリ)] には、たとえば次のようなディレクトリを入力します。
/home/ubuntu/Application/sumo_OracleDB_Scripts
- [Save (保存)] をクリックします。