zabbix經過ODBC監控sybase舉例

本文用到的ODBC和freetds,請參考一下兩個網址,進行安裝:
https://www.zabbix.com/documentation/4.0/zh/manual/config/items/itemtypes/odbc_checks
https://www.zabbix.com/documentation/4.0/zh/manual/config/items/itemtypes/odbc_checks/unixodbc_mssql
ODBC自動發現規則理論知識:
https://www.zabbix.com/documentation/4.0/zh/manual/config/items/itemtypes/odbc_checks/unixodbc_mssql
說明:
用ODBC的freetds模板,能從zabbix服務器上遠程監控sybase的一些信息,可是須要sybase的sql查詢語句,同時僅經過zabbix的odbc監控,沒法執行一些sp_命令,如sp_helpdb 。如須要使用sp_的命令監控,能夠用python的pexpect模塊模擬執行isql命令遠程登陸,而後執行查詢sql語句。python

1.在sybase數據上新建用於監控的普通用戶

在sybase服務器上:sql

(1).查看sybase進程
[size=12.0000pt]ps -ef | grep sybase數據庫

zabbix經過ODBC監控sybase舉例

(2).新建監控用戶
su - sybase
isql -Usa -Psybase -H192.168.2.6:5000 [size=12.0000pt]-SLOCALHOST
sp_addlogin zabbix,zabbix
go
[size=12.0000pt]
sp_adduser zabbix,zabbix
go
[size=12.0000pt]
sp_role 'grant',mon_role,zabbix
go服務器

(3).查看用戶信息:
sp_helpuser zabbix
go
zabbix經過ODBC監控sybase舉例 ide

(4).查看用戶zabbix的權限
sp_helprotect zabbix
go測試

有些版本的sybase須要重啓數據庫使新建用戶生效,生產環境須要 謹慎重啓!!!!
測試監控用戶是否能正常登陸:
isql -Uzabbix -Pzabbix -H192.168.2.6:5000 -SLOCALHOST
能登陸即配置完成。spa

2.在zabbix服務器上配置odbc遠程登陸信息

vi /etc/freetds.conf
文件最下面加上如下內容:
[192.168.2.6]
host = 192.168.2.6
port = 5000
tds version = 4.2
client chaeset = UTF-8unix

說明:
[192.168.2.6]是能夠自定義的名字。
host是主機名稱或IP
port是sybase數據的監聽端口
tds version保持默認,有4.2,5.0,7.0,8.0。鏈接失敗能夠試下換一個版本
client chaeset客戶端軟件可識別的字符集,保持默認進程

測試連通性
tsql -S 192.168.2.6 -U 'zabbix'
若是輸入密碼無報錯後出現「 1> 」,則表示配置成功。(密碼:zabbix)ip

配置添加ODBC數據源
vi /etc/odbc.ini
[192.168.2.6]
Driver = FreeTDS
Description = 192.168.2.6
Trace = NO
Servername = 192.168.2.6

參數說明:
[LOCALHOSTODBC]是數據源的名字,能夠自定義
Driver 是/etc/odbcinst.ini裏定義的名稱(保持默認)
Description 使用在 freetds.conf中定義的名稱(instance替換「-」)
Servername 使用在 freetds.conf中定義的名稱
注:odbc.ini這個文件的每行行首和行尾不能有一個空格,有空格會出現報錯:
[S1000][unixODBC][FreeTDS][SQL Server]Unable to connect to data source
[ISQL]ERROR: Could not SQLConnect

vi /etc/odbcinst.ini
確認是否有下面這段:
[FreeTDS]
Description=ODBC of FreeTDS for SQL Server
Driver=/usr/lib/libtdsodbc.so.0
Setup=/usr/lib/libtdsS.so
Driver64=/usr/lib64/libtdsodbc.so.0
Setup64=/usr/lib64/libtdsS.so
FileUsage=1

測試遠程登陸
isql -v 192.168.2.6 'zabbix' 'zabbix[size=12.0000pt]'
說明:isql -v DSN名稱 '用戶名' '密碼'

3.在zabbix網頁端創建syabse的odbc監控模板

新建3個宏值 {$ODBC} 、 {$USER} 、 {$PASSWORD}

zabbix經過ODBC監控sybase舉例

新建監控項例子:

(1).當前鏈接數
zabbix經過ODBC監控sybase舉例
名稱:當前鏈接數
類型:數據庫監控
鍵值:db.odbc.select[connections,{$ODBC}]
用戶名稱:{$USER}
密碼:{$PASSWORD}
SQL查詢:select count(*) from master.dbo.sysprocesses where ipaddr!=NULL
信息類型:數字(無正負)
更新間隔:300
zabbix經過ODBC監控sybase舉例

(2).最大鏈接數
zabbix經過ODBC監控sybase舉例
名稱:最大鏈接數
類型:數據庫監控
鍵值:db.odbc.select[max_connections,{$ODBC}]
用戶名稱:{$USER}
密碼:{$PASSWORD}
SQL查詢:select @@max_connections
信息類型:浮點數
更新間隔:3600
zabbix經過ODBC監控sybase舉例

(3).數據庫版本
zabbix經過ODBC監控sybase舉例
名稱:數據庫版本
類型:數據庫監控
鍵值:db.odbc.select[version,{$ODBC}]
用戶名稱:{$USER}
密碼:{$PASSWORD}
SQL查詢:select @@version
信息類型:浮點數
更新間隔:3600
zabbix經過ODBC監控sybase舉例

新建自動發現規則例子:
zabbix經過ODBC監控sybase舉例
zabbix經過ODBC監控sybase舉例

名稱:master表空間
類型:數據庫監控
鍵值:db.odbc.discovery[tablespace,{$ODBC}]
用戶名稱:{$USER}
密碼:{$PASSWORD}
SQL查詢:select name = object_name(sysindexes.id) from sysindexes, sysobjects where sysindexes.id = sysobjects.id and sysindexes.id > 100 and indid =0
更新間隔:3600
過濾器: {#NAME} 匹配 @sybase table space
zabbix經過ODBC監控sybase舉例
監控項原型:
zabbix經過ODBC監控sybase舉例
名稱:表{#NAME}分配的空間大小
類型:數據庫監控
鍵值:db.odbc.select[{#NAME}reserved,{$ODBC}]
用戶名稱:{$USER}
密碼:{$PASSWORD}
SQL查詢:select reserved_pages(db_id(),id)/(1024.0 / @@maxpagesize)*1024 from sysobjects where name = '{#NAME}'
信息類型:數字(無正負)
單位:B
更新間隔:300

已使用空間查詢語句:
select used_pages(db_id(),id)/(1024.0 / @@maxpagesize)*1024 from sysobjects where name = '{#NAME}'
行數查詢語句:
select row_count(db_id(), id) from sysobjects where name = '{#NAME}'

更多技術問題,歡迎交流

相關文章
相關標籤/搜索