随着云计算技术的快速发展,Rackspace® 和 Google® App Engine 等平台使得部署和运行云应用变得快速且简便。然而,云应用的运行往往伴随着可见性和控制力的潜在损失。虽然日志和指标可以提供一些关于应用运行状况的洞察,但这些数据通常以不同的格式分散在不同的地方,使得全面了解操作变得困难。那么,如何最好地对云端应用进行故障排查、监控和管理呢?
解决方案是采用技术中立的方法来监控和管理云应用。Splunk Storm 提供了这样一种方法。它能够从应用的每个层级收集数据,并跨多个跳点追踪事务,将应用事件与基础设施或用户体验问题相关联,并主动预防停机对业务的影响。Splunk Storm 提供了行业领先的 Splunk 软件即服务,实时索引和存储来自几乎任何来源、格式、平台或云提供商的机器数据,无需自定义解析器或连接器。无论应用是用 Ruby、Java、Python、PHP、.NET、Node.js 或任何其他语言或框架编写的,都可以通过网络流(如 syslog)、REST API 或通用转发器将数据发送到 Splunk Storm 进行索引和搜索。
将把一些示例 Apache 访问日志和 MySQL 日志放入 Splunk Storm,并看看能多快地解决一些问题。首先,进行一些设置:
在 https://www.splunkstorm.com/ 注册 Splunk Storm。
创建一个新项目。
现在向新项目添加数据。虽然也可以通过 TCP/UDP(包括 syslog)、REST API 或 Splunk 通用转发器将数据发送到 Splunk Storm 项目,但将手动上传一些示例数据进行此练习。首先,从 sampledata.zip 下载示例数据(假设的在线花店的 Apache Web 服务器日志和 MySQL 数据库日志)。
下载并解压 sampledata.zip 后,将看到三个文件夹,每个文件夹中都有一个 Apache "access_combined" 日志文件,以及一个包含 MySQL 日志文件的 Mysql 文件夹。
回到浏览器,将看到 Inputs 页面。点击 Files,然后点击 "Upload" 按钮。浏览到 apache1.splunk.com 中的 access_combined.log 文件并选择它。
对于每个日志文件,选择一个源类型。指定源类型告诉 Storm 如何解析数据,并允许在搜索时将所有特定类型的数据分组在一起。当向 Storm 添加自己的数据时,将希望指定正确的源类型,以便 Storm 正确提取数据的时间戳和换行符。
对于 Apache 访问日志,选择 "Apache web access logs" 并点击 "Upload" 按钮。
对于 MySQL 日志文件,选择 "Generic single-line data" 并点击 "Upload" 按钮。
重复上传过程,直到所有示例数据都进入项目。
一旦数据被添加到 Splunk Storm 项目中,"Explore data" 按钮将被激活。点击它!
现在有了 Splunk Storm 项目中的数据,看看能多快地解决应用程序的问题。假设接到一个客户的电话,他在尝试在公司的在线花店完成购买时不断遇到服务器错误。他给了他的 IP 地址 - 10.2.1.44。
Splunk Storm 中的一切都是可搜索的,所以只需在搜索栏中输入 "10.2.1.44",按回车键,将看到这位客户到商店的所有流量。
会看到很多 200 响应代码,但只对错误感兴趣。通过输入 "NOT 200" 过滤掉任何不是 200 成功响应的事件,缩小事件列表。
注意,每个事件都出现在搜索栏下方的时间线上。双击条形图可以在更小的时间范围内重新运行搜索。所以如果稍微深入一点,可以找到其中一个错误发生的时间窗口。