3月11日在日本附近海底发生了9.0级的地震,造成了无数平民百姓的死伤和财物的损失,甚至进一步核电站泄露事件也造成了进一步的困难。我们深深祝愿日本人民可以度过这一难关,在这种灾难面前人类实在是非常渺小。我们可以做点什么吗?通过一个免费的Splunk软件就可以建立自己的地震监测系统。以下我们看到如何在30分钟内完成这一DIY。
我想到了Splunk分析自由数据的优势,而http://earthquake.usgs.gov/ 始终免费提供着rss的feed,可以不断更新全球地震的信息。
于是,我安装了splunkbase上的googlemap和rss apps,开始建立自己的地震监控系统,首先导入rss feeds里的地震信息,典型的文字记录如下面的范例:
——————————————-
Wed, 16 Mar 2011 04:13:27 +0000 title=”6 – NEAR THE EAST COAST OF HONSHU, JAPAN”
link=http://earthquake.usgs.gov/eqcenter/shakemap/global/shake/c00023zp/
description width=”100″ align=”left” hspace=”10″ />Date: Wed, 16 Mar 2011 03:52:05 UTC
Lat/Lon: 35.7951/140.803
Depth: 25”
Tue, 15 Mar 2011 20:44:04 +0000 title=”5.7 – NEAR THE EAST COAST OF HONSHU, JAPAN”
link=http://earthquake.usgs.gov/eqcenter/shakemap/global/shake/c00023qk/
description width=”100″ align=”left” hspace=”10″ />Date: Tue, 15 Mar 2011 20:30:00 UTC
Lat/Lon: 35.2518/141.193
Depth: 23.8”
——————————————
通过栏位定义很顺利地定义出了经纬度、震级和震深等数据,我们只要输入几个样本数据,Splunk自动找出了定义和提取字段的方法。
为了GoogleMap绘图方便,我们可以把经度提取为名称_lat,维度提取为_lng
随后我们就可以组织搜索命令:
例如我们想知道大于5级的地震位置分布:
sourcetype=”earthquake” eq_level >= 5
果然,日本地震数量惊人,如果放大查看日本,可以看到最近的余震数量惊人(这里仅仅过滤标注了5级以上的,数据源头里1级以上的所有地震数据)
我们进一步可以通过输入命令查看例如震度和深度的关系图,例如 stats avg(eq_depth) by eq_level
通过增加快速的各类分析,还可以定义成监控面板
可以分享给更多的关注者查看。同时,我们还可以把数据源设置为每小时或者每天定期去获取地震信息的更新rss。通过大约半小时的定义,通过Splunk的强大扩展能力,在日常运维需求之外,我们很快就建立起属于自己的全球地震情况监控系统。