メインコンテンツまでスキップ
Sumo Logic Japanese

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>;
SQL> grant select on sys.dba_free_space to <username>;
SQL> grant select on sys.v_$datafile to <username>;
SQL> grant select on v_$sysstat to <username>;
クエリ 4 SQL> grant select on sys.v_$session to <username>;
SQL> grant select on sys.v_$process to <username>;
クエリ 5 と 6 SQL> grant select on sys.v_$session_wait to <username>;
SQL> grant select on sys.dba_jobs 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 をインストールします。

  1. 次のコマンドを使用して Python をインストールします。
    sudo apt install python

  2. Python バージョンを確認するには:
    python --version
    Python 2.7.12

  3. この手順では、pip がインストールされていない場合はインストールします。

  1. pip がインストールされているかどうかを判断するために、このコマンドを実行します。
    $ pip -V
    pip がインストールされていない場合は、このメッセージが表示されます。
    The program 'pip' is currently not installed.
  2. pip をインストールするには、このコマンドを実行します。
    sudo apt install python-pip
  3. インストールを確認するには、このコマンドを実行します。
    $ pip -V
    このメッセージが表示されるはずです。
    pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

ステップ 3.Linux 64bit OS での Oracle インスタント クライアントのインストール

  1. 次から Linux 用 Oracle インスタント クライアントをダウンロードします。
    http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html

  2. これらのファイルをシステムの、たとえば ~/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

  3. alien パッケージをインストールします(alien は、rpm、dpkg、stampede slp、および slackware tgz ファイル形式の変換を行うプログラムです。システムにインストールされているものとは異なるディストリビューションのパッケージを使用する場合は、alien を使用して必要なパッケージ形式に変換してからインストールできます)。
    sudo apt-get install alien

  4. ダウンロードされた 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

  5. libaio1 および libaio-dev パッケージがインストールされていない場合は、インストールします。一般的に、標準の Ubuntu では、libaio1libaio-dev は事前インストールされていません。これらのパッケージは、Oracle インスタント クライアントを開始するために必要です。
    sudo apt-get install libaio1 libaio-dev

  6. システムにインストールされている唯一の 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. などのアプリケーション設定ファイルに追加できます。

  7. クライアントをテストします。
    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

  8. 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 をセットアップします。

  1. cx_Oracle をインストールします。
    sudo pip install cx_Oracle

  2. cx_Oracle バージョンを確認します。
    $ pip list | grep cx-Oracle
    cx-Oracle (6.2.1)

ステップ 5.パフォーマンス メトリクス スクリプトのセットアップ

この手順では、パフォーマンス メトリクス スクリプトをセットアップします。

  1. 次の 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)

  2. oracle-perf-monitor.py を、たとえば /home/ubuntu/Application/sumo_OracleDB_Scripts フォルダにコピーします。

  3. スクリプト設定ファイル (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
  1. スクリプトをテストします。
    $ python oracle-perf-monitor.py

ステップ 6.スクリプト ソースの設定

この手順では、Sumo のパフォーマンス スクリプトにスクリプト ソースを設定します。

  1. Sumo Logic で [Manage Data (データの管理)] > [Collection (コレクション)] > [Collection (コレクション)] に移動します。

  2. ソースを追加するインストール済みコレクタの名前を見つけます。[Add... (追加...)] をクリックして、ポップアップ メニューから [Add Source (ソースの追加)] を選択します。

  3. [Script (スクリプト)] をソース タイプとして選択します。

    1. [Name (名前)] に、たとえば「Oracle サーバ スクリプト」などの任意の名前を入力します。
    2. 必要に応じて [Description (説明)] を入力します。
    3. [Source Category (ソース カテゴリ)] に任意のカテゴリを入力します。DB/Oracle/DBQueryScript のような値を入力できます。
    4. [Frequency (頻度)] では、たとえば 5 分などの任意の頻度を選択します。
    5. [Specify a timeout for your command (コマンドのタイムアウトを指定)] では、長く続くクエリが完了できる十分な長さの値、たとえば 30 秒を選択します。
    6. [Command (コマンド)] では /usr/bin/python. を選択します。
    7. [Script (スクリプト)] には、スクリプトへのパス、たとえば /home/ubuntu/Application/sumo_OracleDB_Scripts/oracle-perf-monitor.py を入力します。
    8. [Working Directory (作業ディレクトリ)] には、たとえば次のようなディレクトリを入力します。 
      /home/ubuntu/Application/sumo_OracleDB_Scripts
    9. [Save (保存)] をクリックします。
  • この記事は役に立ちましたか?