6 .Splunk搜索的使用
系统中的搜索工具栏是Splunk最强大的工具,为了学习Splunk,我们先在http://www.splunk.com/base/images/Tutorial/Sampledata.zip下载一个演示文件。我们学习如何添加数据,首先向Splunk添加示例数据方法如下:
在 Splunk首页中点击右上角的Home按钮,再选择添加数据,选择服务器本地文件,当你选择正确系统提示:“Use auto- detected source type:access_combined_wcookie”最后保存配置,当系统提示索引建立后就可以查看日志。
图4 开始搜索
我们看看仪表盘的内容,读者应该已经熟悉搜索栏及时间范围选择,摘要仪表板上也有这些内容。但搜索仪表板上还包含其他内容,比如事件记录、时间轴、字段菜单及检索到的事件列表或搜索结果。
1).匹 配及扫描事件记录:在搜索中,Splunk在检索时将显示两组事件记录:一组为匹配事件记录,另一组为已扫描事件记录。搜索完成后,时间轴上方的记录显示 的是匹配事件的总数。时间轴下方事件列表上方的记录显示用户所选时间范围内的时间数目。稍后可以看到,当向下分析事件时,此数目会发生变化。
2).事 件的时间轴:时间轴能直观的显示出每一时刻发生的事件。当时间轴随着搜索结果不断更新时,可能会注意到有条状图案。每一条状图案的高度表示时间记录。时间 轴的峰值和谷值可表示活动高峰期或服务器停机。此时,时间轴可有效用于强调时间模式或调查各事件活动的高峰期和低谷期。时间轴选项位于时间轴上方。还可以 放大或缩小图表。
3).字段菜单:前面说过将数据编入索引时,Splunk可自动按名称和值的格式识别并生成数据信息,我们把这称 作是字段。当您进行搜索时,Splunk将把其从字段菜单上识别的所有字段列在搜索结果旁边。您可以选择其他字段来显示您搜索的事件。所选字段都已被设置 为搜索结果可见格式。将默认显示主机、源及源类型。其它字段是Splunk从您的搜索结果中抽取的。
4).事件查看器:事件查看器将显示Splunk搜索到的与您的搜索匹配的事件。事件查看器位于时间轴下方。事件默认显示为列表,您也可以选用表格查看。选择按表格形式查看事件时,表格只显示已选字段。
7.Splunk搜索实例解析
我们先构造一个场景,假如有人投诉网站,说在提交表单时总是提示有某个IP地址错误, 10.2.1.44,这时我们该如何利用搜索功能来查找问题呢?
我们可以输入如下内容:sourcetype=access_combined_wcookie10.2.1.44
当然,如果你不知道数据源,那么你也可以直接输入IP地址,这样匹配的条目会非常多,如果能精确找到数据源就很容易找到问题。
图5 使用搜索功能
access_combined_wcookie 代表数据源,要根据你提交的日志而定。注意,当您在搜索栏中输入的同时,将弹出Splunk“搜索助手”这个很重要,可以帮助你解决搜索中的很多问题。就 如同MS Office中的帮助一样好用。为了缩小范围我们做如下操作,我们还应该在搜索栏中键入purchase:
sourcetype=access_combined_wcookie10.2.1.44 purchase
图6 缩小搜索范围
请看左上角搜到的日志从109降到83条。注意,搜索关键词时,不用区分大小写。
8.使用布尔运算符查找日志
Apache服务器日志中发现大部分事件的状态码为“200”,它代表“成功”。现在有人投诉网站出现了问题,那么就要找出不是200的日志。我们使用布尔运算方法。
图7 使用布尔运算符查找
这时匹配条数骤减到31条。这时发现了HTTP服务器(503)错误,用这个方法可以快速排除无关事件。使用布尔运算符可进行搜索的信息更多,Splunk支持的布尔运算符有与、或和非所以第四步的搜索和下述语句相同:
sourcetype=access_* AND 10.2.1.44 ANDpurchase NOT 200
当 搜索中含有布尔表达式时,运算符须全部大写。使用括号将有关表达式组合起来,以便进行更复杂的搜索。计算布尔表达式时,Splunk将从最里面的括号开始 运算,接着运算括号外面的下一个值对。当括号内的所有运算符都运行完成,Splunk将先计算或子句,然后计算和或者非子句。
9.使用时间轴功能
现 在您已经确认存在问题类型,现在您想找到导致问题的原因。从发现顾客无法购买的那次搜索开始,继续进行下面的步骤。时间轴上的各柱状体,代表搜索的匹配事 件发生的时间。滑动鼠标,选中其中一个柱状体,将弹出工具提示,并显示时间数目和该柱距的原始时间戳,1个柱状体=1分钟,这个单位根据你的选择而动态变 化,这样您的搜索将仅限于您所选定的1小时内所发生的事件,如图8所示。
图8 使用时间轴
Splunk支持使用星号(*)通配符来搜索“所有”或根据关键词的部分进行模糊检索事件。该搜索可告诉Splunk希望看到在这段时间内发生的所有事件。
时间轴的其他功能:
- 点击选择上述的所有时间轴,可再次显示所有时间;
- 点击放大,可锁定与您的搜索匹配的选定事件范围;
- 点击缩小,可扩展时间轴,看到更多事件;
10.故障定位方面的应用
Splunk能通过搜索出日志中的重要关键字来挖掘出网络设备日志中最有价值的信息。搜索关键字“up OR down”查看日志中存在接口连接情况,splunk将信息转换成时间分布图,使我们更快捷地查看当天或者过去几天设备接口连接状态。
搜 索关键字“duplicate”,发现有少量存在IP地址冲突的地址,其中地址冲突所发生的时间以及冲突的源主机MAC地址都可以一目了然;搜索关键字 “SYNflood”,可在防火墙日志中查找SYN攻击事件;搜索关键字“power”可快速查找重要设备是否会出现“poweroff”的情况。
搜 索关键字“deny”可查找核心交换机上丢弃数据包的具体情况,根据这些情况可以统计一些经常出现的被丢弃数据包源头。输入 EventCode=6005 or EventCode=6006查询可以掌握机器的开关机情况,主要是提取6006的事件和6005的事件信息系统, 思路是在windows 中打开eventvwr.msc(事件查看器)程序打开事件查看器,在左侧窗口中选择“系统”,从右侧系统事件中查找事件ID为 6005、6006的事件(事件ID号为6005的事件表示事件日志服务已启动,即开机事件ID:6006表示关机),它们对应的时间就分别是开机时间和 关机时间。
注意:Windows事件ID含义详情请点击这里
11.看视频学用Splunk分析日志
最后轻松一下,大家打开这个链接(前提是你的浏览器支持flash)观看Splunk视频指南: http://www.tudou.com/programs/view/7iXM5WfXpDg/
技巧:
在 试用版的Splunk中有500MB日志的限制(个人还无法突破限制),如果你直接将主机架设在生产环境,很快就到达上限,也许你一着急,就把他卸载了, 从而错失真么一款优秀的工具,建议开始测试时,找几个典型测试设备在实验室进行功能测试,经过自评价后,有必要在联系商务人员,他们可以免费为您企业进行 安装调试。
