(15)zabbix ODBC數據庫監控


概述

ODBC監控對應於Zabbix Web管理端中的Database monitor監控項類型。

ODBC是用於訪問數據庫管理系統(DBMS)的C語言中間件APIODBC由Microsoft開發,后來移植到其它平台。

Zabbix可以查詢ODBC支持的任何數據庫。為了實現監控,Zabbix不直接連接到數據庫,而是使用ODBC中設置的ODBC接口和驅動。該功能允許為多個目的更加有效地監控不同的數據庫 - 例如,監控特定的數據庫隊列、使用統計信息等。Zabbix支持unixODBC,它是最常用的開源ODBC API實現之一。

安裝unixODBC

安裝unixODBC的建議方法是使用Linux操作系統的默認軟件包存儲庫。在流行的Linux發行版中,unixODBC默認包含在軟件包存儲庫中。如果不可用,可以在unixODBC主頁獲取:http://www.unixodbc.org/download.html.

使用yum包管理器在基於RedHat/Fedora的系統上安裝unixODBC:

shell> yum -y install  unixODBC  unixODBC-devel

unixODBC-devel包需要使用unixODBC support來編譯Zabbix

 

安裝unixODBC驅動(同樣在server上安裝,用於連接遠程數據庫)

安裝unixODBC數據庫驅動。unixODBC有一個受支持的數據庫和驅動程序的列表:http://www.unixodbc.org/drivers.html. 在一些Linux發行版中,數據庫驅動程序包含在包倉庫中。使用yum包管理器在基於RedHat/Fedora的系統上安裝MySQL數據庫驅動:

shell> yum  install  -y  mysql-connector-odbc

配置unixODBC

通過編輯odbcinst.ini和odbc.ini文件來完成ODBC配置。要確認配置文件位置,請鍵入:

shell> odbcinst  -j

 

odbcinst.ini用於列出已安裝的ODBC數據庫驅動程序:

[mysql]

Description = ODBC for MySQL

Driver      = /usr/lib/libmyodbc5.so

參數詳細信息:

屬性

描述

mysql

數據庫驅動程序名稱。

Description

數據庫驅動描述。

Driver

數據庫驅動程序庫位置。

 

odbc.ini用於定義數據源:(該文件/etc/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>

使用ODBC support編譯Zabbix

要啟用ODBC支持,Zabbix應該使用以下標志進行編譯:

  --with-unixodbc[=ARG]   使用odbc驅動程序與unixODBC包

Zabbix Web前端配置監控項

配置數據庫的 監控項:

專用於數據庫監控項的必要輸入:

Type

選擇數據庫監控器。

Key

輸入db.odbc.select[unique_description,data_source_name]。這里唯一的描述將用於識別觸發器中的監控項等。必須按照odbc.ini中的指定設置數據源名稱(DSN)。

User name

輸入數據庫用戶名(如果用戶在odbc.ini中指定,則可選)

Password

輸入數據庫用戶密碼(如果在odbc.ini中指定密碼,則為可選項)

SQL query

輸入SQL查詢

Type of information

了解查詢將返回什么類型的信息很重要,以便在此處正確選擇。 使用不正確的類型的信息監控項將不受支持。

 

重要信息

  • 該查詢的執行時間不能超過服務器上的Timeout參數。從Zabbix 2.0.8開始,Timeout參數值也用作ODBC登錄超時(請注意,根據ODBC驅動程序,登錄超時設置可能會被忽略)。
  • 該查詢只能返回一個值。
  • 如果查詢返回多個列,則只讀取第一列。
  • 如果查詢返回多行,則只讀取第一行。
  • SQL命令必須以select開始。
  • SQL命令不能包含任何換行符。
  • 另請參考ODBC的已知問題

錯誤信息

從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

注意,錯誤消息長度限制為2048字節,因此消息可以被截斷。如果有多個ODBC診斷記錄,Zabbix會嘗試把它們連起來,只要長度限制允許

 

 

注意:

目前CentOS倉庫中的mysql-connector-odbc版本是8.0,可用於連接MySQL Server 8.0, 5.7, 5.6, and 5.5

下面是整個過程:

yum  install  unixODBC  unixODBC-devel  mysql-connector-odbc  -y

 

vim  /etc/odbcinst.ini

vim  odbc.ini

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM