Zabbix Documentation 2.2

2.23.04.0 (current)In development:4.2 (devel)Unsupported:1.82.02.43.23.4

User Tools

Site Tools

This translation is older than the original page and might be outdated. See what has changed.

Sidebar

jp:manual:config:items:itemtypes:odbc_checks

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マニュアルを参照してください。