达梦运维工具-DEM搭建

运维监控工具-DEM

前言

根据达梦官网文档整理

一、工具介绍

DM企业管理器(DM Enterprise Manager,简称为DEM)提供一个通过Web 界面来监控、管理并维护DM数据库的集中式管理平台。数据库管理员可通过任意Web应用登录DEM,从而对DM数据库进行管理和监控。DEM主要有集群部署、自动巡检、监控和告警等功能。

1、DEM架构

DEM由以下几个部分组成:

  • DEM 服务器:指 DEM 应用服务器,负责处理客户端工具功能逻辑并存储 dmagent 收集到的数据到 DEM 存储数据库,同时向客户端展示监控数据。
  • DEM 存储数据库:存储 DEM 的元数据和 dmagent 收集到的监控数据。
  • 数据库实例:需要被管理监控的数据库实例。
  • 数据库代理服务(dmagent):部署在远程机器上的代理,DEM 通过 dmagent 访问远程主机,同时 dmagent 收集监控信息发送给 DEM。

DEM系统架构图如下:

在这里插入图片描述

2、DEM功能

  • 客户端工具。用户能够通过 DEM 工具来进行 DM 数据库的对象管理、状态监控、SQL 查询与调试。
  • 监控与告警。本功能是 DEM 工具的核心功能。通过远程主机部署代理,能够实现对远程主机状态和远程主机上 DM 数据库实例状态的监控。DEM 监控功能不仅仅局限于单个数据库实例,还能够对数据库集群(MPP、RAC、数据守护等)进行监控和管理。
  • 系统管理。DEM 工具提供了工具本身的系统配置与权限管理,方便不同用户同时使用工具,也可限制非 admin 用户的权限。

二、环境准备

DEM 部署需要准备:

1、DEM WAR包

自己下载

2、Tomcat

自备,要求与部署的系统环境相匹配

3、JAVA1.8

DEM和dmagent所在机器需要配置 JAVA环境,JAVA版本必须为JAVA 1.8。若系统中不带 jdk 环境可以在环境变量中指定数据库中的 jdk 目录即可,如下所示:

[root@localhost ~]# cat /etc/profile
export JAVA_HOME=/home/dmdba/dmdbms/jdk
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

4、达梦数据库

为DEM的后台数据库,需保证DEM 所在机器能访问达梦数据库。

在部署dmagent之前,需设置DEM和dmagent所在服务器主机的时间同步。如果没有,则不设置,正式环境建议要配置时间同步

如下以 10.10.10.10 为 ntp 服务器为例,设置定时任务:

[root@localhost ~]# crontab -l
# Time sync
0,10,20,30,40,50 * * * * /root/sync_time.sh
[root@localhost ~]# cat /root/sync_time.sh 
#!/bin/bash
. /etc/profile
. /root/.bash_profile
ntpdate 10.10.10.10 ; hwclock –w

5、网络规划

主机IP
DEM(DEM服务器)192.168.100.40
DW01(达梦数据守护集群主库)192.168.100.30
DW02(达梦数据守护集群备库)192.168.100.31
DWM(达梦数据守护集群监视器)192.168.100.32

三、DEM部署步骤

1、初始化数据库

1.1 创建后台数据库

创建一个 DM 数据库作为 DEM 后台数据库,初始化参数不做要求,默认即可,并对数据库的 dm.ini 参数配置进行优化,推荐配置如下:

MEMORY_POOL         	=  200
BUFFER                =  1000
KEEP                  =  64
SORT_BUF_SIZE         =  50
1.2 执行初始化脚本

在创建的后台数据库中用 SYSDBA(或管理员用户)执行 SQL 脚本 dem_init.sql,脚本在DEM安装包中(此 SQL 脚本编码为 UTF-8,若使用 disql 执行 SQL 脚本,请先设置 set CHAR_CODE UTF8)。执行完脚本后,在后台数据库中会生成一个 DEM 的模式,存放 DEM 运行所需要的表和视图。

SQL> SET CHAR_CODE UTF8;
SQL> START /home/dmdba/dem_init.sql

2、配置Tomcat

2.1 解压Tomcat

解压tomcat包,解压tomcat之后,会生成以下目录:

[dmdba@DEM tomcat]$ ll
总用量 136
drwxr-xr-x  9 dmdba dinstall   220 214 08:15 .
drwx------. 7 dmdba dinstall   184 33 23:39 ..
drwxr-xr-x  2 dmdba dinstall  4096 33 23:39 bin
-rw-r--r--  1 dmdba dinstall 21516 214 08:15 BUILDING.txt
drwxr-xr-x  3 dmdba dinstall   254 33 23:39 conf
-rw-r--r--  1 dmdba dinstall  6375 214 08:15 CONTRIBUTING.md
drwxr-xr-x  2 dmdba dinstall  4096 214 08:15 lib
-rw-r--r--  1 dmdba dinstall 58153 214 08:15 LICENSE
drwxr-xr-x  2 dmdba dinstall   197 33 23:39 logs
-rw-r--r--  1 dmdba dinstall  2401 214 08:15 NOTICE
-rw-r--r--  1 dmdba dinstall  3422 214 08:15 README.md
-rw-r--r--  1 dmdba dinstall  7075 214 08:15 RELEASE-NOTES
-rw-r--r--  1 dmdba dinstall 16982 214 08:15 RUNNING.txt
drwxr-xr-x  2 dmdba dinstall    30 214 08:15 temp
drwxr-xr-x  8 dmdba dinstall   107 33 23:39 webapps
drwxr-xr-x  3 dmdba dinstall    22 33 23:39 work
2.2 修改Tomcat配置
2.2.1 修改conf/server.xml

在conf/server.xml配置文件中<Connector port=“8080” protocol=“HTTP/1.1”… 位置处添加属性字段 maxPostSize=“-1”:

<Connector port="8080" protocol="HTTP/1.1" maxPostSize="-1"
               connectionTimeout="20000"
              redirectPort="8443" />
2.2.2 bin/*.sh赋予执行权限
$ chmod u+x bin/*.sh
2.2.3 修改bin/catalina.sh

在内容cygwin=false前面添加这行

[dmdba@dem bin]$ vi catalina.sh 
# Linux:bin/catalina.sh
JAVA_OPTS="-server -Xms256m -Xmx1024m -Djava.library.path=/home/dmdba/dmdbms/bin"
# Windows:bin/catalina.bat
set java_opts= -server -Xms40m -Xmx1024m -Djava.library.path=c:\dmdbms\bin

注意:

/home/dmdba/dmdbms/bin根据自己实际路径填写


3、配置dem.war包

3.1 解压dem.war包
$ unzip -oq dem.war -d ~/dem	
$ ls -lF ~/dem
总用量 60
-rw-r--r-- 1 dmdba dinstall  1369 1214 14:46 auto_login_error.jsp
drwxr-xr-x 8 dmdba dinstall  8192 1214 14:56 dem/
-rw-r--r-- 1 dmdba dinstall  5100 1214 14:46 Dem.html
drwxr-xr-x 9 dmdba dinstall   225 1214 14:56 dmagent/
-rw-r--r-- 1 dmdba dinstall  1064 1214 14:46 error.html
-rw-r--r-- 1 dmdba dinstall  1482 1214 14:46 error.jsp
-rw-r--r-- 1 dmdba dinstall  1560 1214 14:46 favicon.png
drwxr-xr-x 2 dmdba dinstall    27 1214 14:56 font/
drwxr-xr-x 4 dmdba dinstall    34 1214 14:56 help/
drwxr-xr-x 6 dmdba dinstall 16384 1214 14:56 images/
drwxr-xr-x 2 dmdba dinstall  4096 1214 14:56 jdbcdriver/
drwxr-xr-x 5 dmdba dinstall    87 1214 14:56 js/
drwxr-xr-x 2 dmdba dinstall     6 1214 14:46 log/
drwxr-xr-x 2 dmdba dinstall    25 34 00:12 META-INF/
drwxr-xr-x 8 dmdba dinstall    89 1214 14:56 resources/
drwxr-xr-x 2 dmdba dinstall    55 1214 14:56 theme/
drwxr-xr-x 6 dmdba dinstall   128 34 00:17 WEB-INF/		
3.2 修改WEB-INF/db.xml配置

修改WEB-INF/db.xml文件,配置后台数据库连接信息

<?xml version="1.0" encoding="UTF-8"?>
<ConnectPool>
        <Server>127.0.0.1</Server>   <!--DEM后台数据库IP-->
        <Port>5236</Port>
        <User>SYSDBA</User>
        <Password>SYSDBA</Password>
        <InitPoolSize>5</InitPoolSize>
        <CorePoolSize>10</CorePoolSize>
        <MaxPoolSize>50</MaxPoolSize>
        <KeepAliveTime>60</KeepAliveTime>
        <DbDriver></DbDriver>
        <DbTestStatement>select 1</DbTestStatement>
        <SSLDir>../sslDir/client_ssl/SYSDBA</SSLDir>
        <SSLPassword></SSLPassword>
</ConnectPool>
3.3 重新打包dem.war
$ cd ~/dem && ~/dmdbms/jdk/bin/jar -cvf dem.war * && mv dem.war ~/ && rm -rf ~/dem
3.4 移动dem.war包

将dem.war包放置在Tomcat的webapps目录下,启动Tomcat,会自动解压war包生成dem目录。

$ mv ~/dem.war ~/tomcat/webapps
3.5 配置DEM日志级别(可选)

在tomcat的webapps/dem/WEB-INF目录下,log4j.xml文件控制着日志级别。LOG_LEVEL参数控制日志的显示信息,LOG_MAX_SIZE,LOG_MAX_COUNT,LOG_PRESERVE_DURATION这3个参数动态组合控制日志量和日志保存的最大大小,超过这个最大大小的日志会被删除。
日志最大大小 = L O G _ M A X _ S I Z E × L O G _ M A X _ C O U N T × L O G _ P R E S E R V E _ D U R A T I O N 日志最大大小= LOG\_MAX\_SIZE × LOG\_MAX\_COUNT × LOG\_PRESERVE\_DURATION 日志最大大小=LOG_MAX_SIZE×LOG_MAX_COUNT×LOG_PRESERVE_DURATION

注意:

tomcat启动后会自动解压webapps/dem.war包,生成dem文件夹

在DEM调试和查找问题时,LOG_LEVEL可以使用DEBUG或者ALL参数,生产环境平时建议使用ERROR级别。根据项目的实际需要和磁盘的可用大小,调整LOG_MAX_SIZE,LOG_MAX_COUNT,LOG_PRESERVE_DURATION这3个参数的大小,避免出现磁盘爆盘的现象。此配置文件重启Tomcat之后才能生效


<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="OFF">
        <Properties>
                <!-- 项目名称,同时也是日志文件的前缀 -->
                <Property name="PROJECT_NAME" value="dem" />
                <!-- 日志级别(ALL,TRACE,DEBUG,INFO,WARN,ERROR,FATAL,OFF) -->
                <Property name="LOG_LEVEL" value="ERROR" />
                <!-- 每份日志文件的最大体积,需要提供单位(B | KB | MB | GB 等) -->
                <Property name="LOG_MAX_SIZE" value="100 MB" />
                <!-- 每天日志最大份数,如果达到最大份数,当天较早的日志会被移除 -->
                <Property name="LOG_MAX_COUNT" value="10" />
                <!-- 备份日志最长保存时间(天) -->
                <Property name="LOG_PRESERVE_DURATION" value="30" />
                <!-- 日志保存目录 -->
                <Property name="LOG_FILE_PATH" value="${sys:DEMLogDir:-log}" />
                <!-- 日志前缀 -->
                <Property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss} %n[%p] %m%n" />
        </Properties>

        <Appenders>

                <Console name="CONSOLE" target="SYSTEM_OUT">
                        <ThresholdFilter level="ALL" />
                        <PatternLayout pattern="${LOG_PATTERN}" />
                </Console>

                <RollingRandomAccessFile name="FILE"
                        append="true" immediateFlush="false" bufferSize="512"
                        fileName="${LOG_FILE_PATH}/${PROJECT_NAME}.log"
                        filePattern="${LOG_FILE_PATH}/${PROJECT_NAME}-%d{yyyy-MM-dd}-%i.log.gz"
                        filePermissions="rw-rw-rw-">
                        <ThresholdFilter level="ALL" />
                        <PatternLayout pattern="${LOG_PATTERN}" charset="UTF-8" />
                        <Policies>
                                <TimeBasedTriggeringPolicy modulate="true" interval="1" />
                                <SizeBasedTriggeringPolicy size="${LOG_MAX_SIZE}" />
                        </Policies>
                        <DefaultRolloverStrategy max="${LOG_MAX_COUNT}">
                                <Delete basePath="${LOG_FILE_PATH}" maxDepth="1">
                                        <IfFileName glob="${PROJECT_NAME}*.log.gz" />
                                        <IfLastModified age="${LOG_PRESERVE_DURATION}d" />
                                </Delete>
                        </DefaultRolloverStrategy>
                </RollingRandomAccessFile>

        </Appenders>

        <Loggers>
                <AsyncRoot level="${LOG_LEVEL}">
                        <AppenderRef ref="CONSOLE" />
                        <AppenderRef ref="FILE" />
                </AsyncRoot>
        </Loggers>
</Configuration>

4、启动tomcat

在bin目录下执行脚本启动tomcat

[dmdba@DEM bin]$ ./startup.sh
Using CATALINA_BASE:   /home/dmdba/tomcat
Using CATALINA_HOME:   /home/dmdba/tomcat
Using CATALINA_TMPDIR: /home/dmdba/tomcat/temp
Using JRE_HOME:        /
Using CLASSPATH:       /home/dmdba/tomcat/bin/bootstrap.jar:/home/dmdba/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.

5、访问DEM

本机ip为192.168.100.40,开启浏览器访问url(http://192.168.10.40:8080/dem),登录(admin/888888)

在这里插入图片描述


四、部署dmagent

1、获取dmagent

获取dmagent,有两种方式:

  • 被监控的机子,达梦数据库安装目录的 tool 下存有 dmagent
  • 登录部署好的 DEM,资源包模块下载dmagent

在这里插入图片描述

2、修改dmagent配置

配置 dmagent 目录下的 agent.ini

center_url  =  http://192.168.100.40:8080/dem    #dem所在机器的地址     

3、配置dmagent日志级别

同样是修改dmagent 目录下的 log4j.xml文件,修改方法和配置与dem端一样

4、注册dmagent服务(使用root用户)

$ cd /home/dmdba/dmdbms/dmagent
$ ./service.sh install
input agent home [/home/dmdba/dmdbms/dmagent] :
input agent.ini path [/home/dmdba/dmdbms/dmagent/agent.ini] :
Installation the service DmAgentService completed.

5、启动dmagent服务

$ systemctl start DmAgentService

6、DEM查看

dmagent配置正确的话,就能在DEM资源监控模块就能看到你启动了agent的机器了

在这里插入图片描述

达梦社区:https://eco.dameng.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/426653.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

rtt的io设备框架面向对象学习-io设备管理层

目录 1.设备基类2.rtt基类2.1 rtt基类定义2.2 对象容器定义2.3 rtt基类构造函数 3.io设备管理接口4.总结 这层我的理解就是rtt基类和设备基类所在&#xff0c;所以抽离出来好点&#xff0c;不然每个设备类都要重复它。 1.设备基类 /include/rtdef.h中定义了设备基类struct rt_…

力扣日记3.3-【回溯算法篇】332. 重新安排行程

力扣日记&#xff1a;【回溯算法篇】332. 重新安排行程 日期&#xff1a;2023.3.3 参考&#xff1a;代码随想录、力扣 ps&#xff1a;因为是困难题&#xff0c;望而却步了一星期。。。T^T 332. 重新安排行程 题目描述 难度&#xff1a;困难 给你一份航线列表 tickets &#xf…

动态库制作

win下扩展名为.dll(dynamic linking library) linux下前缀为dll 扩展名为.so(shared object) linux 下使用动态库步骤 1&#xff0c;制作动态库&#xff0c; libmath.so 2&#xff0c;在主程序中包含动态库&#xff08;就是添加头文件的方法&#xff09; 3&#xff0c;编译…

支持向量机 SVM | 线性可分:公式推导

目录 一. SVM的优越性二. SVM算法推导小节概念 在开始讲述SVM算法之前&#xff0c;我们先来看一段定义&#xff1a; 支持向量机(Support VecorMachine, SVM)本身是一个二元分类算法&#xff0c;支持线性分类和非线性分类的分类应用&#xff0c;同时通过OvR或者OvO的方式可以应用…

ElasticSearch开篇

1.ElasticSearch简介 1.1 ElasticSearch&#xff08;简称ES&#xff09; Elasticsearch是用Java开发并且是当前最流行的开源的企业级搜索引擎。能够达到实时搜索&#xff0c;稳定&#xff0c;可靠&#xff0c;快速&#xff0c;安装使用方便。 1.2 ElasticSearch与Lucene的关…

《数字图像处理(MATLAB版)》相关算法代码及其分析(1)

目录 1 自适应中值滤波算法 1.1 函数定义 1.2 输入参数检查 1.3 初始化 1.4 自适应中值滤波过程 1.5 处理剩余未处理的像素 1.6 总结 2 计算输入数组的平均值 2.1 函数定义 2.2 注释 2.3 输入验证 2.4 计算平均值 2.5 总结 3 基于高斯模型的贝叶斯分类器 3.1 函…

Python3 字符串

字符串是 Python 中最常用的数据类型。我们可以使用引号( 或 " )来创建字符串。 创建字符串很简单&#xff0c;只要为变量分配一个值即可。例如&#xff1a; var1 Hello World! var2 "Runoob" Python 访问字符串中的值 Python 不支持单字符类型&#xff…

经典目标检测网络Yolo——原理部分

目标检测问题 分为两个子问题: 找到图片中哪些位置、哪些区域含有目标对象识别这些区域中的目标对象是什么基于CNN的目标检测算法能够很好的解决第二个问题,在一张图片仅含一个对象,且该对象占据了整张图片绝大部分面积时,基于CNN的对象识别算法具有很高的准确率。 一种定…

最新版风车IM通讯iosapph5三端源码及视频教程

最新版风车IM通讯iosapph5三端源码及视频教程 1.宝塔环境如下: Nginx 1.20 Tomcat 8 MySQL 8.0 Redis 7 2.放行端口如下&#xff1a; 666 6600 6700 7000&#xff08;用作前端&#xff09; 7001&#xff08;用作后端&#xff09; 3.宝塔数据库添加数据库旁边有个ro…

安装OneNote for Win10 | Win10/Win11

前言 PC端的OneNote分为2个版本&#xff0c;分别是Microsoft Store版本和Office版本&#xff0c;Microsoft Store版本即为OneNote for Win10&#xff0c;此版的OneNote有最近笔记功能&#xff0c;但检索功能不如Office版本&#xff0c;个人认为2个版本各有优劣。 但OneNote f…

2024高频前端面试题 JavaScript 和 ES6 篇

HTML和CSS篇&#xff1a; 2024高频前端面试题 HTML 和 CSS 篇-CSDN博客 一. JavaScript篇 1. 数据类型有哪些 1) 原始数据类型 数值(Number)、字符串(String)、布尔值(Boolean)、Undefined、Null、Symbol、BigInt 2) 引用数据类型 对象(Object)、数组(Array)、函数(Funct…

【Godot 4.2】Tree控件与TreeItem完全解析

概述 本篇是控件完全解析系列之一&#xff0c;主要总结一下Tree控件与TreeItem的使用。 Tree控件是一个非常强大的控件&#xff0c;尤其是在编写一些相关的程序或编辑器插件时&#xff0c;非常适合展示树形组织的节点型数据。 本篇将从简单的添加根节点&#xff0c;根节点子…

【CSP试题回顾】201709-1-打酱油

CSP-201709-1-打酱油 完整代码 #include<iostream> using namespace std; int main() {int N, num 0;cin >> N;int n1 N / 50;if (n1 ! 0){N N - n1 * 50;num n1 * 7;}int n2 N / 30;if (n2 ! 0){N N - n2 * 30;num n2 * 4;}int n3 N / 10;num n3;cout…

多路IO转接之 poll方式

根据网络视频整理&#xff1a; fds:数组的首地址&#xff1b; nfds:数组的个数 poll是select函数的升级版。&#xff08;但poll只能在linux系统下用&#xff0c;select可以跨平台&#xff09; 1&#xff09;可以突破1024个文件描述符限制。 通过修改配置文件修改&#xff…

自动化测试介绍、selenium用法(自动化测试框架+爬虫可用)

文章目录 一、自动化测试1、什么是自动化测试&#xff1f;2、手工测试 vs 自动化测试3、自动化测试常见误区4、自动化测试的优劣5、自动化测试分层6、什么项目适合自动化测试 二、Selenuim1、小例子2、用法3、页面操作获取输入内容模拟点击清空文本元素拖拽frame切换窗口切换/标…

pycharm 自定义TODO类注释以及其高亮颜色

大体介绍 使用自定义TODO是为了方便看&#xff0c;并且快速定位到位置 上面是为了进行标记&#xff0c;下面是让哪些标记可以过滤掉&#xff08;自定义过滤规则&#xff09;&#xff0c;从而在pycharm下面的TODO可以显示并过滤 如何设置&#xff1f; Setting-Preferences-Ed…

计算机设计大赛 深度学习猫狗分类 - python opencv cnn

文章目录 0 前言1 课题背景2 使用CNN进行猫狗分类3 数据集处理4 神经网络的编写5 Tensorflow计算图的构建6 模型的训练和测试7 预测效果8 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; **基于深度学习猫狗分类 ** 该项目较为新颖&a…

Spring初始(相关基础知识和概述)

Spring初始&#xff08;相关基础知识和概述&#xff09; 一、Spring相关基础知识&#xff08;引入Spring&#xff09;1.开闭原则OCP2.依赖倒置原则DIP3.控制反转IoC 二、Spring概述1.Spring 8大模块2.Spring特点2.Spring的常用jar文件 一、Spring相关基础知识&#xff08;引入S…

[vue error] TypeError: Components is not a function

问题详情 问题描述: element plus按需导入后&#xff0c;启动项目报错&#xff1a; 问题原因 unplugin-vue-components插件版本问题 查看 unplugin-vue-components插件可以发现版本太高了 问题解决 unplugin-vue-components 版本高了&#xff0c;我用的0.26.0&#xff0c…

【周总结平淡但不平凡的周末】

上周总结 根据系统生产环境的日志文件&#xff0c;写了个脚本统计最近使用我们系统的用户的手机型号以及系统&#xff0c;帮助聚焦主要测试的机型&#xff0c;以及系统类型 依然是根据时区不同对项目进行改造&#xff0c;还有一个开发好的接口需要下周联调 2024/3/3 晴…