威客做的好的網(wǎng)站蘇州網(wǎng)站建設(shè)公司排名
作者:樂維社區(qū)(forum.lwops.cn) 樂樂
神通數(shù)據(jù)庫,即神舟通用數(shù)據(jù)庫(ShenTong Database),是我國自主研發(fā)的一款關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。它在國內(nèi)市場有一定的應(yīng)用,尤其是在一些對數(shù)據(jù)安全、獨立性有較高要求的領(lǐng)域,如政府、金融、電信、能源、醫(yī)療等行業(yè)。
Zabbix是一款被廣泛應(yīng)用的開源監(jiān)控工具,常常被用于企業(yè)機構(gòu)等IT基礎(chǔ)架構(gòu)的監(jiān)控。
本文將介紹如何使用 Docker 快速安裝和配置神舟通用數(shù)據(jù)庫,并使用Zabbix監(jiān)控神舟通用數(shù)據(jù)庫。
安裝步驟參考:
https://blog.csdn.net/weixin_46603727/article/details/131300046
docker鏡像下載:https://pan.baidu.com/s/1-W_tuGk4waewNhr6C8Z00g
提取碼:9572
1.安裝步驟
1.1.安裝docker,下載神舟通用數(shù)據(jù)庫鏡像shentong_342_163_x86_64bit.zip并上傳至服務(wù)器。
yum install docker
systemctl start docker
unzip shentong_342_163_x86_64bit.zip
docker load -i shentong_342_163_x86_64bit
導(dǎo)入完成后,可以使用 docker images 查看導(dǎo)入的鏡像。結(jié)果顯示如下:
1.2.初始化容器。
date -s “2023/06/20” #該鏡像有試用授權(quán)期限,因此需要調(diào)整日期
docker run -d -p 2003:2003 --name Oscar shentong_342_163_x86_64bit
#創(chuàng)建并運行容器,將會在后臺啟動一個名為 oscar 的容器,并將容器的2003端口映射到宿主機的2003端口,將數(shù)據(jù)目錄映射到/opt/ShenTong/。
docker ps -a #查看容器運行狀態(tài)
正常啟動后能看到容器里啟動了/opt/ShenTong/bin/oscar和/opt/ShenTong/bin/oscaragent進程。如果沒有/opt/ShenTong/bin/osca進程,可能是授權(quán)到期了導(dǎo)致啟動失敗,需要調(diào)整本機時間。
默認用戶名:SYSDBA,密碼:szoscar55,庫:OSRDB,schema:SYSDBA
容器內(nèi)可使用/opt/ShenTong/bin/isql -U SYSDBA/szoscar55 -d osrdb命令連接數(shù)據(jù)庫。
測試連接并執(zhí)行命令:(需要指定連接客戶端的字符集為UTF-8)
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
/opt/ShenTong/bin/isql -U SYSDBA/szoscar55 -d osrdb sysdba
select version;
2.準(zhǔn)備監(jiān)控神舟通用數(shù)據(jù)庫
2.1.將神舟通用數(shù)據(jù)庫提供的python模塊及需要的lib文件復(fù)制到容器外的/opt目錄下。
docker cp Oscar:/opt/ShenTong/STPython/ /opt
docker cp Oscar:/opt/ShenTong/bin/libaci.so /lib64/
ldconfig -v | grep libaci #加載lib
2.2.安裝python3.5用于監(jiān)控神舟通用數(shù)據(jù)庫。
安裝步驟略
2.3.安裝連接神舟通用數(shù)據(jù)庫用的python模塊。
python3 -m pip install --no-index --find-links=/opt/STPython/Python35 STPython
2.4.創(chuàng)建監(jiān)控用的腳本。
在zabbix的外部檢查目錄下創(chuàng)建2個監(jiān)控用的腳本,我使用的是/itops/zabbix/share/zabbix/externalscripts/目錄,需要根據(jù)實際情況進行修改。
vi /itops/zabbix/share/zabbix/externalscripts/pyshentongdb
#!/usr/bin/bash
/usr/bin/python3 /itops/zabbix/share/zabbix/externalscripts/pyshentongdb.py --username $1 --password $2 --address $3 --port $4 --database $5 $6 $7 $8
vi /itops/zabbix/share/zabbix/externalscripts/pyshentongdb.py
#!/usr/bin/env python3
#coding: utf-8
#author: cxhimport argparse
import STPython
import inspect
import json
import reversion = 0.2class Checks(object):def version(self):"""查數(shù)據(jù)庫版本"""sql = "select version"self.cur.execute(sql)res = self.cur.fetchall()for i in res:print(i[0])class Main(Checks):def __init__(self):parser = argparse.ArgumentParser()parser.add_argument('--username')parser.add_argument('--password')parser.add_argument('--address')parser.add_argument('--port')parser.add_argument('--database')subparsers = parser.add_subparsers()for name in dir(self):if not name.startswith("_"):p = subparsers.add_parser(name)method = getattr(self, name)argnames = inspect.getargspec(method).args[1:]for argname in argnames:p.add_argument(argname)p.set_defaults(func=method, argnames=argnames)self.args = parser.parse_args()def db_connect(self):a = self.argsusername = a.usernamepassword = a.passwordaddress = a.addressport = a.portdatabase = a.databaseself.db = STPython.Connection(user=username,password=password,dsn=str(address)+':'+str(port)+'/'+str(database))self.cur = self.db.cursor()def db_close(self):self.db.close()def __call__(self):try:a = self.argscallargs = [getattr(a, name) for name in a.argnames]self.db_connect()try:return self.args.func(*callargs)finally:self.db_close()except Exception as err:print("0")print(str(err))if __name__ == "__main__":main = Main()main()
本文章僅展示了神舟通用數(shù)據(jù)庫的一個監(jiān)控指標(biāo)添加例子,后續(xù)需要神舟通用數(shù)據(jù)庫的DBA提供常用的監(jiān)控相關(guān)的SQL語句進行監(jiān)控指標(biāo)的擴充。
監(jiān)控結(jié)果如下:
附:
數(shù)據(jù)庫版本監(jiān)控指標(biāo)配置示例:
名稱:數(shù)據(jù)庫版本
類型:外部檢查
鍵值:
pyshentongdb[{KaTeX parse error: Expected 'EOF', got '}' at position 9: USERNAME}?,{PASSWORD},{HOST.CONN},{KaTeX parse error: Expected 'EOF', got '}' at position 5: PORT}?,{DATABASE},version]
更新間隔:7200 (按需進行設(shè)置)
需要在模板上增加以下宏:
{KaTeX parse error: Expected 'EOF', got '}' at position 9: USERNAME}?:填寫數(shù)據(jù)庫的連接用戶名 {PASSWORD}:填寫數(shù)據(jù)庫的連接密碼
{KaTeX parse error: Expected 'EOF', got '}' at position 5: PORT}?:填寫數(shù)據(jù)庫的監(jiān)聽端口 {DATABASE}:填寫數(shù)據(jù)庫的實例名,本文是osrdb
以上就是本期文章的全部內(nèi)容。大家好,我是樂樂,專注運維技術(shù)研究與分享,想要了解更多zabbix開源監(jiān)控使用技巧,歡迎關(guān)注樂維社區(qū),同時zabbix使用問題也歡迎到樂維社區(qū)留言提問~