使用Excel分析CloudStack使用记录
本文的内容最初由David Nailey在Build a Cloud博客上撰写。
诺基亚的亚历克斯·贝德罗夫(Alex Bederov)一年前写了一篇关于使用Excel分析他的云使用情况统计的文章。当时我想引用这篇文章,但当我去寻找它的时候,我才意识到这篇知识数据库文章发表的网站docs.cloudstack.org已经不复存在了。但好在我仍然保存着那篇文章,而且内容和我想讨论的问题相关,所以我想我会在这里重新发布其中内容,使读者仍然能够看到其中的内容。
CloudStack具有经过精心思考,设计合理的日志系统。所有的信息都会被收集到系统中,但是它不是“即开即用”的,你必须自己从中提取所需要信息,以创建有意义的记录,比如计费记录或使用情况报告。幸运的是,CloudStack Usage Server使得这项任务非常容易完成,Microsoft Excel数据透视表则会使报告变得有趣和简单。
我设置我的Usage Server每24小时运行一次。名为“cloud_usage”的usage数据库与名为"cloud"的主数据库位于同一个MySQL服务器上。资源使用情况存储在名为cloud_usage(与数据库同名)的表中。我使用下面的SQL查询语句调取未经整理的数据,并将其转化为按照一定标准,用逗号隔开的规范文本用于Excel处理。
(SELECT dc.name as "Datacenter", ac.account_name as "Account", u.domain_id
as "Domain ID", u.raw_usage,
s.cpu as "CPU count", s.speed as "CPU, MHz", s.ram_size as "RAM, MB",
8589934592/1024/1024/1024 as "Storage, GB", u.start_date,
"-", u.offering_id, u.usage_id, u.usage_type, u.description
FROM cloud_usage.cloud_usage u, cloud.account ac,
cloud.data_center dc, cloud.service_offering s
WHERE u.account_id=ac.id
AND u.zone_id=dc.id
AND u.offering_id=s.id
AND u.usage_type=1)
UNION
(SELECT dc.name as "Datacenter", ac.account_name as "Account", u.domain_id as
"Domain ID", u.raw_usage,
NULL as "CPU count", NULL as "CPU, MHz", NULL as "RAM MB",
u.size/1024/1024/1024 as "Storage, GB", u.start_date,
"-", u.offering_id, u.usage_id, u.usage_type, u.description
FROM cloud_usage.cloud_usage u, cloud.account ac,
cloud.data_center dc, cloud.disk_offering dsk
WHERE u.account_id=ac.id
AND u.zone_id=dc.id
AND u.offering_id=dsk.id
AND u.usage_type=6)
该查询将虚拟机和硬盘的使用情况组合到同一个表中,并取消id字段。当前我没有在其中包括网络数据使用情况,这是因为我使用的是基于直连VLAN的网络模型。其中请注意,usage_type字段“1”代表虚拟机使用情况,“6”代表数据存储情况。
为了将数据导入到Excel中,我们需要安装MySQL ODBC接口,这将允许我们直接连接到MySQL服务器。 MySQL ODBC接口可从Oracle官网免费下载。
当你安装好ODBC后,打开一个新的Excel工作簿,单击数据,然后选择“From Other Sources”,然后选择“From Microsoft Query”。选择“New Data Source”
命名这个数据源(随便起一个名字用作标记)并选择之前下载好的MySQL ODBC驱动程序:
我正在使用用于SSH连接的只读帐户,该账户具有对云和cloud_usage数据库的读取权限。 当你输入你的数据库账户密码后点击测试按钮并选择cloud_usage数据库。
如果测试连接成功,那么点击OK完成数据数据库的连接。之后就可以使用这个数据源了。
选择新创建的数据源,然后单击确定按钮。 欢迎来到Windows 3.1界面! 不要使用Microsoft Query向导来创建查询。 取消所有的提示,点击SQL按钮进入SQL语句窗口。
将你的SQL粘贴到一个可笑的小窗口中,并将你的查询语句保存到一个文件中,记得给它取个有意义的名字。 Excel会提示你在哪里放置结果数据,使用默认值。
这个操作的结果是将我们的查询结果导入到Excel电子表格中。 下面是我的数据的结果:
请注意,我所有的模板使用8GB硬盘大小,所以我把根磁盘大小在SQL查询中硬编码成8GB(注意根据实际情况修改)。 现在让我们分析下这些数据。 单击右上角以选择整个工作表,然后单击在Excel主菜单中插入的选项,然后选择数据透视表,然后单击透视图。 在“数据透视表字段列表”中进行以下选择:
推荐一本使用Excel的入门书籍,通过它可以学习如何使用透视表分析数据。
Beginning Pivot Tables in Excel 2017
作者和ISBN号见上图
- PySpark数据类型转换异常分析
- SQLI-LABS 更新帖(二)
- 如何重置Hue用户密码
- 如何使用R连接Hive与Impala
- Equation Group泄露工具之vBulletin无文件后门分析
- 如何使用CDSW在CDH集群通过sparklyr提交R的Spark作业
- 如何使用Beeline连接Impala
- 微软公式编辑器系列漏洞分析(一):CVE-2017-11882
- 预警揭秘:倒计时炸弹11.2.0.4前版本DB Link必须在2019年4月升级真相
- RPO攻击技术浅析
- 渗透技巧 | Windows上传并执行恶意代码的N种姿势
- 如何通过Cloudera Manager配置Spark1和Spark2的运行环境
- 从CPU漏洞Meltdown&Spectre看侧信道攻击
- 如何使用Java连接Kerberos的Kafka
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法