数据库(数据源)监控使用说明

数据可视化监测是WGCLOUD的一个重要模块,可以帮我们监控数据源是否在线,自定义sql查询数据进行可视化展示,比如新增订单、注册用户量、数据库运行参数等信息
数据监控是由server来监测的,因此要保证server主机能够访问到数据库
如果server无法访问被监控的数据源,怎么监控
本文用WGCLOUD v3.3.5版本说明
1、首先我们要配置数据源,记得要保证server主机能访问到数据源
数据源支持(mysql,oracle,redis,mongodb,postgreSql,mariaDB,sql server)类型数据源,其他类型数据库监控使用 server-backup监控
在左侧菜单点击【数据监控】->【数据源管理】
然后点击【添加】按钮,输入数据库的连接信息,就是JDBC连接方式,输入完成后,可以点击【连接测试】测试下是否能正常连接
驱动名称可以不用管哈,默认是自动填充的,比如下方选择mysql,不管是mysql5或者mysql8,下面驱动都是支持的,不用担心
数据源后续若检测到连接失败,会发送告警通知,恢复时候也会发送恢复通知
2、添加数据表监控
点击左侧菜单【数据监控】->【数据表监控】
然后点击【添加】按钮,输入信息,先选择数据源,数据表名称可以用中文
注意统计SQL语句,不能包含敏感sql字符,如delete等,否则保存不了,会提示失败的
提示:可以在server配置文件里配置SQL不能输入的敏感字符,如下,若修改需要重启server生效

#数据监控的sql语句,不能编写出现的敏感字符(即sql可能注入的关键字),小写即可,多个用逗号隔开
sqlInKeys: 'execute ,update ,delete ,insert ,create ,drop ,alter ,rename ,modify '
	  
sql执行结果的取值列名,就是我们的sql执行完的结果中,我们要获取的数据库列名(只能取一列),列值需要是整型或浮点型数字类型,系统会默认取结果中的第一行的其中一列。如果结果是浮点型,系统会自动截取只保留整数部分数字,舍弃小数点后的部分
如下图所示,是统计活跃用户数量(这是例子)
我们先看对应sql在工具中的执行结果,注意看返回结果,标红的数据库列名COUNT(*)
结果列名是COUNT(*),我们就在表单【sql执行结果的取值列名】输入COUNT(*),系统会根据输入的COUNT(*)获取数据
如果查询结果只有一列,那【sql执行结果的取值列名】可以为空,不用填写
注意:统计sql语句,不一定非得是COUNT(*)语句,也可以是SUM、AVG等,只要是返回结果是整数就可以,比如下面这两条也可以的:

SELECT SUM(a.age)  FROM USER a
SELECT a.age FROM USER a WHERE a.name='zhangsansan'
	  
我们再看一个例子,下面这个sql是查询mysql当前连接数量

show STATUS like '%Threads_connected%'
	  
先看对应sql执行结果,注意看返回结果,标红的数据库列名Value是我们要用的
结果列名是Value,我们就在表单【sql执行结果的取值列名】输入Value,系统会根据输入的Value获取数据
3、添加完成,系统默认1小时扫描一次,此后会逐渐形成趋势图表
扫描时间可以在server/config/applicatioin.yml中修改,修改后需要重启server生效,如下

#数据表监控间隔,单位秒,默认60分钟
dbTableTimes: 3600
	  
数据趋势图表,在【数据表管理】列表的【图表】按钮,点击可以查看,如下图,也可以导出Excel文件,非常方便
最后,在数据监测过程中,若数据源不可用,系统会发送告警通知,若数据源恢复可用,系统也会发送恢复通知
4、告警表达式,这个不是必填的
如下图中,添加数据表监控时候,最后一项是告警表达式,意思是根据sql查询的结果值进行计算,看表达式是否成立,若成立就发给告警,不成立就不发告警
其中result是标识上面sql执行结果的值,为固定标识,不要修改它,系统会自动将其替换为sql执行结果的值
比如sql为:SELECT COUNT(*) FROM CPU_STATE
COUNT(*)结果值为514
那么如下图中的告警表达式(result + 10)>=100,result会替换为514,也就是表达式最终替换为:(514 + 10)>=100
那么告警表达式(514 + 10)>=100已经成立,就会发送告警
数据源、数据监控视频讲解
也可以用server-backup监控数据库、数据表