1、總覽html
ODBC的監控和在Zabbix前端配置數據庫監控條目類型基本一致。前端
ODBC是用C語言編寫的用於鏈接數據庫管理系統的一箇中間件,最初有微軟公司研發,後來發展到各大平臺。mysql
有了ODBC的支持,Zabbix能夠查詢不少種數據庫,由於Zabbix本身不直接去鏈接數據庫,而是經過ODBC的接口和驅動,所以能夠更加高效的去監控不一樣的數據庫。linux
2、安裝配置web
一、編譯Zabbix serversql
要支持ODBC功能,在編譯的時候須要加上--with-unixodbc,解決依賴須要安裝以下軟件包,數據庫
yum -y install unixODBC unixODBC-devel
二、安裝unixODBC驅動vim
驅動是用於ODBC鏈接數據庫用的,他能夠支持各式各樣的驅動,在大部分的Linux發行版中的倉庫中,都有這些驅動,咱們安裝一個MySQL的驅動,用來監控MySQL數據庫。bash
yum install mysql-connector-odbc
三、配置unixODBC
oracle
ODBC的配置主要是經過修改odbcinst.ini和odbc.ini兩個文件,能夠經過下面的命令去指定配置文件的位置。
# odbcinst -j unixODBC 2.2.14 DRIVERS............: /etc/odbcinst.ini SYSTEM DATA SOURCES: /etc/odbc.ini FILE DATA SOURCES..: /etc/ODBCDataSources USER DATA SOURCES..: /root/.odbc.ini SQLULEN Size.......: 8 SQLLEN Size........: 8 SQLSETPOSIROW Size.: 8
odbcinst.ini主要是配置安裝的ODBC數據庫驅動,如MySQL,oracle,各字段含義我再也不介紹。
[MySQL] # 驅動名稱,在數據庫文件中須要 Description = ODBC for MySQL Driver = /usr/lib/libmyodbc5.so Setup = /usr/lib/libodbcmyS.so Driver64 = /usr/lib64/libmyodbc5.so Setup64 = /usr/lib64/libodbcmyS.so FileUsage = 1
odbc.ini主要是配置數據源。
[test] # 數據源名稱Data source name,在zabbix前端配置須要 Description = MySQL test database Driver = mysql # 從驅動文件odbcinst.ini獲取 Server = 127.0.0.1 User = zabbix Password = zabbix Port = 3306 Database = zabbix
咱們能夠經過在安裝unixODBC的時候附帶安裝的一個命令isql來判斷咱們是否能夠成功的鏈接數據庫。
# isql test +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL>
四、配置Zabbix前端web
首先建立一個監控條目。
這幾個條目是必填的,具體解釋以下:
Type | 這裏咱們選擇Database monitor |
Key | 選擇db.odbc.select[unique_description,data_source_name] unique_description將會用於觸發器中的條目data_source_name填寫在odbc.ini中的test |
User name | 輸入在odbc.ini中的用戶名 |
Password | 輸入在odbc.ini中的密碼 |
SQL query | 輸入SQL查詢語句 |
Type of information | 須要咱們以前查詢的返回值是什麼,正確的選擇纔會被支持 |
五、注意事項
查詢語句執行時間不能超過配置的超時時間
查詢只容許返回一個值.
若是查詢語句返回了多個列,它只讀取第一列
若是查詢語句返回了多行,它讀取第一條
SQL語句必須是 select開頭,只能是查詢語句.
SQL語句不能包含換行符
六、錯誤消息
從zabbix 2.08開始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字節,所以錯誤消息太長會被截斷。
3、驗證
由於咱們沒有建立圖像,能夠從最新數據庫裏面查看咱們建立的條目。
你能夠寫更加複雜的SQL查詢語句,以及製做觸發器來對數據庫更加詳細的監控。
附錄:
以上是對監控MySQL作的監控,下面我主要簡要對Oracle的監控作下介紹。
一、下載oracle客戶端
http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
官網下載速度比較慢,也能夠到我上傳到51CTO下載中心的地方下載。
http://down.51cto.com/data/2328882
oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm oracle-instantclient11.2-odbc-11.2.0.3.0-1.x86_64.rpm oracle-instantclient11.2-sqlplus-11.2.0.3.0-1.x86_64.rpm
二、安裝
yum localinstall oracle-instantclient11.2-*
三、建立本地監控
安裝的默認位置分別在
/usr/share/oracle/11.2/client64 /usr/include/oracle/11.2/client64 /usr/lib/oracle/11.2/client64
設置環境變量以前,在/usr/lib/oracle/11.2/client64下建立network/admin文件夾,
mkdir -p /usr/lib/oracle/11.2/client64/network/admin
在此文件夾下建立tnsnames.ora,其內容入下:
test_oracle= (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.1.14)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = basicdb) ) )
在/usr/lib/oracle/11.2/client64/network/admin文件下建立sqlnet.ora,輸入:
NAME_DIRECTORY_PATH=(TNSNAMES,EZCONNECT)
四、配置環境變量
export ORACLE_HOME=/usr/lib/oracle/11.2/client64 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib64:$LD_LIBRARY_PATH export TNS_ADMIN=$ORACLE_HOME/network/admin export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
五、配置須要的庫
chmod +x /usr/lib/oracle/11.2/client64/lib/libsqora.so.11.1 cd /usr/lib64/ ln -s libodbcinst.so.2.0.0 libodbcinst.so.1
六、添加oracle驅動
# vim /etc/odbcinst.ini [oracle] Description = Oracle ODBC driver for Oracle 11g Driver = /usr/lib/oracle/11.2/client64/lib/libsqora.so.11.1
七、添加oracle數據源
# vim /etc/odbc.ini [test1] Driver= oracle DSN= test_oracle ServerName= yourname UserID= basicdb Password= yourpasswd
八、sqlplus測試鏈接
# sqlplus yourname/yourpasswd@test_oracle SQL*Plus: Release 11.2.0.3.0 Production on Wed Jul 19 11:39:18 2017 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> exit
九、配置zabbix前端
參考文檔:https://www.zabbix.com/documentation/3.2/manual/config/items/itemtypes/odbc_checks