Zabbix监控神通数据库教程

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介: **摘要:**本文介绍了如何使用Docker安装和配置神舟通用数据库,并利用Zabbix进行监控。首先,通过Docker安装数据库镜像,启动容器并映射端口。接着,使用默认凭证连接数据库并验证安装。然后,将数据库的Python模块和库文件复制到主机,并安装Python3.5及相应模块,创建外部检查脚本以实现Zabbix的监控功能。示例展示了查询数据库版本的监控指标配置。最后,提到了监控结果的界面展示,并邀请读者探索更多Zabbix监控技巧。

神通数据库,即神舟通用数据库(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 查看导入的镜像。结果显示如下:
image.png

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 #查看容器运行状态
image.png

正常启动后能看到容器里启动了/opt/ShenTong/bin/oscar和/opt/ShenTong/bin/oscaragent进程。如果没有/opt/ShenTong/bin/osca进程,可能是授权到期了导致启动失败,需要调整本机时间。

image.png

默认用户名:SYSDBA,密码:szoscar55,库:OSRDB,schema:SYSDBA

容器内可使用/opt/ShenTong/bin/isql -U SYSDBA/szoscar55 -d osrdb命令连接数据库。

image.png

测试连接并执行命令:(需要指定连接客户端的字符集为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;
image.png

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
image.png

2.2.安装python3.5用于监控神舟通用数据库。

安装步骤略

2.3.安装连接神舟通用数据库用的python模块。

python3 -m pip install --no-index --find-links=/opt/STPython/Python35 STPython
image.png

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

!/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语句进行监控指标的扩充。

监控结果如下:

image.png

image.png

附:

数据库版本监控指标配置示例:

名称:数据库版本

类型:外部检查

键值:

pyshentongdb[{$USERNAME},{$PASSWORD},{HOST.CONN},{$PORT},{$DATABASE},version]

更新间隔:7200 (按需进行设置)

需要在模板上增加以下宏:

{$USERNAME}:填写数据库的连接用户名

{$PASSWORD}:填写数据库的连接密码

{$PORT}:填写数据库的监听端口

{$DATABASE}:填写数据库的实例名,本文是osrdb

以上就是本期文章的全部内容。大家好,我是乐乐,专注运维技术研究与分享,想要了解更多zabbix开源监控使用技巧,欢迎关注乐维社区,同时zabbix使用问题也欢迎到乐维社区留言提问~

相关文章
|
3月前
|
监控 Java 应用服务中间件
达梦数据库DEM监控部署教程分享
达梦数据库DEM监控部署教程分享
113 2
|
12天前
|
SQL 监控 数据库
OceanBase社区版可以通过Zabbix监控
OceanBase社区版可以通过Zabbix监控
42 7
|
12天前
|
缓存 监控 关系型数据库
如何根据监控结果调整 MySQL 数据库的参数以提高性能?
【10月更文挑战第28天】根据MySQL数据库的监控结果来调整参数以提高性能,需要综合考虑多个方面的因素
52 1
|
12天前
|
监控 关系型数据库 MySQL
如何监控和诊断 MySQL 数据库的性能问题?
【10月更文挑战第28天】监控和诊断MySQL数据库的性能问题是确保数据库高效稳定运行的关键
29 1
|
15天前
|
SQL 数据采集 监控
局域网监控电脑屏幕软件:PL/SQL 实现的数据库关联监控
在当今网络环境中,基于PL/SQL的局域网监控系统对于企业和机构的信息安全至关重要。该系统包括屏幕数据采集、数据处理与分析、数据库关联与存储三个核心模块,能够提供全面而准确的监控信息,帮助管理者有效监督局域网内的电脑使用情况。
15 2
|
26天前
|
存储 SQL 关系型数据库
【入门级教程】MySQL:从零开始的数据库之旅
本教程面向零基础用户,采用通俗易懂的语言和丰富的示例,帮助你快速掌握MySQL的基础知识和操作技巧。内容涵盖SQL语言基础(SELECT、INSERT、UPDATE、DELETE等常用语句)、使用索引提高查询效率、存储过程等。适合学生、开发者及数据库爱好者。
40 0
【入门级教程】MySQL:从零开始的数据库之旅
|
1月前
|
tengine 关系型数据库 MySQL
Tengine、Nginx安装MySQL数据库命令教程
本指南详细介绍了在Linux系统上安装与配置MySQL数据库的步骤。首先通过下载并安装MySQL社区版本,接着启动MySQL服务,使用`systemctl start mysqld.service`命令。若启动失败,可尝试使用`sudo /etc/init.d/mysqld start`。利用`systemctl status mysqld.service`检查MySQL的服务状态,确保其处于运行中。通过日志文件获取初始密码,使用该密码登录数据库,并按要求更改初始密码以增强安全性。随后创建一个名为`tengine`的数据库,最后验证数据库创建是否成功以及完成整个设置流程。
|
2月前
|
JavaScript Java 关系型数据库
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
本文介绍了一个基于Spring Boot和Vue.js实现的在线考试系统。随着在线教育的发展,在线考试系统的重要性日益凸显。该系统不仅能提高教学效率,减轻教师负担,还为学生提供了灵活便捷的考试方式。技术栈包括Spring Boot、Vue.js、Element-UI等,支持多种角色登录,具备考试管理、题库管理、成绩查询等功能。系统采用前后端分离架构,具备高性能和扩展性,未来可进一步优化并引入AI技术提升智能化水平。
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
|
2月前
|
Java 关系型数据库 MySQL
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
本文介绍了一款基于Spring Boot和JSP技术的房屋租赁系统,旨在通过自动化和信息化手段提升房屋管理效率,优化租户体验。系统采用JDK 1.8、Maven 3.6、MySQL 8.0、JSP、Layui和Spring Boot 2.0等技术栈,实现了高效的房源管理和便捷的租户服务。通过该系统,房东可以轻松管理房源,租户可以快速找到合适的住所,双方都能享受数字化带来的便利。未来,系统将持续优化升级,提供更多完善的服务。
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
|
1月前
|
SQL 监控 数据库
OceanBase社区版可以通过Zabbix监控
【10月更文挑战第5天】随着OceanBase社区版的广泛应用,企业纷纷采用这一高性能、高可用的分布式数据库系统。为了确保系统的稳定运行,使用成熟的Zabbix监控工具进行全面监控至关重要。本文通过具体示例介绍了如何配置Zabbix监控OceanBase,包括安装配置、创建监控模板和监控项、编写脚本、设置触发器及图形展示等步骤,帮助读者快速上手,及时发现并解决问题,确保业务始终处于最佳状态。
46 2

推荐镜像

更多