一、總覽
10年積累的成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先制作網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有太和免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
ODBC的監(jiān)控和在Zabbix前端配置數(shù)據(jù)庫(kù)監(jiān)控條目類型基本一致。
ODBC是用C語(yǔ)言編寫(xiě)的用于連接數(shù)據(jù)庫(kù)管理系統(tǒng)的一個(gè)中間件,最初有微軟公司研發(fā),后來(lái)發(fā)展到各大平臺(tái)。
有了ODBC的支持,Zabbix可以查詢很多種數(shù)據(jù)庫(kù),因?yàn)閆abbix自己不直接去連接數(shù)據(jù)庫(kù),而是通過(guò)ODBC的接口和驅(qū)動(dòng),因此可以更加高效的去監(jiān)控不同的數(shù)據(jù)庫(kù)。
二、安裝配置
1、編譯Zabbix server
要支持ODBC功能,在編譯的時(shí)候需要加上--with-unixodbc,解決依賴需要安裝如下軟件包,
yum -y install unixODBC unixODBC-devel
2、安裝unixODBC驅(qū)動(dòng)
驅(qū)動(dòng)是用于ODBC連接數(shù)據(jù)庫(kù)用的,他可以支持各式各樣的驅(qū)動(dòng),在大部分的Linux發(fā)行版中的倉(cāng)庫(kù)中,都有這些驅(qū)動(dòng),我們安裝一個(gè)MySQL的驅(qū)動(dòng),用來(lái)監(jiān)控MySQL數(shù)據(jù)庫(kù)。
yum install mysql-connector-odbc
3、配置unixODBC
ODBC的配置主要是通過(guò)修改odbcinst.ini和odbc.ini兩個(gè)文件,可以通過(guò)下面的命令去指定配置文件的位置。
# 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數(shù)據(jù)庫(kù)驅(qū)動(dòng),如MySQL,oracle,各字段含義我不再介紹。
[MySQL] # 驅(qū)動(dòng)名稱,在數(shù)據(jù)庫(kù)文件中需要 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主要是配置數(shù)據(jù)源。
[test] # 數(shù)據(jù)源名稱Data source name,在zabbix前端配置需要 Description = MySQL test database Driver = mysql # 從驅(qū)動(dòng)文件odbcinst.ini獲取 Server = 127.0.0.1 User = zabbix Password = zabbix Port = 3306 Database = zabbix
我們可以通過(guò)在安裝unixODBC的時(shí)候附帶安裝的一個(gè)命令isql來(lái)判斷我們是否可以成功的連接數(shù)據(jù)庫(kù)。
# isql test +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL>
4、配置Zabbix前端web
首先創(chuàng)建一個(gè)監(jiān)控條目。
這幾個(gè)條目是必填的,具體解釋如下:
Type | 這里我們選擇Database monitor |
Key | 選擇db.odbc.select[unique_description,data_source_name] unique_description將會(huì)用于觸發(fā)器中的條目data_source_name填寫(xiě)在odbc.ini中的test |
User name | 輸入在odbc.ini中的用戶名 |
Password | 輸入在odbc.ini中的密碼 |
SQL query | 輸入SQL查詢語(yǔ)句 |
Type of information | 需要我們之前查詢的返回值是什么,正確的選擇才會(huì)被支持 |
5、注意事項(xiàng)
查詢語(yǔ)句執(zhí)行時(shí)間不能超過(guò)配置的超時(shí)時(shí)間
查詢只允許返回一個(gè)值.
如果查詢語(yǔ)句返回了多個(gè)列,它只讀取第一列
如果查詢語(yǔ)句返回了多行,它讀取第一條
SQL語(yǔ)句必須是 select開(kāi)頭,只能是查詢語(yǔ)句.
SQL語(yǔ)句不能包含換行符
6、錯(cuò)誤消息
從zabbix 2.08開(kāi)始ODBC提供如下詳細(xì)的錯(cuò)誤信息:
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
錯(cuò)誤消息最長(zhǎng)不能超過(guò)128字節(jié),因此錯(cuò)誤消息太長(zhǎng)會(huì)被截?cái)唷?/p>
三、驗(yàn)證
因?yàn)槲覀儧](méi)有創(chuàng)建圖像,可以從最新數(shù)據(jù)庫(kù)里面查看我們創(chuàng)建的條目。
你可以寫(xiě)更加復(fù)雜的SQL查詢語(yǔ)句,以及制作觸發(fā)器來(lái)對(duì)數(shù)據(jù)庫(kù)更加詳細(xì)的監(jiān)控。
附錄:
以上是對(duì)監(jiān)控MySQL做的監(jiān)控,下面我主要簡(jiǎn)要對(duì)Oracle的監(jiān)控做下介紹。
1、下載oracle客戶端
http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
官網(wǎng)下載速度比較慢,也可以到我上傳到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
2、安裝
yum localinstall oracle-instantclient11.2-*
3、創(chuàng)建本地監(jiān)控
安裝的默認(rèn)位置分別在
/usr/share/oracle/11.2/client64 /usr/include/oracle/11.2/client64 /usr/lib/oracle/11.2/client64
設(shè)置環(huán)境變量之前,在/usr/lib/oracle/11.2/client64下創(chuàng)建network/admin文件夾,
mkdir -p /usr/lib/oracle/11.2/client64/network/admin
在此文件夾下創(chuàng)建tnsnames.ora,其內(nèi)容入下:
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文件下創(chuàng)建sqlnet.ora,輸入:
NAME_DIRECTORY_PATH=(TNSNAMES,EZCONNECT)
4、配置環(huán)境變量
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
5、配置需要的庫(kù)
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
6、添加oracle驅(qū)動(dòng)
# vim /etc/odbcinst.ini [oracle] Description = Oracle ODBC driver for Oracle 11g Driver = /usr/lib/oracle/11.2/client64/lib/libsqora.so.11.1
7、添加oracle數(shù)據(jù)源
# vim /etc/odbc.ini [test1] Driver= oracle DSN= test_oracle ServerName= yourname UserID= basicdb Password= yourpasswd
8、sqlplus測(cè)試連接
# 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
9、配置zabbix前端
參考文檔:https://www.zabbix.com/documentation/3.2/manual/config/items/itemtypes/odbc_checks