首页 > 数据库 >Zabbix监控神通数据库教程

Zabbix监控神通数据库教程

时间:2024-06-19 14:56:37浏览次数:11  
标签:opt bin 教程 -- self zabbix 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

#!/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使用问题也欢迎到乐维社区留言提问~

 

标签:opt,bin,教程,--,self,zabbix,Zabbix,数据库
From: https://www.cnblogs.com/lwops/p/18256221

相关文章

  • MySQL数据库初体验
    目录1.数据库的基本概念(1)关系型数据库(SQL)(2)非关系型数据库(NoSQL)(3)主流的数据库介绍2.MySQL安装方法1.数据库的基本概念数据库分两大类:关系型数据库SQL、非关系型数据库NoSQL。(1)关系型数据库(SQL)典型代表:MySQL、MariaDB、PostgreSQL、SQL、Server、Oracle、Db2。信创标准(国产......
  • 从入门到实战,一篇学会TS,保姆式教程
    本文知识图谱分基础、进阶和实战三个部分,分别如下:image.pngimage.pngimage.png这三份知识图谱里罗列的知识看似很多,实际上除了进阶部分的泛型、高级类型(二)和实战部分需要稍微费点脑细胞外,其他的都很好理解。本文罗列的知识点比官方文档精简,但基本能覆盖日常开发需要用......
  • SpringData初步学习-连接MySQL数据库
    1.添加mysql驱动和spring-data-jpa依赖<dependencies><!--SpringDataJPA--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId><......
  • 辐射4风灵月影修改器使用教程:在末世中轻松生存
    在废土世界中畅游,每个《辐射4》的玩家都梦想着拥有无尽的资源与超凡的能力,以更好地探索这个充满挑战与奇遇的后末日世界。风灵月影工作室为我们带来了强大的《辐射4》修改器,它不仅能够极大地丰富你的游戏体验,还能让你的角色瞬间成为废土之上的不朽传奇。本文将详尽指导你如何使......
  • 登录爆破神器:Hydra 保姆级教程
    前言Hydra是一个广泛使用的网络登录破解工具,支持多种协议(如HTTP、FTP、SSH、Telnet等),用于执行暴力破解攻击。它由VanHauser和TheHacker'sChoice(THC)团队开发,设计用于快速和高效地尝试大量用户名和密码组合,帮助安全研究人员测试系统的登录安全性。一、安装Hydra......
  • Maven入门教程
    Maven是一款基于Java平台的项目管理和整合工具,它极大地简化了项目的开发、构建、测试、打包和部署过程。以下是Maven的详细教程,内容涵盖了从安装到部署的各个主要步骤:一、Maven的简介Maven诞生于2001年3月左右,由JasonVanZyl创立。它将项目的开发和管理过程抽象成一个项......
  • Kafka集群保姆级部署教程
    目录资源列表基础环境修改主机名关闭防火墙关闭selinux安装JAVA安装Kafka下载Kafka解压修改配置文件kafka01kafka02kafka03启动服务启动ZK启动Kafka验证测试创建topic查看topic        今天给大家分享的是Kafka分布式集群部署,上次分享的单机版的k......
  • python-jupyter notebook安装教程
    ......
  • Camtasia Studio 2024软件最新版下载【安装详细图文教程】
    ​Camtasia是美国TechSmith公司出品的一款集电脑屏幕录制、视频剪辑为一体的软件套装。同时包含Camtasia录制器、CamtasiaStudio(编辑器)、Camtasia菜单制作器、Camtasia剧场、Camtasia播放器和Screencast的内置功能。安装包获取地址:CamtasiaStudio2024win版:​......
  • 小型企业人事管理系统java ssm mysql|全套源码+文章lw+毕业设计+课程设计+数据库+ppt
    小型企业人事管理系统javassmmysql|全套源码+文章lw+毕业设计+课程设计+数据库+ppt小型企业人事管理系统的设计与实现【摘要】:人才是企业发展的核心力量,所以人事管理是企业管理中一项重要的任务。传统的人事管理系统不仅效率慢而且极易出错,使管理者不能清楚的了解每一位......