利用鸿鹄快速构建公司IT设备管理方案

news2024/11/17 15:32:42

需求描述

相信应该有一部分朋友跟我们一样,公司内部有很多各种各样的系统,比如资产管理、CRM、issue管理等等。这篇文章介绍下,鸿鹄是如何让我们的资产系统,按照我们的需求展示数据的。

我们的资产管理系统,是使用开源的Snipe-IT。Snipe-IT 凭借着易安装部署和内容丰富,赢得了不少的用户。炎凰是使用 docker 来进行部署的,只要部署两个容器即可。MySQL 和 Snipe-IT,所以理所当然Snipe-IT 的数据是存储在MySQL中的。

从功能上来说,仅仅就记录资产而言,Snipe-IT 完全能够满足我们目前的需求。但是随着时间的推移,电脑在快到达报废期限前,我希望能够收到提醒,并且可以提前统计出来,这样以便为下一次的预算做准备。Snipe-IT却没有这样的功能,但是我们可以依托鸿鹄的数据分析和展示能力,来实现我们的需求。

需求的实现

我们常常会有这样的感觉,数据和想法我都有,但是没有一个工具,能让我灵活的分析和展示我的数据。不过在了解鸿鹄之后,这样的问题就能够迎刃而解。

对于资产的支出,目前一大部分都是消费在电脑的采购上,如果有明年将会采购电脑的统计,那么明年的预算就简单了很多。而对于电脑的采购,也分为,电脑的换新和新购。

电脑换新:电脑年限一般在4年。到达4年后,同事们可以申请新的电脑,公司会为其采购。(为了本篇文章我暂时设置电脑换新年限为3年,因为我们公司刚成立2年多,如果设置4年的话,就没有数据样本)

电脑新购:为新进同事购买新的电脑。假设我们明年计划招聘15位新同事,而且根据不同部门分配不同配置的电脑,就能估算出新电脑的购置费用。

通过一天多的努力,就基本实现了我的需求。仪表盘等展示如下(由于数据敏感,为了展示。以下是我们根据真实场景,对数据进行了脱敏处理,以下数字并非真实业务数据):

图片

图1 资产预算仪表板

图片

图2 解释电脑总支出费用

‘2023年预计电脑费用总支出(元)’是由‘电脑换新费用(元)’与‘新购电脑费用(元)’之和。

换新电脑的数据从何而来?我们是通过JDBC去查snipe-it的MySQL表中数据,然后发送给鸿鹄,下一章节会详细介绍。

图片

图3 明年换新的季度费用统计

另外通过统计,我们也知道下一个/几个季度我们换新电脑的费用情况(因为公司是2020年8月份成立的,所以我们在统计2023年数据时,就只能看到从第三季开始的数据)。而且从详细的列表中,我们也清楚哪些同事可以在什么时间申请换新电脑,并且根据现在的行情估算出费用。

图片

图4 明年换新的详细表

关于统计和计算,其实只需要例如这样的一条SQL就可以了(统计换新的总费用的SQL)。 

图片

仪表板有了,只要定期去查看,就能详细了解到明年采购电脑的费用情况。但是,资产报表并不是经常更新,所以我们的注意力不会经常放在上面,但是只要定期(我目前设置的是每个季度的第一天)让我看到一个一直更新的报表即可。于是设置了仪表板的“设定计划”,在每季度的第一天,就收到以PDF为格式仪表板的邮件,同时也提醒我,是时间该考虑预算问题了,简化工作流。

图片

图5 仪表板邮件

图片

图6 PDF中显示仪表板

方案实现步骤

Snipe-IT的配置

因为Snipe-IT的部署非常简单,我就简单点,把配置文件粘上来。Snipe-IT的部署,仅需MySQL与Snipe-IT 两个container。供参考:

mysql.yaml (折叠框)

图片

snipe-it.yaml (折叠框)

图片

部署好主界面如下:

图片

图7 Snipe-it 界面

鸿鹄通过JDBC来访问

从上面的配置文件的代码就可以看出,Snipe-IT与MySQL之间是通过3306端口进行交互的,那我们就可以使用鸿鹄通过JDBC,来访问MySQL的数据。

鸿鹄的安装可以参考: https://yanhuang.yuque.com/books/share/b1b27937-e331-40fd-bce1-bd521af4e662/vvv9si

下面我们来执行一个简单的查询,来测试下JDBC,查看是否可以拿取MySQL中的数据

图片

图8 测试JDBC

测试成功,不过我们需要的是一个持续可更新的数据集,这样以便我们做仪表板,和监控数据。

针对MySQL中的数据导入到鸿鹄,我使用的是预存查询的方法进行导入。如果希望更加快捷地,把关系型数据库的数据进行导入。可以联系我们的销售同事,获取炎凰数据平台商业版,商业版已经完美的支持了通过JDBC对MySQL的数据进行导入。

首先创建数据集,以 assets 为例:

图片

图9 创建数据集

我这里会创建两个预存查询,第一个是删除掉数据集中的数据,第二个是从JDBC中拿取数据后 Insert 到数据集中,具体流程是每天的 0:01、6:01、12:01、18:01 清除数据集,然后在 0:02、6:02、12:02、18:02 时查询数据库然后把结果 insert 到数据集中,实现定时更新的目的。

1、创建清除数据的预存查询

图片

图10 新建清除数据集的预存查询

2、创建insert JDBC数据的预存查询,将处理过后的数据,插入到assets数据集中。

图片

图11 新建更新数据集的预存查询

执行过以上的预存查询之后,我们的assets数据集就有了数据。 有了数据我们就可以制作仪表板了

制作仪表板

创建仪表板一个关于“资产预算”的仪表板

图片

图12 新建仪表板

然后只需要向仪表板中添加各个图表

图片

图13 新建仪表板中的图标

最后的效果参见:图1 资产预算仪表板

邮件提醒

在编辑好的仪表板中,点击“设定计划”,开始编辑设定计划,动作选择邮件,然后输入你的邮件即可。(当然先要设置好,系统设置中的“电子邮件设置”,具体位置见文献参考)

图片

图14 仪表板中的设定计划

图片

图15 编辑设定计划

这样就可以按照你设定的日期,收到的报表邮件了。

鸿鹄价值

就像我之前所说的,数据和想法我都有,但是缺少一个能够帮我实现数据分析和展示的简单工具,那么鸿鹄就能够帮到你,只要几条简单的SQL语句,就能够把数据按照你的想法展示出来。然后再按照实际的需求来制作仪表板。展示给自己和老板。再加上定时的计划,提醒我们该做预算了,而且给后面计算预算,起到数据支撑的作用。

后续工作

这次的经历,对于我也是一次探索,之前我也不知道MySQL的数据,原来可以如此简单的接入到鸿鹄中。未来,我们会将其他系统中的数据,也都会接入到鸿鹄中,集中化管理和分析。很多系统的数据放在一起,说不定还会起到一些化学变化。

文献参考

Snipe-it : https://snipeitapp.com/

鸿鹄中电子邮件设置:

 http://:18080/center/docs/preference/system/smtp/

鸿鹄中JDBC文档:

http://:18080/center/docs/integration/jdbc/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/831671.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JVM问题

1. jvm运行时区域划分及每个区域的作用 堆、方法区(元空间)、虚拟机栈、本地方法栈、程序计数器 2. 堆内存分配策略:新生代,老年代,gc时机 • 对象优先分配在Eden区,如果Eden区没有足够的空间进行分配时&am…

消息疯狂堆积!RocketMQ出Bug了?

前言 用过 MQ 的同学,可能会遇到过消息堆积的问题。而肥壕最近也踩上了这个坑,但是发现结果竟然是这么一个意料之外的原因而导致的。 正文 那一晚月黑风高,肥壕正准备踏上回家的路,突然收到告警短信轰炸!“MQ 消息堆…

Redis的基础

一、进入redis 内部 / 关闭 # 方式一: // 进入redis redis-cli // 有密码输入密码 :auth [username] password auth 123456 # 方式二: // 进入redis 并且输入密码 redis-cli -a 123456// 如果在docker 里面的则可以 docker exec -it redis…

【腾讯云 Cloud Studio 实战训练营】云上编程永不宕机,彻底释放电脑物理内存

文章目录 前言一、快速上手1、账号注册2、新建工作空间3、配置工作空间参数4、工作空间展示5、运行飞机大战代码6、运行五子棋代码7、运行贪吃蛇代码 二、空间模板三、应用推荐1、点击 Fork2、等待工作空间启动3、安装 Dependencies4、运行 App 四、注意事项1、openai api key …

【云原生】深入掌握k8s中Pod和生命周期

个人主页:征服bug-CSDN博客 kubernetes专栏:kubernetes_征服bug的博客-CSDN博客 目录 1 什么是 Pod 2 Pod 基本操作 3 Pod 运行多个容器 4 Pod 的 Labels(标签) 5 Pod 的生命周期 1 什么是 Pod 摘取官网: Pod | Kubernetes 1.1 简介 Pod 是可以在 …

基于dockerfile构建sshd、httpd、nginx、tomcat、mysql、lnmp、redis镜像

一、镜像概述 Docker 镜像是Docker容器技术中的核心,也是应用打包构建发布的标准格式。一个完整的镜像可以支撑多个容器的运行,在Docker的整个使用过程中,进入一个已经定型的容器之后,就可以在容器中进行操作,最常见的…

Android四大组件之服务

为什么要使用服务呢? 从上面的文字说,我们知道这个服务是用于执行长期后台运行的操作。有些时候,我们没有界面,但是程序仍然需要工作。比如说,我们播放音乐,在后台播放音乐。比如说,我们下载任…

SLAM精度测评——EVO进阶再进阶

分别观察单个坐标轴差异 1.1 观察x轴差异 evo_ape tum truth.txt pose.txt -r trans_part -va --plot --plot_mode xz

鲁大师7月新机性能/流畅/久用榜:骁龙8 Gen2领先版亮相,性能跑分再破新高

摘要:iQOO 11S突破上限,红魔8S Pro再创新高 继五月六月,搭载天玑9200的机型相继迎来上市之后,高通也终于按耐不住。 本月所有上市的新机均搭载高通骁龙系列芯片,其中骁龙8 Gen2领先版迎来首次亮相,除了主打…

落地数字化管理,提升企业市场竞争力

数字化企业管理方案是一种利用数字技术和信息系统来提升企业管理效率和运营效果的策略。 潜在的数字化企业管理方案 1、企业资源规划(ERP)系统:建立一个集成的ERP系统来统一管理企业的各项业务流程,包括采购、销售、库存管理、财…

NodeJS版本管理工具——NVM

NodeJS版本管理工具——NVM 准备工作 卸载原 nodejs 版本 1、nvm简介 nvm是一个node版本管理工具,通过它可以安装多种node版本并且可以快速、简单的切换node版本。 2、nvm安装 1、下载链接:https://github.com/coreybutler/nvm-windows/releases 注…

卡片的点击事件通过点击进行路由传参

下面是详情页 通过 接收 <template><div class"detail"><img :src"row.imgUrl"><van-icon name"arrow-left" click"back" /></div> </template><script> export default {created() {let …

STM32CubeMX配置定时器PWM--保姆级教程

———————————————————————————————————— ⏩ 大家好哇&#xff01;我是小光&#xff0c;嵌入式爱好者&#xff0c;一个想要成为系统架构师的大三学生。 ⏩最近在开发一个STM32H723ZGT6的板子&#xff0c;使用STM32CUBEMX做了很多驱动&#x…

原型链污染分析

原型链污染问题 原型链原型的继承原型链污染 原型链 原型的继承 先创建一个对象&#xff0c;查看一下属性 const obj { prop1: 111, prop2: 222,} 这里的Object.prototype就是对象的原型。 原型里面有许多的属性&#xff0c;这里面的constructor是我们需要着重关注的。 除此…

刷题DAY15

第一题 给定一个数组arr 求子数组最大累加和 最暴力的 枚举每一个子数组 出结果 优化解 用一个cur指针保存累加和 每次cur变大 就用它更新max 如果cur累加到0以下 回复成0 假设答案法 假设我们最大的子数组是i 到 j位置上的 那么这个i 到j 之间 必不存在一个k使i...k累加和…

WEB:xff_referer

前提知识 xxf referer 题目 直接在请求头里添加&#xff0c;然后重放后显示内容为 修改referer payload Referer:https://www.google.com 得到flag

运营干货!如何自查亚马逊品牌是否存在滥用情况?

做了这么多年亚马逊&#xff0c;说到底还是没办法摸透亚马逊的脾气。比如亚马逊的推荐算法&#xff0c;也就是大家经常讨论的A9算法。为什么总是没办法摸透亚马逊的想法呢&#xff1f; 毕竟“游戏规则”是由亚马逊来制定&#xff0c;作为参与者只能按照游戏规则去参与游戏&…

【LeetCode-中等】剑指 Offer 35. 复杂链表的复制(详解)

目录 题目 方法1&#xff1a;错误的方法&#xff08;初尝试&#xff09; 方法2&#xff1a;复制、拆开 方法3&#xff1a;哈希表 总结 题目 请实现 copyRandomList 函数&#xff0c;复制一个复杂链表。在复杂链表中&#xff0c;每个节点除了有一个 next 指针指向下一个节…

【Spring】创建一个Spring项目与Bean对象的存储

目录 一、创建Spring项目 1、创建Maven项目 2、配置maven国内源 3、引入spring依赖 4、添加启动类 二、将Bean对象存储到Spring&#xff08;IoC容器&#xff09; 1、创建Bean对象 2、将Bean存储到spring&#xff08;容器&#xff09;中 3、获取Bean对象 3.1、Applicatio…

C++ | 位图与布隆过滤器

目录 前言 一、位图 1、位图的引入 2、位图的实现 &#xff08;1&#xff09;基本结构 &#xff08;2&#xff09;构造函数 &#xff08;3&#xff09;插入数据 &#xff08;4&#xff09;删除数据 &#xff08;5&#xff09;是否存在 3、位图的优缺点 4、位图的应用…