Zabbix监控神通数据库教程
作者:乐维社区(forum.lwops.cn) 乐乐
神通数据库,即神舟通用数据库(ShenTong Database),是我国自主研发的一款关系型数据库管理系统。它在国内市场有一定的应用,尤其是在一些对数据安全、独立性有较高要求的领域,如政府、金融、电信、能源、医疗等行业。
Zabbix是一款被广泛应用的开源监控工具,常常被用于企业机构等IT基础架构的监控。
本文将介绍如何使用 Docker 快速安装和配置神舟通用数据库,并使用Zabbix监控神舟通用数据库。
安装步骤参考:
https://blog.csdn.net/weixin_46603727/article/details/131300046
docker镜像下载:https://pan.baidu.com/s/1-W_tuGk4waewNhr6C8Z00g
提取码:9572
1. 安装步骤
1.1. 安装docker,下载神舟通用数据库镜像shentong_342_163_x86_64bit.zip并上传至服务器。
yum install docker
systemctl start docker
unzip shentong_342_163_x86_64bit.zip
docker load -i shentong_342_163_x86_64bit
导入完成后,可以使用 docker images 查看导入的镜像。结果显示如下:
1.2. 初始化容器。
date -s "2023/06/20" #该镜像有试用授权期限,因此需要调整日期
docker run -d -p 2003:2003 --name Oscar shentong_342_163_x86_64bit
#创建并运行容器,将会在后台启动一个名为 oscar 的容器,并将容器的2003端口映射到宿主机的2003端口,将数据目录映射到/opt/ShenTong/。
docker ps -a #查看容器运行状态
正常启动后能看到容器里启动了/opt/ShenTong/bin/oscar和/opt/ShenTong/bin/oscaragent进程。如果没有/opt/ShenTong/bin/osca进程,可能是授权到期了导致启动失败,需要调整本机时间。
默认用户名:SYSDB,密码:szoscar55,库:OSRDB,schema:SYSDBA
容器内可使用/opt/ShenTong/bin/isql -U SYSDBA/szoscar55 -d osrdb命令连接数据库。
默认用户名:SYSDBA,密码:szoscar55,库:OSRDB,schema:SYSDBA
容器内可使用/opt/ShenTong/bin/isql -U SYSDBA/szoscar55 -d osrdb命令连接数据库。
测试连接并执行命令:(需要指定连接客户端的字符集为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. 准备监控神舟通用数据库
2.1. 将神舟通用数据库提供的python模块及需要的lib文件复制到容器外的/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用于监控神舟通用数据库。
安装步骤略
2.3. 安装连接神舟通用数据库用的python模块。
python3 -m pip install --no-index --find-links=/opt/STPython/Python35 STPython
2.4. 创建监控用的脚本。
在zabbix的外部检查目录下创建2个监控用的脚本,我使用的是/itops/zabbix/share/zabbix/externalscripts/目录,需要根据实际情况进行修改。
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | #!/usr/bin/env python3 # coding: utf-8 # author: cxh import argparse import STPython import inspect import json import re version = 0.2 class Checks( object ): def version(self): "" "查数据库版本" "" 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.args username = a.username password = a.password address = a.address port = a.port database = a.database self.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.args callargs = [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() |
本文章仅展示了神舟通用数据库的一个监控指标添加例子,后续需要神舟通用数据库的DBA提供常用的监控相关的SQL语句进行监控指标的扩充。
监控结果如下:
附:
数据库版本监控指标配置示例:
名称:数据库版本
类型:外部检查
键值:
pyshentongdb[{$USERNAME},{$PASSWORD},{HOST.CONN},{$PORT},{$DATABASE},version]
更新间隔:7200 (按需进行设置)
需要在模板上增加以下宏:
{$USERNAME}:填写数据库的连接用户名
{$PASSWORD}:填写数据库的连接密码
{$PORT}:填写数据库的监听端口
{$DATABASE}:填写数据库的实例名,本文是osrdb
以上就是本期文章的全部内容。大家好,我是乐乐,专注运维技术研究与分享,想要了解更多zabbix开源监控使用技巧,欢迎关注乐维社区,同时zabbix使用问题也欢迎到乐维社区留言提问~
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 盘点!HelloGitHub 年度热门开源项目
· DeepSeek V3 两周使用总结
· 02现代计算机视觉入门之:什么是视频
· C#使用yield关键字提升迭代性能与效率
· 2. 什么?你想跨数据库关联查询?