This is a translation of the original English documentation page. Help us make it better.

13 Oracleデータベースセットアップ

概要

このセクションにはOracleデータベースを作成し、データベースとZabbixサーバー、プロキシ、およびフロントエンド間の接続を構成する手順が含まれています。

データベースの作成

passwordというパスワードを持つzabbixデータベースユーザーが存在し、hostのOracleデータベースサーバーにあるORCLサービスでデータベースオブジェクトを作成する権限を持っていることを前提としています。 Zabbixには、Unicodeデータベースの文字セットとUTF8国別文字セットが必要です。現在の設定を確認します。

sqlplus> select parameter,value from v$nls_parameters where parameter='NLS_CHARACTERSET' or parameter='NLS_NCHAR_CHARACTERSET';

次にデータベースを準備します。

shell> cd /path/to/zabbix-sources/database/oracle
       shell> sqlplus zabbix/password@oracle_host/ORCL
       sqlplus> @schema.sql
       # Zabbixプロキシ用のデータベースを作成している場合はここまで
       sqlplus> @images.sql
       sqlplus> @data.sql

最高のパフォーマンスを得るには、初期化パラメータCURSOR_SHARING=FORCEを設定してください。

接続設定

Zabbixは2種類の接続識別子(接続方法)をサポートしています。

  • Easy Connect
  • Net Service Name

ZabbixサーバーとZabbixプロキシの接続設定パラメータは設定ファイルで設定できます。サーバーとプロキシーの重要なパラメーターはDBHostDBUserDBName、およびDBPasswordです。同じようにフロントエンドでも次のパラメータが重要です:$DB["SERVER"],$DB["PORT"], $DB["DATABASE"], $DB["USER"],$DB["PASSWORD"]

Zabbixは次の接続文字列構文を使用します。

{DBUser/DBPassword[@<connect_identifier>]} 

<connect_identifier>は"Net Service Name"または"Easy Connect"のいずれかの形式で指定できます。

@[[//]Host[:Port]/<service_name> | <net_service_name>]

Easy Connect

Easy Connectは、次のパラメーターを使用してデータベースに接続します。

  • Host - データベースサーバーのホスト名またはIPアドレス(構成ファイルのDBHostパラメーター)
  • Port - データベースサーバーのリスニングポート(構成ファイルのDBPortパラメーター。設定されていない場合はデフォルトの1521ポートが使用されます)
  • <service_name> - アクセスするデータベースのサービス名(構成ファイルのDBNameパラメーター)

サーバーまたはプロキシ設定ファイル(zabbix_server.confおよびzabbix_proxy.conf)で設定されたデータベースパラメータ:

DBHost=localhost
       DBPort=1521
       DBUser=myusername
       DBName=ORCL
       DBPassword=mypassword

Zabbixが接続を確立するために使用する接続文字列:

DBUser/DBPassword@DBHost:DBPort/DBName

Zabbixフロントエンドのインストール中に、セットアップウィザードのデータベース接続設定ステップで対応するパラメータを設定します。

  • Database host: localhost
  • Database port: 1521
  • Database name: ORCL
  • User: myusername
  • Password: mypassword

またはこれらのパラメーターをフロントエンド構成ファイル(zabbix.conf.php)で設定することもできます。

$DB["TYPE"]                     = 'ORACLE';
       $DB["SERVER"]                   = 'localhost';
       $DB["PORT"]             = '1521';
       $DB["DATABASE"]                 = 'ORCL';
       $DB["USER"]                     = 'myusername';
       $DB["PASSWORD"]                 = 'mypassword';

Net service name

Zabbix 5.4.0以降ではNet service nameを使用してOracleに接続できます。

<net_service_name>は接続記述子に解決されるサービスの単純な名前です。

接続の作成にサービス名を使用するには、このサービス名をデータベースサーバーとクライアントシステムの両方にあるnsnames.oraファイルで定義する必要があります。接続が成功することを確認する最も簡単な方法はTNS_ADMIN環境変数でtnsnames.oraファイルの場所を定義することです。 tnsnames.oraファイルのデフォルトの場所は次のとおりです。

$ORACLE_HOME/network/admin/

簡単なtnsnames.oraファイルの例:

ORCL =
         (DESCRIPTION =
           (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
           (CONNECT_DATA =
             (SERVER = DEDICATED)
             (SERVICE_NAME = ORCL)
           )
         )

"Net Service Name"接続のパラメータを設定するには、次のいずれかのオプションを使用します。 To set configuration parameters for the "Net Service Name" connection method, use one of the following options:

  • DBHostを空で設定し、DBNameを通常どおり設定します
DBHost=
       DBName=ORCL
  • パラメーターを設定せず両方を空のままにします。
DBHost=
       DBName=

2番目のケースでは、TWO_TAKS環境変数にデフォルトのリモートOracleサービス(サービス名)を設定する必要があります。この変数が定義されている場合、コネクタは、接続要求を受け入れるOracleリスナーを使用して、指定されたデータベースに接続します。この変数は、LinuxおよびUNIXでのみ使用されます。 Microsoft WindowsではLOCAL環境変数を使用します。

ORCLと設定されたネットサービス名とデフォルトのポートを使用してデータベースに接続します。サーバーまたはプロキシ設定ファイル(zabbix_server.conf and zabbix_proxy.conf)で設定されたデータベースパラメータは次の通りです。

DBHost=
       #DBPort=
       DBUser=myusername
       DBName=ORCL
       DBPassword=mypassword

Zabbixフロントエンドのインストール中に、セットアップウィザードのデータベース接続設定ステップで対応するパラメータを設定します。

  • Database host:
  • Database port: 0
  • Database name: ORCL
  • User: myusername
  • Password: mypassword

または、これらのパラメーターをフロントエンド構成ファイル(zabbix.conf.php)で設定することもできます。

$DB["TYPE"]                     = 'ORACLE';
       $DB["SERVER"]                   = '';
       $DB["PORT"]           = '0';
       $DB["DATABASE"]                 = 'ORCL';
       $DB["USER"]                     = 'myusername';
       $DB["PASSWORD"]                 = 'mypassword';

Zabbixが接続を確立するために使用する接続文字列は以下です。

DBUser/DBPassword@ORCL

既知の問題点

パフォーマンスを向上させるには、 nclob から nvarchar2 にフィールドタイプを変換してください。詳細は 既知の問題点 を参照してください。