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

概要

このセクションでは、Oracleデータベースの作成方法と、データベースとZabbixサーバー、プロキシ、Webインターフェース間の接続を設定する手順について説明します。

Oracle DBのサポートは、Zabbix 7.0以降非推奨となっています。

データベースの作成

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';

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

cd /path/to/zabbix-sources/database/oracle
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プロキシの接続設定パラメータは、設定ファイルで指定できます。サーバーおよびプロキシで重要なパラメータは、DBHostDBUserDBNameDBPassword です。Webインターフェースでも同じパラメータが重要です: $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 Webインターフェースのインストール時には、セットアップウィザードの Configure DB connection ステップで対応するパラメータを設定します。

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

または、これらのパラメータはWebインターフェースの設定ファイル (zabbix.conf.php)で設定することもできます。

$DB["TYPE"]                     = 'ORACLE';
$DB["SERVER"]                   = 'localhost';
$DB["PORT"]             = '1521';
$DB["DATABASE"]                 = 'ORCL';
$DB["USER"]                     = 'myusername';
$DB["PASSWORD"]                 = 'mypassword';
ネットサービス名

ネットサービス名を使用してOracleに接続できます。

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

サービス名を使用して接続を作成するには、このサービス名を、データベースサーバーとクライアントシステムの両方にある tnsnames.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" 接続方式の設定パラメータを指定するには、次のいずれかの方法を使用します。

  • DBHost パラメータを空に設定し、DBName は通常どおり設定します:
<!-- -->
DBHost=
DBName=ORCL
  • 両方のパラメータを設定し、両方とも空のままにします:
<!-- -->
DBHost=
DBName=

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

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

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

Zabbix Webインターフェースのインストール時には、セットアップウィザードの Configure DB connection ステップで対応するパラメータを設定します。

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

または、これらのパラメータは Webインターフェース設定ファイル(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 に変換できます。詳細は既知の問題を参照してください。