仪表板展示丨用DataEase开源数据可视化分析工具构建JumpServer仪表板

发布于 2021年08月17日

公司一直在使用飞致云的JumpServer堡垒机,用来加强运维安全管控以及进行定期的运维审计,JumpServer自带的仪表板可以定期查看平台已经有的资产数和近期的活跃用户、活跃资产等信息,能够满足公司的一部分需求。但公司需要更丰富的审计报表,并做一些审计数据的自定义展示。

我正好看到飞致云的另一款产品DataEase,这个产品可以做数据可视化分析展示,于是就基于这款产品做了JumpServer运维仪表板。本文描述了如何通过DataEase开源工具定制JumpServer仪表板,以满足公司对数据可视化的需求。

DataEase简介

DataEase是开源的数据可视化分析工具,帮助用户快速分析数据并洞察业务趋势,从而实现业务的改进与优化。DataEase支持丰富的数据源连接,能够通过拖拉拽的方式快速制作图表,并可以方便地分享给他人。产品详情可参考社区文档:

https://github.com/dataease/dataease/

JumpServer简介

JumpServer是全球首款开源的堡垒机,使用GNU GPLv2.0开源许可协议,是符合4A规范的运维安全审计系统。JumpServer使用Python开发,遵循Web2.0规范,配备了业界领先的Web Terminal方案,交互界面美观,用户体验佳。产品详情可参考社区文档:

https://github.com/jumpserver/jumpserver

用DataEase定制JumpServer仪表板

一、需求概述

本次仪表板主要对以下信息展开统计分析:

1. 统计最近一天/周用户登录平台TOP

2. 统计最近一天/周访问资产TOP

3. 统计高危命令使用情况

4. 统计各组织资产占比

5. 统计会话访问趋势

6. 统计资产总数、用户数、在线会话

基于以上需求场景,参考原有的标准仪表板,开始本次仪表板定制的操作。

二、数据准备

DataEase最新版本支持多种数据库作为数据源,JumpServer使用的是MySQL数据库,如下图所示输入相应信息,创建数据源。

三、数据集

在数据集设计模块,可以从数据源中选择上一步添加的数据库,选择数据库中对应的表作为一个数据集,设定同步模式。这里要了解每张表中所存的数据类型,以便于添加对应的数据。这里添加了如下图所示的数据集,为后续制作视图做准备。

具体使用的SQL语句如下:

■ 查看在线用户

SELECT * FROM terminal_session WHERE is_finished='0';

■ 最近一周所有用户登录情况

SELECT
username,
count( * ) AS 登录次数
FROM
audits_userloginlog
WHERE
TO_DAYS( now( ) ) - TO_DAYS( datetime ) <= 7
GROUP BY
username
ORDER BY
登录次数 DESC;

■ 最近一周资产访问情况

SELECT
asset,
COUNT( * ) AS 登录次数
FROM
terminal_session
WHERE
TO_DAYS( now( ) ) - TO_DAYS( date_end ) <= 7
GROUP BY
asset
ORDER BY
登录次数 DESC;

■ 最近一天所有用户登录情况

SELECT
username,
count( * ) AS 登录次数
FROM
audits_userloginlog
WHERE
TO_DAYS( now( ) ) - TO_DAYS( datetime ) <= 1
GROUP BY
username
ORDER BY
登录次数 DESC;

■ 最近一天资产访问情况

SELECT
asset,
COUNT( * ) AS 登录次数
FROM
terminal_session
WHERE
TO_DAYS( now( ) ) - TO_DAYS( date_end ) <= 1
GROUP BY
asset
ORDER BY
登录次数 DESC;

■ 查询所有组织资源数量

SELECT
t.NAME,
COUNT( * ) AS 服务器数量
FROM
assets_asset a,
orgs_organization t
WHERE
LEFT ( a.org_id, 8 ) = LEFT ( t.id, 8 )
GROUP BY
t.NAME
ORDER BY
服务器数量 DESC;

■ 查看高危命令

SELECT * FROM terminal_command WHERE risk_level!='0';

■ 查看用户、资产、会话记录对应的表

四、视图制作

准备好数据集后,来到视图设计模块,设计制作的视图在后面用来作为仪表板中的展示模块。可以通过不同的数据类型,以及不同的分析维度去选择使用相应的图表。所有的图表都可以通过简单的拖拉拽的方式生成,当前可用的图表类型有柱形图、折线图、环形图等,而且可以设置图表的颜色、大小、标签、图例、标题等属性。

点击创建视图,选择一个数据集,开始进行视图的制作。

进入视图编辑页面,分别选择数据集表中的各字段作为分析维度与指标,并结合不同的分析维度选择适合的图表。

■ 统计会话访问趋势

趋势图更适合使用折线图,本次操作的图表类型选择基础折线图,时间作为维度(横坐标),登录次数和活跃资产作为指标(纵坐标),效果如下:

■ 统计最近一周用户登录平台TOP

显示TOP更适合使用柱状图,本次操作的图表类型选择柱状图,用户名作为维度(横坐标),登录次数作为指标(纵坐标)。排序方式选择降序,同时添加一些过滤器,展示想展示的数据。效果如下:

■ 统计各组织资产占比

资源占比更适合使用饼图,本次操作的图表类型选择饼图,组织名作为维度(扇形标签),服务器数量作为指标(扇区角度),效果如下:

■ 统计高危命令使用情况

统计报表本次操作使用明细表,用户名、资产名、命令作为维度(数据列)。

■ 统计资产总数、用户数、在线会话数

数值类型本次操作使用指标卡,指标(值)为资产总数。

■ 样式选择

1. 所有视图样式优先级选择“视图”标签;

2. 所有视图背景颜色选择白色,透明度选择100;

3. 所有视图横轴、纵轴、标题字体大小、颜色一致;

4. 所有指标卡类型数值颜色为#2B937C。

五、仪表板制作

经过前面几个步骤,已经准备好了要展示的数据视图,最后一步是将这些数据视图搬到一张仪表板上进行展示。本次在仪表板上主要展示JumpServer平台资产数、用户数、组织的资产占比、资产会话统计趋势、近一周与近一天用户登录统计、近一周与近一天资产登录统计,以及运维中比较关注的高危命令统计。具体步骤如下:

■ 规划页面布局

根据自己的设计语言去设计布局即可。

■ 插入创建好的视图

■ 插入图片Icon,丰富页面展示效果

图片Icon选自https://www.iconfont.cn/

■ 选择背景颜色

调整HEX编码,选择和JumpServer同一色系作为背景。

六、最终效果