【Zabbix 】 
ZabbixによるMS SQL監視 
データベースモニタリングの使 
い方 
ODBC監視設定 
2014.11 @qryuu
自己紹介 
 HN :九龍真乙 
 所属:株式会社サーバーワークス 
:自宅ラック勉強会 
 TwitterID : @qryuu 
2 2014/11/25
ZabbixによるDB監視 
3 2014/11/25
標準テンプレートによるMySQL監 
視 
 Zabbixでは標準の「Template App MySQL」を利用す 
ることのより、MySQLのパフォーマンス監視が可 
能です。 
 「Template App MySQL」の使用方法については、 
Zabbix 2.0による簡単MySQL 監視 
http://www.slideshare.net/qryuu/zabbix- 
20zabbix20mysql をご覧ください。 
4 2014/11/25
データベースモニタによる監視 
 Zabbix ではODBCを利用した「データベースモニ 
タ」により、直接DBへログインし、SQLの実行結 
果を監視することができます。 
 今回の資料では、このデータベースモニタの使い 
方を解説します。 
5 2014/11/25
ODBC監視の仕組み 
6 2014/11/25
ODBCの仕組み 
 ODBC(Open Database Connectivity)とは 
RDBMSにアクセスするための共通インタフェー 
ス(API)である。 
データへのアクセスを統一化することを目的とし 
ており、たとえばクライアント/サーバ型ではな 
いMicrosoft Accessの管理するデータベースファイル 
ル(MDB)や、そもそもRDBMSではないCSVファイルへ 
ルへのアクセスなども、それに対応するODBCドラ 
イバがあれば、他の一般的なデータベースへのア 
クセスするのと同様な方法で利用することが可能 
になる。(wikipedhiaより) 
7 2014/11/25
ZabbixでのODBC 
 実際の動作は以下の様なイメージになります。 
ZabbixがODBCマネージャに対してSQL文やログイ 
ン情報を渡し、ODBCマネージャがODBCドライバ 
を使用して対象のRDMBMSに接続します。 
8 2014/11/25 
Zabbix-Server 
データベース 
モニタODBCマネージャODBCドライバRDBMS
ZabbixでのODBC 
 MS SQLServerを監視する場合、実際に必要なパッ 
ケージは次のようになります。 
9 2014/11/25 
Zabbix-Server 
データベース 
モニタODBCマネージャODBCドライバRDBMS 
unixODBC FreeTDS MS SQL Server
ZabbixでのODBC 
 また、各パッケージに必要な設定ファイルは次の 
ようになります。 
10 2014/11/25 
Zabbix-Server 
データベース 
モニタODBCマネージャODBCドライバRDBMS 
/etc/odbc.ini 
/etc/odbcinst.ini 
/etc/freetds.conf MS SQL Server
ODBC監視の手順 
11 2014/11/25
必要パッケージの導入 
 実際にODBC監視を行うのに必要なパッケージを導 
入します。 
 Zabbixを公式パッケージで導入している場合、 
ODBCマネージャであるunixODBCは、依存関係に 
よりすでにインストールされていますので、MS 
SQLと接続するためのODBCドライバであるFreeTDS 
を追加します。 
12 2014/11/25 
$ sudo yum install freetds
FreeTDSの設定 
 FreeTDSではMS SQLサーバへのコネクション情報を 
設定します。 
 設定ファイルは/etc/freetds.confです。 
#コメント 
[hogehoge] #この部分がODBCで指定する”Servername” になります。 
13 2014/11/25 
host = <IPアドレスまたはFQDN> 
port = 1433 
tds version = 8.0 
client charset = UTF-8 
#実際の設定はこんな感じ 
[DB01] 
host = db01.xxxxyyyzzz.ap-northeast-1.rds.amazonaws.com 
port = 1433 
tds version = 8.0 
client charset = UTF-8
FreeTDSの設定 
 複数のRDBMSに接続する場合は次のようになりま 
す。 
14 2014/11/25 
#DB01 
[DB01] 
host = 192.168.0.50 
port = 1433 
tds version = 8.0 
client charset = UTF-8 
#RDS01 
[RDS01] 
host = rds01.xxxyyyzzz.ap-northeast-1.rds.amazonaws.com 
port = 1433 
tds version = 8.0 
client charset = UTF-8
 TDS(Tabular Data Stream) プロトコルの対応バージョン 
はMSSQLのバージョン毎に異なります。 
詳しくはこちらのページなどを参照してください。 
 http://www.freetds.org/userguide/choosingtdsprotocol.htm 
 また、TDSプロトコルについては、こちらに解説があり 
ます。 
 http://blogs.technet.com/b/sqlpm-j/archive/2009/04/30/sds-tds. 
aspx 
TDSのバージョン 
15 2014/11/25
UnixodbcによるTDS使用設定 
 続いて、unixodbcでFreeTDSを使用するという設定 
をします。設定ファイルは/etc/odbcinst.ini です。 
 以下の項目を追記します。 
16 2014/11/25 
# Driver from the freetds package 
# Setup from the unixODBC package 
[FreeTDS] 
Description = FreeTDS Driver 
Driver = /usr/lib64/libtdsodbc.so.0 
Setup = /usr/lib64/libtdsS.2 
FileUsage = 1 
CPTimeout = 5 
CPReuse = 5
DNSの定義 
 Zabbixのアイテム登録の際に実際に指定するDSN 
(Data Source Name)を定義します。 
 設定ファイルは/etc/odbc.ini です。 
[DB01] #この部分がDSNになります。 
Servername = DB01 # /etc/freetds.conf で設定した名前を指定します。 
Driver = FreeTDS #/etc/odbcinst.ini で指定したドライバ名を指定します。 
Database = msdatabase #RDBMSの中で実際に接続するdatabase名を指定します。 
17 2014/11/25 
#実際はこんな感じ 
[DB01] 
Servername = DB01 
Driver = FreeTDS 
Database = msdatabase
DNSの定義 
 /etc/freetds.confと同じように、複数のDSNを定義す 
ることができます。 
18 2014/11/25 
[DB01] 
Servername = DB01 
Driver = FreeTDS 
Database = msdatabase 
[RDS01] 
Servername = RDS01 
Driver = FreeTDS 
Database = msdatabase
Zabbixでの設定 
 実際にZabbixのアイテム設定を行います。 
19 2014/11/25
Zabbixの設定項目 
項目名設定内容 
名前任意の名前を入力します 
タイプデータベースモニタ 
キーdb.odbc.select[ホスト内で一意になる任意の文字列,DSN名] 
ユーザ名DBにログインするユーザ名※ユーザマクロ使用可能 
パスワードDBにログインするパスワード※ユーザマクロ使用可能 
SQLクエリログイン後に実行するSQLクエリを入力します。 
20 2014/11/25
制約事項 
 データベースモニタはあくまでもODBC接続です。 
 MS SQLの場合ODBCとTransact-SQL とで 
使用可能なSQLコマンドが異なります。 
詳細は、以下のURLを参照してください。 
http://msdn.microsoft.com/ja-jp/library/ms130794.aspx 
21 2014/11/25
設定例 
 以下の様な設定で、MS SQLのバージョン情報を取 
得することができます。 
22 2014/11/25
まとめ 
 Zabbixのデータベースモニタ(ODBC監視)でMS 
SQLの内部情報を監視することが可能です。 
 ODBC接続には、ODBCおよびドライバの設定が必 
要です。 
 設定ファイルは、freetds.conf、odbcinst.ini、 
odbc.ini 
 ユーザマクロを使用することで、ODBC監視のテン 
プレートを作成することもできます。 
 これで、Zabbixで監視できる範囲が、また広がり 
ますね。 
23 2014/11/25

Zabbix による ms sql監視 ~データベースモニタリング~ odbc

  • 1.
    【Zabbix 】 ZabbixによるMSSQL監視 データベースモニタリングの使 い方 ODBC監視設定 2014.11 @qryuu
  • 2.
    自己紹介  HN:九龍真乙  所属:株式会社サーバーワークス :自宅ラック勉強会  TwitterID : @qryuu 2 2014/11/25
  • 3.
  • 4.
    標準テンプレートによるMySQL監 視 Zabbixでは標準の「Template App MySQL」を利用す ることのより、MySQLのパフォーマンス監視が可 能です。  「Template App MySQL」の使用方法については、 Zabbix 2.0による簡単MySQL 監視 http://www.slideshare.net/qryuu/zabbix- 20zabbix20mysql をご覧ください。 4 2014/11/25
  • 5.
    データベースモニタによる監視  ZabbixではODBCを利用した「データベースモニ タ」により、直接DBへログインし、SQLの実行結 果を監視することができます。  今回の資料では、このデータベースモニタの使い 方を解説します。 5 2014/11/25
  • 6.
  • 7.
    ODBCの仕組み  ODBC(OpenDatabase Connectivity)とは RDBMSにアクセスするための共通インタフェー ス(API)である。 データへのアクセスを統一化することを目的とし ており、たとえばクライアント/サーバ型ではな いMicrosoft Accessの管理するデータベースファイル ル(MDB)や、そもそもRDBMSではないCSVファイルへ ルへのアクセスなども、それに対応するODBCドラ イバがあれば、他の一般的なデータベースへのア クセスするのと同様な方法で利用することが可能 になる。(wikipedhiaより) 7 2014/11/25
  • 8.
    ZabbixでのODBC  実際の動作は以下の様なイメージになります。 ZabbixがODBCマネージャに対してSQL文やログイ ン情報を渡し、ODBCマネージャがODBCドライバ を使用して対象のRDMBMSに接続します。 8 2014/11/25 Zabbix-Server データベース モニタODBCマネージャODBCドライバRDBMS
  • 9.
    ZabbixでのODBC  MSSQLServerを監視する場合、実際に必要なパッ ケージは次のようになります。 9 2014/11/25 Zabbix-Server データベース モニタODBCマネージャODBCドライバRDBMS unixODBC FreeTDS MS SQL Server
  • 10.
    ZabbixでのODBC  また、各パッケージに必要な設定ファイルは次の ようになります。 10 2014/11/25 Zabbix-Server データベース モニタODBCマネージャODBCドライバRDBMS /etc/odbc.ini /etc/odbcinst.ini /etc/freetds.conf MS SQL Server
  • 11.
  • 12.
    必要パッケージの導入  実際にODBC監視を行うのに必要なパッケージを導 入します。  Zabbixを公式パッケージで導入している場合、 ODBCマネージャであるunixODBCは、依存関係に よりすでにインストールされていますので、MS SQLと接続するためのODBCドライバであるFreeTDS を追加します。 12 2014/11/25 $ sudo yum install freetds
  • 13.
    FreeTDSの設定  FreeTDSではMSSQLサーバへのコネクション情報を 設定します。  設定ファイルは/etc/freetds.confです。 #コメント [hogehoge] #この部分がODBCで指定する”Servername” になります。 13 2014/11/25 host = <IPアドレスまたはFQDN> port = 1433 tds version = 8.0 client charset = UTF-8 #実際の設定はこんな感じ [DB01] host = db01.xxxxyyyzzz.ap-northeast-1.rds.amazonaws.com port = 1433 tds version = 8.0 client charset = UTF-8
  • 14.
    FreeTDSの設定  複数のRDBMSに接続する場合は次のようになりま す。 14 2014/11/25 #DB01 [DB01] host = 192.168.0.50 port = 1433 tds version = 8.0 client charset = UTF-8 #RDS01 [RDS01] host = rds01.xxxyyyzzz.ap-northeast-1.rds.amazonaws.com port = 1433 tds version = 8.0 client charset = UTF-8
  • 15.
     TDS(Tabular DataStream) プロトコルの対応バージョン はMSSQLのバージョン毎に異なります。 詳しくはこちらのページなどを参照してください。  http://www.freetds.org/userguide/choosingtdsprotocol.htm  また、TDSプロトコルについては、こちらに解説があり ます。  http://blogs.technet.com/b/sqlpm-j/archive/2009/04/30/sds-tds. aspx TDSのバージョン 15 2014/11/25
  • 16.
    UnixodbcによるTDS使用設定  続いて、unixodbcでFreeTDSを使用するという設定 をします。設定ファイルは/etc/odbcinst.ini です。  以下の項目を追記します。 16 2014/11/25 # Driver from the freetds package # Setup from the unixODBC package [FreeTDS] Description = FreeTDS Driver Driver = /usr/lib64/libtdsodbc.so.0 Setup = /usr/lib64/libtdsS.2 FileUsage = 1 CPTimeout = 5 CPReuse = 5
  • 17.
    DNSの定義  Zabbixのアイテム登録の際に実際に指定するDSN (Data Source Name)を定義します。  設定ファイルは/etc/odbc.ini です。 [DB01] #この部分がDSNになります。 Servername = DB01 # /etc/freetds.conf で設定した名前を指定します。 Driver = FreeTDS #/etc/odbcinst.ini で指定したドライバ名を指定します。 Database = msdatabase #RDBMSの中で実際に接続するdatabase名を指定します。 17 2014/11/25 #実際はこんな感じ [DB01] Servername = DB01 Driver = FreeTDS Database = msdatabase
  • 18.
    DNSの定義  /etc/freetds.confと同じように、複数のDSNを定義す ることができます。 18 2014/11/25 [DB01] Servername = DB01 Driver = FreeTDS Database = msdatabase [RDS01] Servername = RDS01 Driver = FreeTDS Database = msdatabase
  • 19.
  • 20.
    Zabbixの設定項目 項目名設定内容 名前任意の名前を入力します タイプデータベースモニタ キーdb.odbc.select[ホスト内で一意になる任意の文字列,DSN名] ユーザ名DBにログインするユーザ名※ユーザマクロ使用可能 パスワードDBにログインするパスワード※ユーザマクロ使用可能 SQLクエリログイン後に実行するSQLクエリを入力します。 20 2014/11/25
  • 21.
    制約事項  データベースモニタはあくまでもODBC接続です。  MS SQLの場合ODBCとTransact-SQL とで 使用可能なSQLコマンドが異なります。 詳細は、以下のURLを参照してください。 http://msdn.microsoft.com/ja-jp/library/ms130794.aspx 21 2014/11/25
  • 22.
    設定例  以下の様な設定で、MSSQLのバージョン情報を取 得することができます。 22 2014/11/25
  • 23.
    まとめ  Zabbixのデータベースモニタ(ODBC監視)でMS SQLの内部情報を監視することが可能です。  ODBC接続には、ODBCおよびドライバの設定が必 要です。  設定ファイルは、freetds.conf、odbcinst.ini、 odbc.ini  ユーザマクロを使用することで、ODBC監視のテン プレートを作成することもできます。  これで、Zabbixで監視できる範囲が、また広がり ますね。 23 2014/11/25