运维系统 v1.0
一、系统说明
需求分析
痛点
成本,设备量庞大造成管控难度大、运维复杂,简单计算可得一万台设备,每100台配置两人全职,每人月工资一万,每月就需要两百万
效率,实时监控,程序及时处理,提升不知多少倍
资源,设备资源太多,有内存、cpu、磁盘等等,监控全面
目的
控成本 提效率 保稳定 助增长
可行性分析
Java+HTML5技术,可适应所有的操作系统
概要介绍
核心功能
自动发现:设备启动后自动接入平台
全面化设备管理:管理设备及其配置参数,进行设备操作
可视化拓扑管理:图形化、具象化的拓扑形式对设备管理,降低维护难度
及时性故障管理:采用多种告警机制与自定义配置告警阈值,可迅速定位告警设备。全面采集警信息,并按多种维度以图表等形式展现。及时告警、自动处理,确保故障及时解决,极大提升告警处理效率,降低网络监控运维因故障带来的损失
多维度性能管理:全面采集设备资源、应用、服务等性能信息。将性能信息数据按照时间、资源、性能类型等多种维度以图表等形式展现。多维度,多形式展示设备性能信息,运维人员随时把握设备性能状态,智能化网络监控运维
网络括扑
GIS地图导航:拓扑背景根据地图实时变动,充分利用地图的便利性,设备等信息与地图信息相关联,能够在图上进行直观显示监控运维网络设备。
区位导航拓扑:支持自定义拓扑图背景,完全根据用户实际设备的位置进行摆放,实现智能化网络监控管理。
机房机柜拓扑:根据设备在机房和机柜的实际位置生成拓扑图,直观、明了的展现与真实服务器外观、服务状态、空闲位置等信息相符的网络拓扑图。
资源面板拓扑:在资源面板图像化展示设备资源,包括设备的物理组件或服务器上的服务和用户自定义的其他监控对象。
自定义大屏配置:通过自定义监控点的方式提供网络综合信息、设备的综合信息、性能和故障的实时监控和清单,资源的性能和告警监控和对网络流量告警和性能分析等功能。
拓扑大屏投放:支持大屏显示,支持二十四小时不间断监控网络设备的运行情况,在拓扑中动态显示设备和联系的信息,以最简明直观的形式展示。
运维巡检
用人工智能技术消除业务与IT系统的断层。自动化运维管理,自定义报表及定时发布,方便快捷的工单配置,高效的故障处理流程,智能知识库体系,运维IT绩效管理,完善的资产管理机制。
自定义巡检策略:对设备的运行情况进行统计和报表生成,并可自定义预设时间向指定邮箱发送巡检结果报表,实现对网络设备的定期检查,把握网络运行中的易出现问题的环节,做到预防为先。
自定义巡检报表:用户可自行选择要统计的设备、资源、故障类型、时间范围、报表排序规则、过滤规则等生成巡检报表。
在线故障巡检:对设备的在线状况、故障情况进行巡检,并根据故障等级数据生成巡检报表。
故障告警
故障告警统计分析:全面采集警信息,按多种维度以图表等形式展现告警信息。在故障统计中,用户可直观的的看到例如:高发故障类型、故障设备等情况,为用户网络完善更新提供依据。
流量监控告警:支持对流量和带宽进行实时监控,并可自定义触发告警的流量临界值,全网采集流量信息,并将流量可视化展现。
全方位告警通知:故障可以通过界面颜色、告警列表、短信、Email等方式发出通知,确保用户第一时间获取告警信息,解决告警问题。
实时微信告警:平台支持微信告警的功能,在监视器发出告警后,第一时间将告警通过微信通知的方式推送给用户核查,以便用户能够及时做出响应的处理和应对策略。
自定义解决方案:支持多种告警机制与自定义配置告警阀值。支持基于时间维度回放告警,可以选择告警播放频率,快进和拖拽前进等操作。平台内置配置故障对应的解决方案,提示故障原因给出故障处理建议。
流量性能分析:全方位采集流量信息,进行流量统计,总结流量使用的峰值、谷值、流量趋势、设备流量等数据,为企业网络管理提供有效的数据支撑。
业务监控
全面监控IT业务系统服务的响应性能,帮助用户准确感知整体业务的性能和质量状况。支持对关键业务设定性能指标告警阈值、预警风险异常,告警消息即时送达。
业务性能:智能获取业务设备中的各相关设备的运行性能信息,并通过echart图标,列表等形式将性能的统计信息展示给运维人员。
业务告警:对业务流程中出现故障时及时告警,当业务流程故障或者中断时能够及时通知运维人员,并精确定位具体故障位置,给出参考解决方案。
业务管理:通过该功能界面中直接新建业务、关联业务设备、配置业务流程,系统提供权限模块,让系统管理员可以配置不同的业务管理员可以管理的业务视图。
业务到期提醒:支持管理人员对业务预设到期时间,业务到期后网管产生到期提醒。
设备控制
通用万能配置下发功能,实现深入的管控网络设备。实现设备一键关机、资源获取、连通性检测等功能。
自定义控制类型:支持通过图形化的界面,为设备配置各种控制命令,用户可以通过下发配置命令的方式,实现对设备的如:关机、资源获取、连通性检测等控制。
预设控制模板:平台内置多种组合模板,用户可以根据对设备的控制需求的不同进行选择,也支持根据用户需求自主预设控制模板,实现对设备的一键控制。
设备控制日志管理:支持用户对设备进行控制操作的结果进行管理,可以自定义日志保存周期,支持对日志的导出和查看。
监控指标
支持主动从多个方面监控网络设备,能实时监控设备网口、电口、光接口的状态。包括端口可用性、端口性能数据、端口故障、链路问题都能通过网管软件实时掌控。支持直接在操作界面真实展现设备的机架图、面板图,并能方便的配置和自定义机架图和面板图。通过网管软件可以批量的升级和备份设备。
主机和服务器监控:可以自动发现发现网络下的主机/服务器,也支持手工添加和删除主机/服务器。软件能主动监控主机/服务器的在线状态,对主机/服务器资源如:CPU、磁盘、内存、网络接口、系统进程等进行性能采集。并可以设定监视器指标对资源进行实时监控。
应用服务监控:智和网管平台具有丰富的监控指标监控中间件应用、数据库服务,同样也支持自定义应用服务的监控指标。
中间件/数据库监控:通过JMX协议对中间件进行多种指标实时监控 ,并能扩展监视器策略进行更全面更深入的监测。软件支持JDBC/ODBC协议,从可用性、系统资源占用、数据库性能指标多个方面对数据库系统进行全面的实时监控。
虚拟化监控管理:能自动发现物理主机或虚拟化服务器的虚拟化系统,包括虚拟机服务器和虚拟机工作站,管理服务器和虚拟化之间的关系。并能监控虚拟机载体和其资源池的各种性能指标如CPU负载、内存使用率、系统进程、磁盘空间等性能。
智能网管
智能发现:设备自动发现、资源自动发现、链路自动发现
智能识别:识别设备类型、识别资源类型、识别监视类型
智能监控:策略化故障监控、自动化性能采集、学习式事件管理
智能管理:所见所得拓扑图、多维度洞察网络状况、大数据分析
管控万物
支持对支持设备类型的无限拓展增加。
网络设备监控:主动从多个方面监控网络设备,能实时监控设备网口、电口、光接口的状态。并能直接在操作界面方便的配置和操作机架图、面板图。
主机/服务器监控:对主机/服务器资源如:CPU、磁盘、内存、网络接口、系统进程等进行性能采集,并可以设定监视器指标对资源进行实时监控。
中间件/数据库监控:通过JMX协议对中间件进行多种指标实时监控,并能扩展监视器策略进行更全面更深入的监测。软件支持JDBC/ODBC协议,从可用性、系统资源占用、数据库性能指标,多个方面对数据库系统进行全面的实时监控。
虚拟机监控:自动发现网络中虚拟服务器,包括虚拟机服务器和虚拟机工作站,并能监控虚拟机载体和其资源池的各种性能指标。
二、系统设计
架构设计
系统由三个子项目组成,分别如下
后台:管理平台,主要功能有通知、动态配置、视图展示等
探针:全面探取系统信息,主要功能有数据采集、数据预处理等
插件:服务程序调用插件,主要功能有数据上报、数据持久化等
架构设计图
流程运行图
全局配置
消息级别
级别颜色命名行为影响范围
一般绿色info无无
警告黄色warn自动修复短暂影响
严重橙色serious常规单个设备
错误红色error紧急多个设备
灾难黑色fatal紧急多区设备
监控对象
模块监控点方式
业务程序错误、瑕疵数、主动推送
硬件CPU、物理/虚拟内存、磁盘、网络接口、进程、自定义监控点定点巡检
服务mysql、mq、redis、tomcat定点巡检
数据表结构
-- Table structure for table `acl_mould`
DROP TABLE IF EXISTS `acl_mould`;
CREATE TABLE `acl_mould` (
`acl_id` int(10) PRIMARY KEY AUTO_INCREMENT comment '主键自增',
`acl_match_order` varchar(100) NOT NULL DEFAULT '' comment '匹配顺序',
`acl_name` varchar(100) NOT NULL DEFAULT '' comment '名称',
`acl_desc` varchar(100) NOT NULL DEFAULT '' comment '描述',
`extend_field_a` varchar(500) NOT NULL DEFAULT '' comment '扩展字段a',
`extend_field_b` varchar(500) NOT NULL DEFAULT '' comment '扩展字段b',
`extend_field_c` varchar(500) NOT NULL DEFAULT '' comment '扩展字段c',
`extend_field_d` varchar(500) NOT NULL DEFAULT '' comment '扩展字段d'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='访问控制';
-- Table structure for table `acl_mould_rule`
DROP TABLE IF EXISTS `acl_mould_rule`;
CREATE TABLE `acl_mould_rule` (
`rule_id` int(10) PRIMARY KEY AUTO_INCREMENT comment '主键自增',
`rule_index` int(10) NOT NULL DEFAULT '0' comment '排序',
`operation` varchar(100) NOT NULL DEFAULT '' comment '操作',
`rule_desc` varchar(100) NOT NULL DEFAULT '' comment '描述',
`agreement_type` varchar(100) NOT NULL DEFAULT '' comment '协议类型',
`source_ip` varchar(100) NOT NULL DEFAULT '' comment '源ip',
`source_dis` varchar(100) NOT NULL DEFAULT '' comment '源地址',
`source_port` varchar(100) NOT NULL DEFAULT '' comment '源端口号',
`DestIp` varchar(100) NOT NULL DEFAULT '' comment '目的ip',
`DestDis` varchar(100) NOT NULL DEFAULT '' comment '目的地址',
`DestPort` varchar(100) NOT NULL DEFAULT '' comment '目的端口号',
`extend_field_a` varchar(500) NOT NULL DEFAULT '' comment '扩展字段a',
`extend_field_b` varchar(500) NOT NULL DEFAULT '' comment '扩展字段b',
`extend_field_c` varchar(500) NOT NULL DEFAULT '' comment '扩展字段c',
`extend_field_d` varchar(500) NOT NULL DEFAULT '' comment '扩展字段d'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='访问控制规则';
-- Table structure for table `alarm_filter_list`
DROP TABLE IF EXISTS `alarm_filter_list`;
CREATE TABLE `alarm_filter_list` (
`filter_id` int(10) PRIMARY KEY AUTO_INCREMENT comment '主键自增',
`filter_name` varchar(200) DEFAULT '' comment '名称',
`filter_type` varchar(200) DEFAULT '' comment '类型',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP comment '创建时间',
`creater` varchar(50) DEFAULT '' comment '创建者',
`detail_desc` varchar(500) DEFAULT '' comment '详细说明',
`filter_param` varchar(500) DEFAULT '' comment '参数',
`extend_field_string_a` varchar(500) NOT NULL DEFAULT '' comment '扩展字段a',
`extend_field_long_a` bigint(20) NOT NULL DEFAULT '0' comment '扩展字段a',
`extend_field_string_b` varchar(500) NOT NULL DEFAULT '' comment '扩展字段b',
`extend_field_long_b` bigint(20) NOT NULL DEFAULT '0' comment '扩展字段b',
`extend_field_string_c` varchar(500) NOT NULL DEFAULT '' comment '扩展字段c',
`extend_field_long_c` bigint(20) NOT NULL DEFAULT '0' comment '扩展字段c'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='报警过滤器列表';
-- Table structure for table `alarm_notice_user`
DROP TABLE IF EXISTS `alarm_notice_user`;
CREATE TABLE `alarm_notice_user` (
`notice_id` int(10) PRIMARY KEY AUTO_INCREMENT comment '主键自增',
`user_name` varchar(50) NOT NULL DEFAULT '' comment '用户名',
`email` varchar(50) NOT NULL DEFAULT '' comment '邮箱',
`severity` int(11) NOT NULL DEFAULT '0' comment '严重程度',
`receiveMessage` tinyint(1) NOT NULL DEFAULT '0' comment '接收消息',
`groupNetwork` varchar(50) NOT NULL DEFAULT '' comment '网络组',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP comment '创建时间',
`extend_field_string_a` varchar(500) NOT NULL DEFAULT '' comment '扩展字段a',
`extend_field_long_a` bigint(20) NOT NULL DEFAULT '0' comment '扩展字段a',
`extend_field_string_b` varchar(500) NOT NULL DEFAULT '' comment '扩展字段b',
`extend_field_long_b` bigint(20) NOT NULL DEFAULT '0' comment '扩展字段b',
`extend_field_string_c` varchar(500) NOT NULL DEFAULT '' comment '扩展字段c',
`extend_field_long_c` bigint(20) NOT NULL DEFAULT '0' comment '扩展字段c'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='报警通知用户';
-- Table structure for table `alarmpicture`
DROP TABLE IF EXISTS `alarm_picture`;
CREATE TABLE `alarmpicture` (
`alarm_id` int(10) PRIMARY KEY AUTO_INCREMENT comment '主键自增',
`picture_url` blob NOT NULL COMMENT '图片url'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='报警照片';
-- Table structure for table `alarm_type`
DROP TABLE IF EXISTS `alarm_type`;
CREATE TABLE `alarm_type` (
`type_id` int(10) PRIMARY KEY AUTO_INCREMENT comment '主键自增',
`alarm_type` varchar(100) NOT NULL DEFAULT '' comment '类型',
`alarm_desc` varchar(500) NOT NULL DEFAULT '' comment '描述',
`solution` varchar(500) NOT NULL DEFAULT '' comment '解决方案',
`color_flashing_value` int(11) NOT NULL DEFAULT '0' comment '颜色闪烁值',
`perceived_severity` int(11) NOT NULL DEFAULT '0' comment '感知的严重性',
`resoure_type_name` varchar(100) NOT NULL DEFAULT '' comment '资源类型名称',
`category` varchar(100) NOT NULL DEFAULT '' comment '类别',
`unit` varchar(100) NOT NULL DEFAULT '' comment '单元',
`extend_field_string_a` varchar(500) NOT NULL DEFAULT '' comment '扩展字段a',
`extend_field_long_a` bigint(20) NOT NULL DEFAULT '0' comment '扩展字段a',
`extend_field_string_b` varchar(500) NOT NULL DEFAULT '' comment '扩展字段b',
`extend_field_long_b` bigint(20) NOT NULL DEFAULT '0' comment '扩展字段b',
`extend_field_string_c` varchar(500) NOT NULL DEFAULT '' comment '扩展字段c',
`extend_field_long_c` bigint(20) NOT NULL DEFAULT '0' comment '扩展字段c',
`operator_name` varchar(50) NOT NULL DEFAULT '' comment '操作员姓名',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP comment '创建时间',
`operate_type` int(11) NOT NULL DEFAULT '1' COMMENT '对策略表的操作类型:分为增加 、修改、删除3类',
`parent_id` int(11) NOT NULL DEFAULT '0' comment '父id',
`status` int(11) NOT NULL DEFAULT '0' COMMENT '审核状态:0-未审核,1审核通过,2-作废',
`check_operator_name` varchar(50) NOT NULL DEFAULT '' COMMENT '检查操作员姓名',
`pass_time` timestamp NOT NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '审核通过时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='报警类型';
-- Table structure for table `asset`
DROP TABLE IF EXISTS `asset`;
CREATE TABLE `asset` (
`asset_id` int(10) PRIMARY KEY AUTO_INCREMENT comment '主键自增',
`node_name` varchar(50) NOT NULL DEFAULT '' comment '节点名称',
`asset_name` varchar(100) NOT NULL DEFAULT '' comment '资产名称',
`asset_model` varchar(100) NOT NULL DEFAULT '' comment '资产模块',
`asset_type` varchar(50) NOT NULL DEFAULT '' comment '资产类型',
`asset_config` varchar(500) NOT NULL DEFAULT '' comment '资产配置',
`asset_status` int(11) NOT NULL DEFAULT '0' comment '资产状态',
`asset_charger` varchar(50) NOT NULL DEFAULT '' comment '资产充值',
`asset_user` varchar(50) NOT NULL DEFAULT '' comment '资产用户',
`asset_location` varchar(200) NOT NULL DEFAULT '' comment '资产位置',
`producer` varchar(200) NOT NULL DEFAULT '' comment '生产商',
`produce_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP comment '生产日期',
`buy_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP comment '购买日期',
`receive_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP comment '接收日期',
`handle_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP comment '处理日期',
`price` double(10,2) NOT NULL DEFAULT '0.00' comment '价格',
`remark` varchar(200) NOT NULL DEFAULT '' comment '备注',
`extend_field_string_a` varchar(500) NOT NULL DEFAULT '' comment '扩展字段a',
`extend_field_long_a` bigint(20) NOT NULL DEFAULT '0' comment '扩展字段a',
`extend_field_string_b` varchar(500) NOT NULL DEFAULT '' comment '扩展字段b',
`extend_field_long_b` bigint(20) NOT NULL DEFAULT '0' comment '扩展字段b',
`extend_field_string_c` varchar(500) NOT NULL DEFAULT '' comment '扩展字段c',
`extend_field_long_c` bigint(20) NOT NULL DEFAULT '0' comment '扩展字段c',
`dept_id` int(10) NOT NULL DEFAULT '0' comment '部门id'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='资产';
-- Table structure for table `busi_ness`
DROP TABLE IF EXISTS `business`;
CREATE TABLE `business` (
`business_id` int(10) PRIMARY KEY AUTO_INCREMENT comment '主键自增',
`business_name` varchar(50) NOT NULL DEFAULT '' comment '名称',
`business_type` varchar(50) NOT NULL DEFAULT '' comment '类型',
`business_level` varchar(50) NOT NULL DEFAULT '' comment '等级',
`business_param` varchar(50) NOT NULL DEFAULT '' comment '参数',
`business_desc` varchar(500) NOT NULL DEFAULT '' comment '描述',
`business_remarks` varchar(500) NOT NULL DEFAULT '' comment '备注',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP comment '创建时间',
`creater` varchar(50) NOT NULL DEFAULT '' comment '创建者',
`customer` varchar(50) NOT NULL DEFAULT '' comment '消费者',
`direction` int(11) NOT NULL DEFAULT '0' comment '方向',
`status` int(11) NOT NULL DEFAULT '0' comment '状态',
`pose_x` int(11) NOT NULL DEFAULT '0' comment '坐标x',
`pose_y` int(11) NOT NULL DEFAULT '0' comment '坐标y',
`extend_field_string_a` varchar(500) NOT NULL DEFAULT '' comment '扩展字段a',
`extend_field_long_a` bigint(20) NOT NULL DEFAULT '0' comment '扩展字段a',
`extend_field_string_b` varchar(500) NOT NULL DEFAULT '' comment '扩展字段b',
`extend_field_long_b` bigint(20) NOT NULL DEFAULT '0' comment '扩展字段b',
`extend_field_string_c` varchar(500) NOT NULL DEFAULT '' comment '扩展字段c',
`extend_field_long_c` bigint(20) NOT NULL DEFAULT '0' comment '扩展字段c'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='业务';
-- Table structure for table `business_device`
DROP TABLE IF EXISTS `business_device`;
CREATE TABLE `business_device` (
`device_id` int(10) PRIMARY KEY AUTO_INCREMENT comment '主键自增',
`business_id` varchar(50) NOT NULL DEFAULT '' comment '业务id',
`node_name` varchar(200) NOT NULL DEFAULT '' comment '节点名称',
`display_name` varchar(50) NOT NULL DEFAULT '' comment '显示名称',
`ip_address` varchar(200) NOT NULL DEFAULT '' comment 'ip地址',
`node_type` varchar(200) NOT NULL DEFAULT '' comment '节点类型',
`group_name` varchar(200) NOT NULL DEFAULT '' comment '组名称',
`pose_x` int(11) NOT NULL DEFAULT '0' comment '坐标x',
`pose_y` int(11) NOT NULL DEFAULT '0' comment '坐标y',
`param` varchar(200) NOT NULL DEFAULT '' comment '参数',
`business_desc` varchar(500) NOT NULL DEFAULT '' comment '业务描述',
`extend_field_string_a` varchar(500) NOT NULL DEFAULT '' comment '扩展字段a',
`extend_field_long_a` bigint(20) NOT NULL DEFAULT '0' comment '扩展字段a',
`extend_field_string_b` varchar(500) NOT NULL DEFAULT '' comment '扩展字段b',
`extend_field_long_b` bigint(20) NOT NULL DEFAULT '0' comment '扩展字段b',
`extend_field_string_c` varchar(500) NOT NULL DEFAULT '' comment '扩展字段c',
`extend_field_long_c` bigint(20) NOT NULL DEFAULT '0' comment '扩展字段c'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='业务设备';
-- Table structure for table `channel`
DROP TABLE IF EXISTS `channel`;
CREATE TABLE `channel` (
`channel_id` int(10) PRIMARY KEY AUTO_INCREMENT comment '主键自增',
`channel_name` varchar(200) NOT NULL DEFAULT '',
`from_business_device` varchar(50) NOT NULL DEFAULT '',
`from_node` varchar(50) NOT NULL DEFAULT '',
`from_node_resource_key` varchar(200) NOT NULL DEFAULT '',
`from_resource_name` varchar(200) NOT NULL DEFAULT '',
`from_param` varchar(200) NOT NULL DEFAULT '',
`to_business_device` varchar(50) NOT NULL DEFAULT '',
`to_node` varchar(50) NOT NULL DEFAULT '',
`to_node_resource_key` varchar(200) NOT NULL DEFAULT '',
`to_resource_name` varchar(200) NOT NULL DEFAULT '',
`to_param` varchar(200) NOT NULL DEFAULT '',
`line_type` int(11) NOT NULL DEFAULT '0',
`channel_type` varchar(200) NOT NULL DEFAULT '',
`channel_param` varchar(200) NOT NULL DEFAULT '',
`channel_desc` varchar(500) NOT NULL DEFAULT '',
`business_desc` varchar(500) NOT NULL DEFAULT '' comment '业务描述',
`extend_field_string_a` varchar(500) NOT NULL DEFAULT '' comment '扩展字段a',
`extend_field_long_a` bigint(20) NOT NULL DEFAULT '0' comment '扩展字段a',
`extend_field_string_b` varchar(500) NOT NULL DEFAULT '' comment '扩展字段b',
`extend_field_long_b` bigint(20) NOT NULL DEFAULT '0' comment '扩展字段b',
`extend_field_string_c` varchar(500) NOT NULL DEFAULT '' comment '扩展字段c',
`extend_field_long_c` bigint(20) NOT NULL DEFAULT '0' comment '扩展字段c'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='通道';
-- Table structure for table `command_execution_log`
DROP TABLE IF EXISTS `command_execution_log`;
CREATE TABLE `command_execution_log` (
`command_id` int(10) PRIMARY KEY AUTO_INCREMENT comment '主键自增',
`command` varchar(1000) NOT NULL DEFAULT '' COMMENT '实际下发的命令字符串',
`username` varchar(100) DEFAULT '' COMMENT '命令下发操作用户',
`node_name` varchar(50) DEFAULT '' COMMENT '设备名称',
`node_resource_key` varchar(200) DEFAULT '' COMMENT '资源ID',
`resource_name` varchar(200) DEFAULT '' COMMENT '资源名称',
`protocol_type` varchar(200) DEFAULT '' COMMENT '协议类型',
`operation_type` int(2) DEFAULT '1' COMMENT '操作类型',
`operation_id` varchar(50) DEFAULT '' COMMENT '下发批次ID',
`execution_result_status` int(2) DEFAULT '1' COMMENT '命令结果转义状态',
`execution_result` text COMMENT '执行结果',
`execution_time` datetime DEFAULT NULL COMMENT '执行时间',
`sequence` int(2) DEFAULT '1' COMMENT '执行顺序',
`param` varchar(200) DEFAULT '' COMMENT '执行参数',
`extend_field_string_a` varchar(500) NOT NULL DEFAULT '' comment '扩展字段a',
`extend_field_long_a` bigint(20) NOT NULL DEFAULT '0' comment '扩展字段a',
`extend_field_string_b` varchar(500) NOT NULL DEFAULT '' comment '扩展字段b',
`extend_field_long_b` bigint(20) NOT NULL DEFAULT '0' comment '扩展字段b',
`extend_field_string_c` varchar(500) NOT NULL DEFAULT '' comment '扩展字段c',
`extend_field_long_c` bigint(20) NOT NULL DEFAULT '0' comment '扩展字段c'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='命令执行日志';
-- Table structure for table `commandpreinstall`
DROP TABLE IF EXISTS `command_preinstall`;
CREATE TABLE `command_preinstall` (
`preinstall_id` int(10) PRIMARY KEY AUTO_INCREMENT comment '主键自增',
`single_param_name` varchar(100) DEFAULT NULL COMMENT '单参数名称',
`is_required` tinyint(1) DEFAULT NULL COMMENT '是否需要',
`single_param_value` varchar(200) DEFAULT NULL COMMENT '单参数值',
`is_check_box` varchar(10) DEFAULT '0' COMMENT '是否复选框',
`split_type` varchar(100) DEFAULT NULL COMMENT '分隔类型',
`command_explain` varchar(255) DEFAULT NULL COMMENT '命令解释'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='命令预安装';
-- Table structure for table `command_template`
DROP TABLE IF EXISTS `command_template`;
CREATE TABLE `command_template` (
`template_id` int(10) PRIMARY KEY AUTO_INCREMENT comment '主键自增',
`command_template` varchar(1000) NOT NULL DEFAULT '' COMMENT '命令模板',
`command_template_name` varchar(200) DEFAULT '' COMMENT '命令模板名称',
`description` varchar(500) DEFAULT '' COMMENT '描述',
`protocol_type` varchar(200) DEFAULT '' COMMENT '协议类型',
`param` varchar(200) DEFAULT '' COMMENT '参数',
`logical_command` varchar(100) DEFAULT '' COMMENT '逻辑命令',
`group_label` varchar(100) DEFAULT '' COMMENT '分组标签',
`is_enable` int(1) DEFAULT '1' COMMENT '是否启用 1--启用 0--禁用',
`operation_type` int(1) DEFAULT '1' COMMENT '操作类型 1--读 0 --写',
`command_error_prompt` varchar(200) DEFAULT '' COMMENT '命令错误标识',
`result_abnormal_prompt` varchar(200) DEFAULT '' COMMENT '命令结果异常标识',
`result_escapting` varchar(500) DEFAULT '' COMMENT '结果转义',
`decorator_name` varchar(50) NOT NULL DEFAULT '',
`format_param` text NOT NULL COMMENT '格式参数',
`extend_field_string_a` varchar(500) NOT NULL DEFAULT '' comment '扩展字段a',
`extend_field_long_a` bigint(20) NOT NULL DEFAULT '0' comment '扩展字段a',
`extend_field_string_b` varchar(500) NOT NULL DEFAULT '' comment '扩展字段b',
`extend_field_long_b` bigint(20) NOT NULL DEFAULT '0' comment '扩展字段b',
`extend_field_string_c` varchar(500) NOT NULL DEFAULT '' comment '扩展字段c',
`extend_field_long_c` bigint(20) NOT NULL DEFAULT '0' comment '扩展字段c'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='命令模板';
-- 未完待续
xcop-backstage
├── common -- 公共模块
| | ├── aop -- 定义接口
| | ├── config -- 配置
| | ├── constant -- 常量
| | ├── dynamicquery -- 动态查询
| | ├── excel -- 表格
| | ├── exception -- 异常
| | ├── model -- 响应结构
| | ├── redis -- 缓存
| | ├── shiro -- 认证
| | ├── util -- 工具
├── module -- 自定义模块
| | ├── probe -- 探针
| | | ├── entity -- 实体
| | | ├── model -- 视图
| | | ├── repository -- 映射
| | | ├── service -- 接口
| | | ├── web -- 控制
| | ├── sys -- 系统
├── resources -- 资源
| | ├── sql -- 探针
| | ├── static -- 静态
| | ├── templates -- 模板
├── test -- 测试包
xcop-probe
├── log -- 日志文件
├── config -- 配置文件
├── lib -- sigar.jar 依赖动态链接库
├── cn.hutool -- java工具包
| | ├── core -- 工具核心
| | ├── cron -- 定时任务
| | ├── http -- http工具
| | ├── json -- json工具
| | ├── setting -- 配置文件
├── com.probe
| | ├── common -- 公共
| | ├── configure -- 配置
| | ├── db -- 数据库
| | ├── dto -- 实体类
| | ├── enums -- 枚举
| | ├── execute -- 执行
| | ├── log -- 日志
| | ├── server -- 服务
| | ├── task -- 定时任务
| | ├── utils -- 工具
├── test -- 测试包
五、部署与使用
四、系统测试
接口文档
插件
探针
后台
目录结构
工具版本号下载
JDK1.8https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Mysql5.7https://www.mysql.com/
Redis5.0https://redis.io/download
RabbitMq3.7.14http://www.rabbitmq.com/download.html
开发环境
工具说明官网
IDEA开发IDEhttps://www.jetbrains.com/idea/download
RedisDesktopredis客户端连接工具https://github.com/qishibo/AnotherRedisDesktopManager
X-shellLinux远程连接工具http://www.netsarang.com/download/software.html
Navicat数据库连接工具http://www.formysql.com/xiazai.html
PostmanAPI接口调试工具https://www.postman.com/
TyporaMarkdown编辑器https://typora.io/
开发工具
技术说明官网
ok-admin前端框架https://vuejs.org/
vue前端框架https://vuejs.org/
iView前端框架
echarts前端框架
clipboard前端框架
cropperjs前端框架
lightbox前端框架
nprogress前端框架
webuploader前端框架
ztree前端框架
前端技术
技术说明官网
Spring Boot容器+MVC框架https://spring.io/projects/spring-boot
MyBatisORM框架http://www.mybatis.org/mybatis-3/zh/index.html
Shiro认证和授权框架https://spring.io/projects/spring-security-oauth
Generator实体类代码生成http://www.mybatis.org/generator/index.html
PageHelper物理分页插件http://git.oschina.net/free/Mybatis_PageHelper
swagger-ui文档生产工具
Redis分布式缓存https://redis.io/
RabbitMq消息队列https://www.rabbitmq.com/
MinIO对象存储https://github.com/minio/minio
Jenkins自动化部署工具https://github.com/jenkinsci/jenkins
后端技术
技术选型
仓库地址项目名
信畅运维https://gitee.com/organizations/xc_op/projectsxcop
后台https://gitee.com/xc_op/xcop-backstage.gitxcop-backstage
探针https://gitee.com/xc_op/xcop-probe.gitxcop-probe
插件https://gitee.com/xc_op/xcop-plugin.gitxcop-plugin
代码仓库地址
环境搭建
三、系统开发
设备程序唯一编码:mac地址 + 设备编码 + 程序版本
系统唯一编码(32位):8位程序编码+4位地区编码+2位系统类型编码+2位程序类型编码+8位日期编码+8位随机唯一编码
插件程序中消息级别由业务服务本身决定。插件只接受警告级别以上的信息处理。
探针程序运行所在设备没有外网,所以后台主动和设备发送消息无法实现,改变方式,由后台需要发送的消息先缓存,等设备请求时再发送消息。
约定及说明