了解前沿IT技术
做大数据看板,做BI分析看板,是一件很Cool的事情。因为大数据看板很直观的展示了,一些业务重点信息,能够助力公司决策。ITRM100也倾力为IT管理人员打造了这样一个IT大数据看板。
本次使用动用最热门技术 docker ,外加最受欢迎的界面展示工具Grafana,再结合我们ITRM100资源管理系统,一起实现吧,动次打次。
一、基础环境准备
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
下一篇:没有了!