【Zabbix】使用dbforbbix 2.2-beta監控Redhat 7.0上的Oracle、Mysql

sayyy發表於2018-12-03

前言

DBforBIX介紹

官網:http://www.smartmarmot.com/
授權:GNU General Public License V.3
專案git:https://github.com/smartmarmot/DBforBIX
安裝文件:http://www.smartmarmot.com/wiki/index.php?title=DBforBIX2

  • DBforBIX 是 Zabbix 下的資料庫監控工具。
  • DBforBIX 可以看視作 Orabbix, PostBIX, MySQLBIX and DB2Bix 的整合。
  • DBforBIX 可以監控的資料庫有: Oracle、MySQL Server、PostgreSQL、MS SQL Server、DB2、Sybase Anywhere、HP Allbase
  • DBforBIX 是java應用,通過jdbc監控資料庫,並將採集到的資料傳送給Zabbix Server。如下圖:
    在這裡插入圖片描述

版本選擇

dbforbbix 2.2-beta

環境介紹

安裝 DBforBIX 2.2-beta ,並監控 Oracle、Mysql的環境如下:

應用 版本 OS IP
Zabbix(已安裝 3.4 Redhat 7.0 192.168.200.212
jdk(已安裝) 1.8 Redhat 7.0 192.168.200.212
dbforbbix(未安裝) 2.2-beta Redhat 7.0 192.168.200.212
Oracle(已安裝) 12c Redhat 7.0 192.168.200.213
Mysql(已安裝) 5.0 Redhat 7.0 192.168.200.213

步驟1:下載DBforBIX

有兩個地方可以下載,如下:
sourceforge下載地址:https://sourceforge.net/projects/dbforbix/files/
git下載地址:https://github.com/smartmarmot/DBforBIX

# 注意:以下均使用root賬戶進行操作。獨立建帳戶時,自行處理差別
mkdir /opt/dbforbix
cd /opt/dbforbix
wget https://excellmedia.dl.sourceforge.net/project/dbforbix/dbforbix-2.2-beta-linux64.tar.gz

步驟2:將DBforBix解壓到/opt/dbforbix目錄

cd /opt/dbforbix
tar -zxvf dbforbix-2.2-beta-linux64.tar.gz

步驟3:修改 DBforBix 配置檔案 config.properties

  • DBforBIX 是java應用,通過jdbc監控資料庫。因此,需要設定 DBforBix 的 jdbc配置。
  • DBforBIX 可以同時監控多個資料庫。因此,DBforBix 的 jdbc配置也是可以多個。
  • DBforBix 的 jdbc配置語法:DB.DB<編號>.<屬性名>,如:DB.DB1.Url、DB.DB4.Url。
  • DBforBix 提供了配置檔案樣例:/opt/dbforbix/conf/config.properties.sample
  • 將 config.properties.sample 改名為 config.properties,然後編輯config.properties檔案
cd /opt/dbforbix/conf/
cp config.properties.sample config.properties
vi config.properties
-------------------------------------------------------------------------
#zabbix server  ip
ZabbixServer.1.Address=192.168.200.212
#zabbix server的預設埠:10051
ZabbixServer.1.Port=10051

# 修改DB.DB1:DBforBIX 連 oracle 配置
DB.DB1.Type=oracle
# zabbix中配置的host name。
DB.DB1.Name=zabbix_server213
DB.DB1.Url=jdbc:oracle:thin:@10.1.16.211:12131/srie
# ZABBIX賬戶的建立參考官方安裝手冊
DB.DB1.User=ZABBIX
DB.DB1.Password=123456
DB.DB1.MaxWait=10
DB.DB1.MaxSize=10
DB.DB1.MaxIdle=1
DB.DB1.ItemFile=oracle
DB.DB1.Persistence=FALSE

# 修改DB.DB4:DBforBIX 連 mysql 配置 (不監控Mysql則不用配置DB.DB4)
DB.DB4.Type=mysql
# zabbix中配置的host name。
DB.DB4.Name=zabbix_server213
DB.DB4.Url=jdbc:mysql://192.168.200.213:3306/
# ZABBIX賬戶的建立參考官方安裝手冊
DB.DB4.User=ZABBIX
DB.DB4.Password=123456
DB.DB4.MaxWait=10
DB.DB4.MaxSize=10
DB.DB4.MaxIdle=1
DB.DB4.ItemFile=mysql
DB.DB4.Persistence=FALSE

注:資料庫賬戶,可以先用最大許可權的賬戶。先保證DBforBIX能夠工作,再調整許可權。

步驟4:在 DBforBix 中新增jdbc驅動

  • DBforBIX 是java應用,通過jdbc監控資料庫。因此,需要jdbc驅動才能工作。
  • dbforbbix 2.2-beta 中未提供jdbc驅動。因此,監控Oracle和Mysql時,所需的Oracle和Mysql需要自己手動新增驅動。
  • 將oracle和mysql驅動拷貝到/opt/dbforbix/lib目錄:
    /opt/dbforbix/lib/mysql-connector-java-5.1.18.jar
    /opt/dbforbix/lib/ojdbc7-12.1.0.1.jar

步驟5:啟動DBforBIX

  • 按照安裝手冊上的啟動方式(linux7.0,未嘗試Initd啟動,僅嘗試Systemd啟動),沒有啟動。嘗試多次,後放棄。
  • 直接執行指令碼 dbforbix.sh ,未成功。缺少jsvc所致。
  • 安裝好jsvc後,但是指令碼dbforbix.sh還是未成功(此時,指令碼執行無異常,但無dbforbix程式在執行)。遂放棄。
  • 使用java -jar啟動dbforbix(DBforBIX 是java應用,所以可以使用此方式啟動),成功(啟動成功後,可以看到程式執行過程中列印的日誌不停地刷屏)。能夠成功啟動的指令碼如下:
cd /opt/dbforbix
java -Xbootclasspath/a:/opt/dbforbix/lib/mysql-connector-java-5.1.18.jar:/opt/dbforbix/lib/ojdbc7-12.1.0.1.jar -jar dbforbix.jar -a start -C /opt/dbforbix

注1:mysql和oracle驅動路徑如果不一樣,需要修改。
注2:至此,DBforBIX已經能夠正常工作,但,僅表示DBforBIX已經能夠正常工作。還需要讓zabbix server能夠接受並處理DBforBIX提供的資料。向zabbix server中匯入DBforBIX提供的Oracle和Mysql模板,並啟用模板後,zabbix 3.4 + DBforBIX 2.2-beta才算正常工作。

步驟6:匯入模板

  • 向zabbix server中匯入DBforBIX提供的Oracle和Mysql模板
  • 通過 zabbix web可以匯入。
  • 模板在dbforbbix 2.2-beta安裝包中。
    在這裡插入圖片描述
    在這裡插入圖片描述
    在這裡插入圖片描述

步驟7:啟用模板,監控資料庫

步驟8:檢視監控影像

  • 至此,zabbix 3.4 + DBforBIX 2.2-beta已經正常工作。
  • 開啟監控影像進行檢視。

在這裡插入圖片描述

步驟9:DBforBIX改為systemd服務啟動

  • 為了維護方便,將DBforBIX設定成開機自啟動的啟動方式。
  • DBforBIX 安裝在了 Redhat 7.0 上,使用 systemd 將 DBforBIX 註冊為系統服務
  • 在/opt/dbforbix/systemd目錄下,存在2個樣例: dbforbix.service 和 dbforbix-nojsvc.service 。
  • dbforbix.service : 使用 jsvc 啟動服務
  • dbforbix-nojsvc.service : 使用 java 啟動服務
  • 這裡不使用 jsvc ,所以,先刪除 dbforbix.service ,再將 dbforbix-nojsvc.service 重名為 dbforbix.service 。
/opt/dbforbix/systemd
rm dbforbix.service
mv dbforbix-nojsvc.service dbforbix.service
vim dbforbix.service
-------------------------------------------------------
[Unit]
Description=DBforBIX Monitoring Agent
After=syslog.target network.target

[Service]
Type=simple
User=root
Group=root
Environment=JAVA_HOME=/usr/java/jdk1.8
WorkingDirectory=/opt/dbforbix
ExecStart=/usr/java/jdk1.8/bin/java -Xbootclasspath/a:/opt/dbforbix/lib/mysql-connector-java-5.1.18.jar:/opt/dbforbix/lib/ojdbc7-12.1.0.1.jar -jar dbforbix.jar -a start -C /opt/dbforbix
ExecStop=/bin/kill -s TERM $MAINPID
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target
-------------------------------------------------------
cp dbforbix.service /etc/systemd/system/dbforbix.service
systemctl daemon-reload
systemctl start dbforbix.service
  • 檢視 dbforbix.service 日誌,判斷服務是否正確啟動或有何問題
journalctl -flu dbforbix.service
  • 檢視DBforBIX程式日誌,檢查執行狀況
tail -f /opt/dbforbix/logs/dbforbix.log
  • 如果能夠確認 DBforBIX 服務正常,將服務設為自啟動
systemctl enable dbforbix.service

最後

至此, zabbix 3.4 + DBforBIX 2.2-beta 的設定已全部完成。

相關文章