This is the documentation page for an unsupported version of Zabbix.
Is this not what you were looking for? Switch to the current version or choose one from the drop-down menu.

15 ODBC監視

15.1 概要

ODBC監視は、ZabbixのWebインターフェースでの「データベースモニタ」のアイテムタイプに相当します。

ODBCとは、データベース管理システム(DBMS)にアクセスするためにC言語で書かれたミドルウェアAPIです。ODBCの概念は、Microsoftによって作り出され、後に他のプラットフォームに移植されました。

Zabbixは、あらゆるデータベースにクエリーを行うことができますが、これはODBCによりサポートされています。クエリーを行う場合、Zabbixは直接データベースに接続することなく、ODBCインターフェースとODBCにセットアップされているドライバーを使用します。この機能により、特定のデータベースキュー、使用統計のチェックといった複数の目的で、さまざまなデータベースをより効率的に監視できます。Zabbixは、unixODBCをサポートしています。これは、最も一般的に使用されるオープンソースODBC API実装のうちの1つです。

15.2 unixODBCのインストール

unixODBCのインストール方法として、Linuxオペレーティングシステムのデフォルトパッケージのリポジトリを使用することを推奨します。ほとんどの一般的なLinuxのディストリビューションでは、unixODBCは、デフォルトのパッケージ保存場所に含まれています。利用できない場合、unixODBCのホームページ http://www.unixodbc.org/download.htmlで入手できます

yumパッケージマネージャーを使用してunixODBCをRedHat/Fedoraベースのシステムにインストールするには、次を実行します。

shell> yum -y install unixODBC unixODBC-devel

zypperパッケージマネージャーを使用してunixODBCをSUSEベースのシステムにインストールするには、次を実行します。

# zypper in unixODBC-devel

unixODBC-develパッケージは、unixODBCをサポートするようにZabbixをコンパイルするのに必要です。

15.3 unixODBCドライバーのインストール

監視対象のデータベースに対して、unixODBCデータベースドライバーをインストールする必要があります。unixODBCでサポートされているデータベースとドライバーのリストは、http://www.unixodbc.org/drivers.htmlで参照できます。一部のLinuxのディストリビューションでは、データベースドライバーは、パッケージ保存場所に含まれています。//yum//パッケージマネージャーを使用してMySQLデータベースドライバーをRedHat/Fedoraベースのシステムにインストールするには、次を実行します

shell> yum install mysql-connector-odbc

zypperパッケージマネージャーを使用してMySQLデータベースドライバーをSUSEベースのシステムにインストールするには、次を実行します。

zypper in MyODBC-unixODBC

15.4 unixODBCの設定

ODBCの設定は、odbcinst.iniファイルとodbc.iniファイルを編集して行います。設定ファイルの場所を確認するには、次を入力します。

shell> odbcinst -j

odbcinst.iniを使用して、インストールされているODBCデータベースドライバーを次のように列記します。

 [mysql]
       Description = ODBC for MySQL
       Driver      = /usr/lib/libmyodbc5.so 

パラメータの詳細は次のとおりです。

属性 説
mysql データベースドライバー名。
Description データベースドライバーの説明。
Driver データベースドライバーライブラリの場所。

odbc.iniを使用して、データベースのソースを次のように定義します。

 [test]
       Description = MySQL test database
       Driver      = mysql
       Server      = 127.0.0.1
       User        = root
       Password    =
       Port        = 3306
       Database    = zabbix

パラメータの詳細は次のとおりです。

属性 説
test データソース名(DSN)。
Description データソースの説明。
Driver odbcinst.iniで指定されているデータベースドライバー名
Server データベースサーバのIP/DNS。
User 接続用のデータベースユーザー。
Password データベースユーザーのパスワード。
Port データベースの接続ポート番号。
Database データベース名。

ODBC接続が正しく機能しているかどうか検証するため、データベースへの接続をテストする必要があります。これは、isqlユーティリティ(unixODBCパッケージに含まれています)により、次のように実行できます。

 shell> isql test
        +---------------------------------------+
        | Connected!                            |
        |                                       |
        | sql-statement                         |
        | help [tablename]                      |
        | quit |
        |                                       |
        +---------------------------------------+
       SQL> 

15.5 ODBCをサポートするZabbixのコンパイル

ODBCのサポートを有効にするには、次のフラグを立ててZabbixをコンパイルする必要があります。

   --with-unixodbc[=ARG]   unixODBCパッケージに対してodbcドライバーを使用 

Zabbixのソースコードからのインストールに関する詳細を参照してください。

15.6 ZabbixのWebインターフェースでのアイテムの設定

次のように、データベース監視アイテムを設定します。

データベース監視アイテム専用に、次を入力する必要があります。

タイプ ここ データベースモニタを選択します。
キー * db.odbc.select**[unique_description,data_source_name]を入力します。
この固有の記述は、トリガーなどでアイテムを識別するのに役立ちます。
データソース名(DSN)は、odbc.iniで指定したものを設定する必要があります。
ユーザー名 データベ スユーザー名を入力します(ユーザーをodbc.iniで指定する場合はオプション)。
パスワード データベ スユーザーのパスワードを入力します(パスワードをodbc.iniで指定する場合はオプション)。
SQLクエリー SQL エリーを入力します。
データ型 ここで しく選択できるように、クエリーで返されるデータ型を知っておくことが重要です。データ型が間違っていると、アイテムは取得不可になります。

15.7 重要事項

  • クエリーは、サーバのタイムアウトパラメータを超えて実行してはいけません。Zabbix 2.0.8から、このタイムアウトパラメータの値は、ODBCログインタイムアウトとしても使用されます(ODBCドライバーによっては、ログインタイムアウト設定が無視される可能性があることに注意してください)。
  • クエリーは、1つの値のみを返す必要があります。
  • クエリーが複数の列を返す場合は、最初の列しか読み込まれません。
  • クエリーが複数の行を返す場合は、最初の行しか読み込まれません。
  • SQLコマンドは、selectから始まる必要があります。
  • SQLコマンドは、強制改行を含んではいけません。

15.8 エラーメッセージ

Zabbix 2.0.8からは、ODBCエラーメッセージはフィールドによって構成され、より詳細な情報が提供されます。例:

 Cannot execute ODBC query:[SQL_ERROR]:[42601][7][ERROR: syntax error at or near ";"; Error while executing the query]|
        -------------------------  ---------   -----  |  ------------------------------------------------------------------- |
                    |                  |         |    `-Native error code            `- error message.                      `-Record separator
                    |                  |         `-SQLState
                    `- Zabbix message  `- ODBC return code 

エラーメッセージの長さは128バイトに制限されているため、メッセージが打ち切られる場合があることに注意してください。ODBC診断記録が複数ある場合は、Zabbixは、長さ制限の許す限り、それらをつなぐようにします。


本ページは2014/08/05時点の原文を基にしておりますので、内容は必ずしも最新のものとは限りません。
最新の情報は、英語版のZabbix2.2マニュアルを参照してください。