注册
达梦数据库安全监视软件 DBSMS安装部署
培训园地/ 文章详情 /

达梦数据库安全监视软件 DBSMS安装部署

DU 2023/05/29 1082 0 0

前言

安全监视软件DBSMS通过监视数据库的运行时长、数据库运行状态、CPU利用率、内存利用率等运行指标,来掌握数据库的运行状态,当发现CPU利用率或内存利用率超过平台设定的阈值,以及数据库运行状态异常时形成对应的告警,来及时发现数据库的状态异常。通过对磁盘使用率、表空间的状态等进行监视,当发现磁盘及表空间剩余存储空间不足时,及时形成告警,尽早的发现由于空间不足而导致数据库无法提供数据服务的隐患。通过监视数据库的配置调整、数据库用户的变更、用户登录失败等风险操作,当发现多次频繁登录失败、恶意操作数据库配置等风险操作时形成告警,从而尽早的识别数据库异常登陆及恶意篡改的风险。通过对数据库脏页面占比情况、是否存在长时间未提交操作、是否存在sql语句执行时间长等数据库异常,来识别数据库自身在核心业务方面的问题,从而识别由于这些异常可能导致数据库无法提供数据服务的风险。

1 DBSMS配置及启动

1.1 环境变量配置

安全监视软件运行程序需JDK环境1.8以上,如环境jdk版本低于1.8,可参考以下方式进行配置:
将安装包解压到/opt 下,解压文件:
tar -zvxf jdk-8u121-linux-x64.tar.gz

修改文件:vi /etc/profile
image.png
编辑保存后,source /etc/profile
并验证jdk是否生效。
java -version

DBSMS部署主机,有时候需要配置/etc/hosts中添加kafka主机的ip 和主机名,避免发送报文时报错。

1.2 DBSMS部署

1)建立dbsms软件执行目录
创建/opt/dbsms/bin目录作为监控程序最终启动目录 –安装目录可根据实际情况进行修改
mkdir -p /opt/dbsms/bin

2)将安装包及trial.key拷贝到/opt/dbsms/bin下--安装包包含两个目录,DMKafkaIniCreater和,其中DMKafkaIniCreater为加密目录,用于生成加密配置文件,DM7KafkaInspector为程序执行目录,为方便操作我们将两个文件夹合二为一。
cp -rf DMKafkaIniCreater/* /opt/dbsms/bin/
cp -rf DM7KafkaInspector/* /opt/dbsms/bin/

3)生成预处理脚本.sql
打开管理工具,先创建代理环境后,执行预处理脚本(创建代理环境的目的是因为预处理脚本中需要查询sysjob模式下相关系统表信息)

1.3 DBSMS配置及报文

1.3.1 执行命令

DM6:
-- Windows 下执行命令参考

  1. 计算DM6KafkaIniCreater.jar校验编码
    java -Djava.ext.dirs=./;./lib -cp DMKafkaIniCreater.jar creater.IniCreater md5-6

  2. 加密配置文件
    java -Djava.ext.dirs=./;./lib -cp DMKafkaIniCreater.jar creater.IniCreater t2k-6

  3. 解密配置文件
    java -Djava.ext.dirs=./;./lib -cp DMKafkaIniCreater.jar creater.IniCreater k2t-6

  4. 执行信息监控
    java -Djava.ext.dirs=./;./lib -cp DM6KafkaInspector.jar com.dm6.kafka.Launcher

-- Linux 下执行命令参考

  1. 计算DM6KafkaIniCreater.jar校验编码
    java -Djava.ext.dirs=./lib -cp DMKafkaIniCreater.jar creater.IniCreater md5-6

  2. 加密配置文件
    java -Djava.ext.dirs=./lib -cp DMKafkaIniCreater.jar creater.IniCreater t2k-6

  3. 解密配置文件
    java -Djava.ext.dirs=./lib -cp DMKafkaIniCreater.jar creater.IniCreater k2t-6

  4. 执行信息监控
    java -Xms256M -Xmx4096M -XX:PermSize=256M -XX:MaxPermSize=4096M -Djava.ext.dirs=./lib -cp DM6KafkaInspector.jar com.dm6.kafka.Launcher

DM7:
--Linux下执行命令参考

  1. 计算校验编码 --该命令用于获取校验码,填入init_conf_dm7.txt中CHECK_CODE配置项
    java -Djava.ext.dirs=./:./lib -cp DMKafkaIniCreater.jar creater.IniCreater md5-7

  2. 加密配置文件init_conf_dm7.txt
    java -Djava.ext.dirs=./:./lib -cp DMKafkaIniCreater.jar creater.IniCreater t2k-7

  3. 解密配置文件init_conf_dm7.txt
    java -Djava.ext.dirs=./:./lib -cp DMKafkaIniCreater.jar creater.IniCreater k2t-7

  4. 执行信息监控
    java -Djava.ext.dirs=./:./lib -cp DMKafkaInspector.jar com.dm7.kafka.Launcher --前台运行dbsms程序

nohup java -Xms256M -Xmx4096M -XX:PermSize=256M -XX:MaxPermSize=4096M -Djava.ext.dirs=./lib -cp DM7KafkaInspector.jar com.dm7.kafka.Launcher >/dev/null & --后台运行dbsms程序,启动限制了内存大小不超过4G

1.3.2 配置文件详解

1)监控目的数据库基本配置

image.pngSERVER_IP = 10.10.10.51
SERVER_IP尽量不要填写127.0.0.1,尽量填写数据库设备接入网安设备的实际地址。

2)目的kafka主题

image.pngKAFKA_TOPIC配置目的端kafka主题。
KAFKA_BROKER_LIST填写目的kafka地址的ip及端口。

3)运行信息配置及报文复现

报文0 1:监控CPU利用率
image.pngPERIOD_CPU = 1分钟,1代表每分钟上报一次CPU信息
THRESHOLD_CPU = 0%,CPT阈值,超过阈值并上报
ENABLE_CPU = 是
image.png

报文0 2:监控内存使用率
image.pngPERIOD_MEMORY = 1分钟
THRESHOLD_MEMORY = 10%
ENABLE_MEMORY = 是
image.png

报文0 3:监控数据文件使用率
image.pngPERIOD_DATA_FILE = 1分钟
THRESHOLD_DATA_FILE = 15G
THRESHOLD_DATA_FILE_RATIO = 5%
ENABLE_DATA_FILE = 是
image.png该报文表示该数据库数据文件路径/dbdata,全部空间为35G,使用10G,使用率为29%。

报文0 4:监控归档文件使用率
image.pngPERIOD_ARCHIVE_FILE = 1分钟
THRESHOLD_ARCHIVE_FILE = 15G
THRESHOLD_ARCHIVE_FILE_RATIO = 30%
ENABLE_ARCHIVE_FILE = 是
image.png需要配置归档生效

报文0 5:监控备份文件使用率
image.pngPERIOD_BACKUP_FILE = 1分钟
THRESHOLD_BACKUP_FILE = 15G
THRESHOLD_BACKUP_FILE_RATIO = 30%
LIST_BACKUP_PATH = /dbbak
ENABLE_BACKUP_FILE = 是
image.png

报文0 6:监控表空间使用率
image.pngPERIOD_TABLESPACE = 1分钟
THRESHOLD_TABLESPACE = 10G
ENABLE_TABLESPACE = 是
image.png
报文0 7:监控数据连接数
image.pngPERIOD_CONNECTION_STATUS = 1分钟.
NUMBER_CONNECTION_STATUS_LOGIN_NAME = 20
ENABLE_CONNECTION_STATUS = 是
image.png

报文0 8:监控数据库运行时长
image.pngPERIOD_DATABASE_RUNTIME = 1分钟
ENABLE_DATABASE_RUNTIME = 是
image.png

报文0 9:监控数据库状态
image.pngPERIOD_DATABASE_STATUS = 1分钟
ENABLE_DATABASE_STATUS = 是
image.png

报文0 10:监控数据库操作
image.pngENABLE_DATABASE_ACTION = 是
创建测试表
create table test(ID int);
image.png

报文0 11:监控数据库用户信息
image.pngENABLE_USER_PRIORITY_ACTION = 是
image.png
创建用户或其他用户行为可触发

4)安全日志及报文复现

报文 1 1:监控用户登录失败
image.pngTIMESPAN_USER_LOGIN = 1分钟
NUMBER_USER_LOGIN_FAILURE = 2
ENABLE_USER_LOGIN = 是
image.png使用./disql SYSDBA/SYSDBA1 错误密码反复3次,触发报文。

报文 1 2:监控长时间未提交的sql
image.pngTIMESPAN_SQL_SUBMIT = 1分钟ENABLE_SQL_SUBMIT = 是
image.png执行增删改sql语句,超过一分钟commit的语句,触发该报文。

报文 1 3:监控执行任务失败
image.pngENABLE_JOB_FAILURE = 是
image.png 设置定时备份任务,并关闭dmap服务,定时备份任务失败时触发该报文。

报文 1 4:监控sql执行时间异常
image.pngTIMESPAN_SQL_EXECUTION = 30秒
ENABLE_SQL_EXECUTION = 是
image.png 模拟阻塞事务,超过30s执行成功或失败,触发该报文。

报文 1 5:监控数据库脏页占比
image.pngPERIOD_DIRTY_PAGE = 1分钟
THRESHOLD_DIRTY_PAGE = 0%
ENABLE_DIRTY_PAGE = 是
image.png现场根据实际情况配置数据库表空间使用百分比。默认20%。

1.3.3 其他注意问题

1)DBSMS配置文件字符集

配置文件字符集默认为UTF-8,如配置文件中阈值单位存在中文乱码,会导致识别不到正确阈值单位,进而导致监控失败。

2)关键字LOGIN、LOGOUT

监视登录、登出的触发器MONITOR_LOGIN_TRIGGER、MONITOR_LOGOUT_TRIGGER
中LOGIN、LOGOUT为关键字。
若无法执行则使用LOGON和LOGOFF替代,效果一样。

3)执行限制内存

为防止DBSMS程序占用内存过高的,可在启动时加上内存限制参数,限制最大使用内存为4096M,即:
执行信息监控:
java -Djava.ext.dirs=./lib -cp DM7KafkaInspector.jar com.dm7.kafka.Launcher
改为:java -Xms256M -Xmx4096M -XX:PermSize=256M -XX:MaxPermSize=4096M -Djava.ext.dirs=./lib -cp DM7KafkaInspector.jar com.dm7.kafka.Launcher

4)影响范围

在进行部署数据库监控程序时,只需在数据库下创建一张表两个触发器,不用对数据库进行其他操作,不影响数据库的正常运行。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服