IT技术分享

了解前沿IT技术

当前位置:首页>ITRM介绍>IT技术分享
全部 21 ITRM动态 4 业界新闻 6 IT技术分享 14

打造IT大数据看板(docker + Grafana)

最后更新:2020-07-31   

        做大数据看板,做BI分析看板,是一件很Cool的事情。因为大数据看板很直观的展示了,一些业务重点信息,能够助力公司决策。ITRM100也倾力为IT管理人员打造了这样一个IT大数据看板。

       本次使用动用最热门技术 docker ,外加最受欢迎的界面展示工具Grafana,再结合我们ITRM100资源管理系统,一起实现吧,动次打次。微信图片_20200731133155.png


一、基础环境准备
centos下安装docker
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装最新版Docker-ce
yum install -y docker-ce  
设置启动Docker服务并激活开机启动:
systemctl start docker & systemctl enable docker

二、准备目录。用途:挂载数据,如果意外删除了容器,数据也不会丢的

建立目录:
mkdir -p /data/grafana/conf #配置文件
mkdir -p /data/grafana/data #数据文件,存放panels、datasoure、页面等数据
mkdir -p /data/grafana/log  #日志

修改权限
chmod 777 -R /data/grafana/*

准备用户:(Docker运行的grafana用户是普通用户,我们需要处理挂载的目录保持跟普通用户一致)

groupadd -r -g 472 grafana #新建用户组,并修改UID和GID都为472(因为容器内的运行用户也是grafana,且UID和GID都是472)
useradd -r -u 472 -g grafana grafana   #新建用户添加到组
chown -R grafana:grafana /data/grafana #设置文件夹权限

三、搭建Grafana容器

1、先运行一个临时容器,复制相关资料出来
docker run -d  --name grafana -p 3001:3000 grafana/grafana
把资料复制出来
docker cp grafana:/etc/grafana/. /data/grafana/conf
docker cp grafana:/var/lib/grafana/. /data/grafana/data
docker cp grafana:/var/log/grafana/. /data/grafana/log
删除临时容器
docker rm grafana -f
 
2、运行正式容器
docker run -d  -p 3000:3000 --name=grafana
-e "GF_SECURITY_ADMIN_PASSWORD=admin"
-v /data/grafana/conf/:/etc/grafana  
-v /data/grafana/data/:/var/lib/grafana
-v /data/grafana/log:/var/log/grafana
-v /etc/localtime:/etc/localtime:ro
-e "GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource"
-e "GF_SERVER_ROOT_URL=http://grafana.server.name"  
-e TZ=Asia/Shanghai  
grafana/grafana

注释:
#GF_INSTALL_plugins环境变量:用来安装官方和社区Grafana插件 ,插件名称以逗号分隔,启动时,自动发送每个插件名称到grafana cli plugins install${plugin}并安装它们。
#grafana-clock-panel  时钟  
#GF_SECURITY_ADMIN_PASSWORD   #登陆密码
#-e TZ=Asia/Shanghai     #设置时区

然后,打开浏览器访问  ip:3000 用户名:admin 密码 admin,可爱的登陆画面出现。

四、让我们愉快的开始重现 插图吧。。。

1、添加数据源
 Configuration -> datasource -> add datasource -> Microsoft SQL Server   填写后 Save & test 通过就行了。
注意:1、需要 SQL server 2008R2 以上   2、通常  Encrypt 这里选择 disable

2、新增 Dashboards  新增 panel,如果有多个数据源,Panel上数据源请正确选择。


3、添加面板 (页面一种用了5种面板)


3.1 添加时钟,这个没得说


3.2、Graph时间曲线  面板

IF NOT EXISTS (select * from dbo.sysobjects where xtype='U' and Name = 'TT')
BEGIN
 create table TT (ID int identity(1,1) primary key,时间 datetime, Unix时间 int,UTC时间 datetime, UTCUnix时间 int,故障 int)
END
insert into TT values (
  (select (SELECT GETDATE())),
(SELECT datediff(ss,'1970-01-01',GETDATE())) ,
(SELECT GetUTCDate()),
(SELECT datediff(ss,'1970-01-01',GetUTCDate())),
(select count(*) as 故障 from 维护记录表 where  datediff(dd,case时间1,getdate())=0)
)
SELECT UTCUnix时间 as time,故障 FROM TT

3.3、Gauge 面板
本日IT服务请求
select count(*) as 本日 from 维护记录表 where DateDiff(dd,case时间1,getdate())=0

3.4、 Table 面板
本周IT服务申请部门排行一览
select 部门简写,count(*) as 次数 from 维护记录表 where  datediff(week,case时间1,getdate())=0  GROUP BY 部门简写 order by 次数 desc
配件库存一览
select ID,物料名称,物料规格,库存数量,计量单位 from 配件表 where 库存数量 !='0'

3.5、 Bar gauge 面板(这个组件一条 一行)
Field --Thresholds 这里表示 警戒值/目标值,可选择超过变色。
IT服务历史记录
select count(*) as 本日 from 维护记录表 where DateDiff(dd,case时间1,getdate())=0    
select count(*) as 昨天 from 维护记录表 where DateDiff(dd,case时间1,getdate())=1
select count(*) as 本周 from 维护记录表 where datediff(week,case时间1,getdate())=0  
select count(*) as 上周 from 维护记录表 where datediff(week,case时间1,getdate())=1
select count(*) as 本月 from 维护记录表 where datediff(MONTH,case时间1,getdate())=0
select count(*) as 本年 from 维护记录表 where datediff(year,case时间1,getdate())=0

个人本周运维记录
select count(*) as 赵杰 from 维护记录表 where DateDiff(week,case时间1,getdate())=0   and 处理人1='赵杰'
select count(*) as 张坤 from 维护记录表 where datediff(week,case时间1,getdate())=0  and 处理人1='张坤'
select count(*) as 李权 from 维护记录表 where datediff(week,case时间1,getdate())=0  and 处理人1='李权'
select count(*) as 王一扬 from 维护记录表 where DateDiff(week,case时间1,getdate())=0  and 处理人1='王一扬'

本月IT服务申请分类排行
select 故障类型 ,count(*) as 硬件 from 维护记录表 where 故障类型='硬件' and datediff(month,case时间1,getdate())=0   GROUP BY 故障类型
select 故障类型 ,count(*) as 软件 from 维护记录表 where 故障类型='软件' and datediff(month,case时间1,getdate())=0   GROUP BY 故障类型
select 故障类型 ,count(*) as 共享 from 维护记录表 where 故障类型='共享' and datediff(month,case时间1,getdate())=0   GROUP BY 故障类型
select 故障类型 ,count(*) as 电话 from 维护记录表 where 故障类型='电话' and datediff(month,case时间1,getdate())=0   GROUP BY 故障类型
select 故障类型 ,count(*) as 监控 from 维护记录表 where 故障类型='监控' and datediff(month,case时间1,getdate())=0   GROUP BY 故障类型
select 故障类型 ,count(*) as 用户操作 from 维护记录表 where 故障类型='用户操作' and datediff(month,case时间1,getdate())=0   GROUP BY 故障类型

设备年限一览表
SELECT count(1) as '三年内'  FROM IT资产 WHERE  购买日期 between (Select Convert(varchar(100),(select dateadd(year, -3, getdate())),25)) AND   (Select CONVERT(varchar(100), GETDATE(), 25))  and 设备类型<>'IP占用'
SELECT count(1) as '四年内' FROM IT资产 WHERE  购买日期 between (Select Convert(varchar(100),(select dateadd(year, -4, getdate())),25)) AND  (Select Convert(varchar(100),(select dateadd(year, -3, getdate())),25))  and 设备类型<>'IP占用'
SELECT count(1) as '五年内' FROM IT资产 WHERE  购买日期 between (Select Convert(varchar(100),(select dateadd(year, -5, getdate())),25)) AND  (Select Convert(varchar(100),(select dateadd(year, -4, getdate())),25))  and 设备类型<>'IP占用'
SELECT count(1) as '六年内'  FROM IT资产 WHERE  购买日期 between (Select Convert(varchar(100),(select dateadd(year, -6, getdate())),25)) AND  (Select Convert(varchar(100),(select dateadd(year, -5, getdate())),25))  and 设备类型<>'IP占用'
SELECT count(1) as '七年以上' FROM IT资产 WHERE  购买日期 <(Select Convert(varchar(100),(select dateadd(year, -6, getdate())),25))

五、如何免登陆去直接看面板,这个是个小作业,相信各位自己搞定喽。


最后一点很重要,Grafana 不支持SQL2000,所以一定要把数据库升级到SQL2008 sp2以上。跨版本升级,要注意数据库级别要跟上。


上一篇:简聊SDN

下一篇:没有了!

在线咨询

点击这里给我发消息 咨询专员

在线咨询

微信扫一扫

微信联系
返回顶部