运维监控工具-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 2月 14 08:15 .
drwx------. 7 dmdba dinstall 184 3月 3 23:39 ..
drwxr-xr-x 2 dmdba dinstall 4096 3月 3 23:39 bin
-rw-r--r-- 1 dmdba dinstall 21516 2月 14 08:15 BUILDING.txt
drwxr-xr-x 3 dmdba dinstall 254 3月 3 23:39 conf
-rw-r--r-- 1 dmdba dinstall 6375 2月 14 08:15 CONTRIBUTING.md
drwxr-xr-x 2 dmdba dinstall 4096 2月 14 08:15 lib
-rw-r--r-- 1 dmdba dinstall 58153 2月 14 08:15 LICENSE
drwxr-xr-x 2 dmdba dinstall 197 3月 3 23:39 logs
-rw-r--r-- 1 dmdba dinstall 2401 2月 14 08:15 NOTICE
-rw-r--r-- 1 dmdba dinstall 3422 2月 14 08:15 README.md
-rw-r--r-- 1 dmdba dinstall 7075 2月 14 08:15 RELEASE-NOTES
-rw-r--r-- 1 dmdba dinstall 16982 2月 14 08:15 RUNNING.txt
drwxr-xr-x 2 dmdba dinstall 30 2月 14 08:15 temp
drwxr-xr-x 8 dmdba dinstall 107 3月 3 23:39 webapps
drwxr-xr-x 3 dmdba dinstall 22 3月 3 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 12月 14 14:46 auto_login_error.jsp
drwxr-xr-x 8 dmdba dinstall 8192 12月 14 14:56 dem/
-rw-r--r-- 1 dmdba dinstall 5100 12月 14 14:46 Dem.html
drwxr-xr-x 9 dmdba dinstall 225 12月 14 14:56 dmagent/
-rw-r--r-- 1 dmdba dinstall 1064 12月 14 14:46 error.html
-rw-r--r-- 1 dmdba dinstall 1482 12月 14 14:46 error.jsp
-rw-r--r-- 1 dmdba dinstall 1560 12月 14 14:46 favicon.png
drwxr-xr-x 2 dmdba dinstall 27 12月 14 14:56 font/
drwxr-xr-x 4 dmdba dinstall 34 12月 14 14:56 help/
drwxr-xr-x 6 dmdba dinstall 16384 12月 14 14:56 images/
drwxr-xr-x 2 dmdba dinstall 4096 12月 14 14:56 jdbcdriver/
drwxr-xr-x 5 dmdba dinstall 87 12月 14 14:56 js/
drwxr-xr-x 2 dmdba dinstall 6 12月 14 14:46 log/
drwxr-xr-x 2 dmdba dinstall 25 3月 4 00:12 META-INF/
drwxr-xr-x 8 dmdba dinstall 89 12月 14 14:56 resources/
drwxr-xr-x 2 dmdba dinstall 55 12月 14 14:56 theme/
drwxr-xr-x 6 dmdba dinstall 128 3月 4 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