Dockerhubからpullしてきたzabbix2.4でodbc設定設定をするために確認したことです。
やりたかったこと
odbc設定をすることで、zabbixのアイテムからSQLで取得できる値をモニタする。
dbforbixもあるけど、アドホックなモニタの場合には設定が面倒なので、お手軽なデータベースモニタを使いたい。
odbcのドライバを確認
zabbix/zabbix-2.4:2.4.4のイメージを使ってテストします。
odbcinstコマンドでインストール済みのドライバを確認します。
ubuntu@trusty64:~$ docker run -it zabbix/zabbix-2.4:2.4.4 bash [root@42947be8ac27 /]# odbcinst -q -d [PostgreSQL] [MySQL] [root@42947be8ac27 /]#
デフォルトでPostgreSQLとMySQLのドライバがインストールされています。
ドライバは、/etc/odbcinst.init
に設定されています。
[root@42947be8ac27 /]# cat /etc/odbcinst.ini | egrep "^\[|^Desc" [PostgreSQL] Description = ODBC for PostgreSQL [MySQL] Description = ODBC for MySQL [root@42947be8ac27 /]#
接続テスト
odbc.iniファイルの作成
接続先の設定ファイルは、/etc/odbc.ini
ですが、デフォルトではファイルはありません。
下記のコマンドを実行すると空の設定ファイルが作成されます。
[root@11b55e2f8bb0 /]# isql -v [IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified [ISQL]ERROR: Could not SQLConnect [root@11b55e2f8bb0 /]# ls -l /etc/odbc.ini -rw-r--r-- 1 root root 0 Jan 31 09:40 /etc/odbc.ini [root@11b55e2f8bb0 /]#
接続先の設定
下記のようにodbc.iniに接続情報を設定します。
[root@11b55e2f8bb0 /]# cat /etc/odbc.ini [zabdb] Description = MySQL connection to 'zabbix' database Driver = MySQL Database = zabbix Server = zabdb USER = admin Password = pass Port = 3306
isqlを使って接続を確認します。
こんな感じで接続してSQLが発行できれば設定完了です。
[root@11b55e2f8bb0 /]# isql -v zabdb +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL> select count(*) from users; +---------------------+ | count(*) | +---------------------+ | 2 | +---------------------+ SQLRowCount returns 1 1 rows fetched SQL>
うまくいかない場合は、mysqlクライアントを使って接続することで環境の問題かunixODBC設定の問題かき分けができます。