大数据时代的全能日志分析专家

--Splunk安装与实践

0. 

随着大家对网络安全意识的提高,企业网管理人员,必须对IT基础设置进行监控及安全事件的管理,管理数据的数量和种类非常巨大,那么就需要有一款能否分析各种日志数据的工具,经过长期实践,为大家推荐Splunk这么一款全能型分析工具。

1Splunk简介

Splunk是一款功能强大的、记录详细的日志分析软件,Splunk是基于原始日志数据(Raw data)内容建立索引,保存索引的同时也保存原始日志内容,在大数据时代,种类繁多的日志如何能快速分析找到你需要的内容呢,你需要一个更加方便智能的工具,那就是Splunk。它能处理常规的日志格式,比如Apache、Squid、系统日志、邮件日志等这些对所有日志先进行索引,然后可以交叉查询,支持复杂的查询语句,最后通过直观的方式表现出来。它与其他开源日志分析工具不同的是,操作界面支持全中文,而且对于中文版操作系统的日志收集非常不错,目前它的商业版本价格的确不便宜(国内天旦、精诚华厦微科都在代理这款产品,商务可联系他们)。下面我们先看看怎么安装和基本使用吧。

2. Splunk索引数据内容

    Splunk的索引范围涵盖应用、服务器、网络设备中的所有日志、配置、信息、trap、告警、度量以及其他系统性能数据。可灵活地从文件、网络端口、数据库、自定义API和接口中实时或按需访问数据。它的索引对原始数据的完整性无影响。

3.Splunk安装

首先到官方http://www.splunk.com/download注册一个账号下载对应的操作系统版本(截止目前最新版本为6.1.3),安装时记住关闭SELinux功能,另外注意一点,如果要通过WMI的方式来搜集Windows(中文版)日志的话,那么Splunk建议装在Windows操作系统(须4GB以上可用空间)上。如果收集的日志主要是各种网络设备及Linux系统日志建议装在类Unix系统上。下面以Redhat Linux系统安装Splunk为例讲解安装过程,启动过程如图1所示。

(1).安装软件包

#rpm –ivh splunk-4.1.7.95063-linux-2.6-x86_64.rpm

Splunk安装路径在/opt/splunk,这个路径各种UNIX/Linux系统都一样。

(2).关闭Selinux

#setenforce 0

(3).启动splunk,命令如下:

#/opt/splunk/bin/splunk start

(4).浏览Splunk Web接口,在浏览器中输入以下地址:

http://localhost.localdomain:8000

图1 Linux下安装Splunk

用netstat命令检查8000端口是否处于监听状态。

#netstat -ant

Proto Recv-Q Send-Q Local Address               Foreign Address             State

tcp       0      0 0.0.0.0:8000                0.0.0.0:*                   LISTEN

tcp       0      0 0.0.0.0:8089                0.0.0.0:*                   LISTEN

我们看到以上信息输出即可通过网址访问。

4.设置自动运行

1).设置开机自动启动

#ln -s /usr/local/splunk /bin/splunk/etc/rc2.d/S80splunk

2).设置到服务里面

#ln -s /usr/local/splunk /bin/splunk/etc/init.d/splunk

5.系统配置

下面我们通过配置来收集客户端的日志。

1)通过Syslog收集Cisco网络设备的日志

在Cisco网络设备上的配置命令一般为:

logging <syslog server IP Address>

logging trap <severity>

Splunk默认使用UDP 514端口来监听syslog消息。例如:

logging 192.168.122.1

logging trap warning

2)通过Syslog收集Linux主机的日志

在Linux主机上的配置一般为修改/etc/syslog.conf配置,添加以下两行:

# Send syslog to Splunk server

*.<severity>                 @<syslog server IPAddress>

如:

# Send syslog to Splunk server

*.debug                @192.168.122.1

3)通过WMI来收集Windows主机的日志

首先要确保运行Splunk服务(在服务管理器中显示为Splunkd)的帐号有权限读取远程Windows机器的WMI信息。在《Unix/Linux日志分析和流量监控》一书中的第14章中还会讲到利用WMI收集Windows日志。

然后,在Splunk服务器上做一下简单的配置。这里假设Splunk的安装路径默认为C:\Program Files\Splunk。在C:\Program Files\Splunk\etc\system\local文件下修改inputs.conf文件,添加以下内容:

[script://$SPLUNK_HOME\bin\scripts\splunk-wmi.py]

interval = 10

source = wmi

sourcetype = wmi

disabled = 0

接着,在同一目录中新建一个文本文件,命名为wmi.conf,并添加以下内容:

[WMI:<Name>]

server = <Remote Windows Host IPAddress>

interval = 60

event_log_file = <Event log Type>

disabled = 0

比如监控IP地址为192.168.122.10的Windows主机上Application和System的Event Log:

[WMI:AppAndSys]

server = 192.168.122.1

interval = 60

event_log_file = Application, System

disabled = 0

其实还可以通过Syslog来收集Windows的日志,这里可以用一个免费工具NTSyslog(下载)。

6.设置日志分析目录

当首次进入Web界面后,需要重设密码并添加数据。进入系统可以将默认语言选择为中文,开始导入数据,如图2所示。

图2 导入数据

选择数据源(从本地),接着选“从文件和目录”,选择/var/log即可。如图3所示。从图中我们也可以看出Splunk默认支持的日志种类很多,包含大多数运维人员平时工作中所需要分析的日志类型。

图3 选择本地数据源

点击应用菜单下方的search即可看到生成的日志报告(比如cron日志,mail日志。当然也可以把我们所需要记录的日志比如php错误日志等都输出到/var/log目录下,对其进行分析)。

7 .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搜索到的与您的搜索匹配的事件。事件查看器位于时间轴下方。事件默认显示为列表,您也可以选用表格查看。选择按表格形式查看事件时,表格只显示已选字段。

8.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条。注意,搜索关键词时,不用区分大小写。

9.使用布尔运算符查找日志

Apache服务器日志中发现大部分事件的状态码为“200”,它代表“成功”。现在有人投诉网站出现了问题,那么就要找出不是200的日志。我们使用布尔运算方法。

图7 使用布尔运算符查找

这时匹配条数骤减到31条。这时发现了HTTP服务器(503)错误,用这个方法可以快速排除无关事件。使用布尔运算符可进行搜索的信息更多,Splunk支持的布尔运算符有与、或和非所以第四步的搜索和下述语句相同:

sourcetype=access_* AND 10.2.1.44 ANDpurchase NOT 200

当搜索中含有布尔表达式时,运算符须全部大写。使用括号将有关表达式组合起来,以便进行更复杂的搜索。计算布尔表达式时,Splunk将从最里面的括号开始运算,接着运算括号外面的下一个值对。当括号内的所有运算符都运行完成,Splunk将先计算或子句,然后计算和或者非子句。

10.使用时间轴功能

现在您已经确认存在问题类型,现在您想找到导致问题的原因。从发现顾客无法购买的那次搜索开始,继续进行下面的步骤。时间轴上的各柱状体,代表搜索的匹配事件发生的时间。滑动鼠标,选中其中一个柱状体,将弹出工具提示,并显示时间数目和该柱距的原始时间戳,1个柱状体=1分钟,这个单位根据你的选择而动态变化,这样您的搜索将仅限于您所选定的1小时内所发生的事件,如图8所示。

图8 使用时间轴

Splunk支持使用星号(*)通配符来搜索“所有”或根据关键词的部分进行模糊检索事件。该搜索可告诉Splunk希望看到在这段时间内发生的所有事件。

时间轴的其他功能:

  • 点击选择上述的所有时间轴,可再次显示所有时间;

  • 点击放大,可锁定与您的搜索匹配的选定事件范围;

  • 点击缩小,可扩展时间轴,看到更多事件;

11.故障定位方面的应用

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含义详情请点击这里

12.看视频学用Splunk分析日志

最后轻松一下,大家打开这个链接(前提是你的浏览器支持flash)观看Splunk视频指南: http://www.tudou.com/programs/view/7iXM5WfXpDg/

技巧:

在试用版的Splunk中有500MB日志的限制(个人还无法突破限制),如果你直接将主机架设在生产环境,很快就到达上限,也许你一着急,就把他卸载了,从而错失真么一款优秀的工具,建议开始测试时,找几个典型测试设备在实验室进行功能测试,经过自评价后,有必要在联系商务人员,他们可以免费为您企业进行安装调试。

另外,如果你懒得注册账户,想直接下载Splunk 4.1.7请点击这里:

1) Windows 平台 64位 下载地址

2) RedHat Linux平台 2.6内核 64位 下载地址

3) Solaris 9/10 (64 bit) 下载地址

4)更多 Splunk学习手册

2016年 升级版 下载

1. Windows 64位平台,   v6.4.1

大数据时代的全能日志分析专家--Splunk安装与实践相关推荐

  1. Splunk—云计算大数据时代的超级日志分析和监控利器

          信息科技的不断进步,一方面使得银行业信息和数据逻辑集中程度不断得到提高,另一方面又成为银行业稳健运行的一大安全隐患.Splunk作为智能的IT管理运维平台,能够帮助银行业积极迎接.应对和解 ...

  2. Qlik潘应麒:大数据时代下的现代分析学

    文章讲的是Qlik潘应麒:大数据时代下的现代分析学,大数据时代的来临同时意味着我们将进入人工智能化的时代.我们所面对的数据容量,数据种类,数据变化的数据同之前都大不相同.但是,在面对这样庞大的数据量多 ...

  3. 基于大数据审计的信息安全日志分析法

    大数据信息安全日志审计分析方法 1.海量数据采集.大数据采集过程的主要特点和挑战是并发数高,因此采集数据量较大时,分析平台的接收性能也将面临较大挑战.大数据审计平台可采用大数据收集技术对各种类型的数据 ...

  4. 基于大数据电商平台日志分析

    一.项目介绍 1.1 项目介绍 本次实训,要求使用Hadoop及其生态圈相关的组件来实现企业级大数据开发的整套流程,即数据的采集.数据的存储.数据的分析处理及数据的可视化.其中数据的采集部分会介绍两种 ...

  5. 大数据Spark对SogouQ日志分析

    目录 1 业务需求 2 准备工作 2.1 HanLP 中文分词 2.2 样例类 SogouRecord 3 业务实现 3.1 读取数据 3.2 搜索关键词统计 3.3 用户搜索点击统计 3.4 搜索时 ...

  6. 《大数据时代》----重要理念摘抄

    作者:维克托·迈尔-舍恩伯格 最近看了一本有历史的书<大数据时代>(拿研究成果来说三年前的已经是老成果了),作者对 我们这个大数据时代产生了很多颇有意思的洞见,为了保持原汁原味,我就直接原 ...

  7. 《大数据时代》(维克托·迈尔·舍恩伯格)读书笔记

    观点摘录 序言引言 推荐序一 推荐序二 译者序 引言 第一部分 大数据时代的思维变革 01 不是随机样本,而是全体数据 02 不是准确性,而是混杂性 03 不是因果关系,而是相关关系 第二部分 大数据 ...

  8. 云计算大数据时代IT管理的机遇和挑战

    文章讲的是 云计算大数据时代IT管理的机遇和挑战, 近日,由国际最佳实践管理联盟主办 " 云计算 大数据时代IT管理的机遇和挑战"为主题的第二届国际最佳实践管理联盟中国年会(以下简 ...

  9. 《大数据时代》 概要

    一.大数据的概念? "大数据"是一个还未给出严格定义的概念,是相较于过去小的.局部性的.抽样的数据而言的.因此大数据进行分析和工作时,依赖的是完整的.全面的相关数据.维克托在书中给 ...

最新文章

  1. 【java】兴唐第十七节课
  2. IOS UISearchDisplayController 点击搜索出现黑条问题解决方案
  3. 网络工程师的职业发展路线
  4. 第四周实践项目7 多项式求和
  5. 【RFID】基于MATLAB的RFID 系统的空中接口过程以及防碰撞算法仿真
  6. pip 另一种安装方法:python setup.py install
  7. 挖掘频繁模式、关联和相关
  8. Celery + Flower + FastAPI + RabbitMQ ,Python实现异步消息队列和监控
  9. 进程上下文与中断上下文的理解
  10. python实验九答案_Python实验九
  11. SQL必知必会-存储过程
  12. 网络连接数4000多正常吗_怀孕36周时胎儿发育情况是怎样的?胎儿体重有4斤多正常吗?...
  13. python 脚本传参
  14. linux 之静默安装oracle
  15. 语音专题第四讲,语音识别之解码器技术简介|大牛讲堂
  16. 人脸图像特征提取方法(HOG、Dlib、CNN)简述
  17. web项目调用qq临时会话功能实现方法
  18. 联想服务器r525维修,扩展性强易管理 联想R525 G2服务器拆解
  19. python get请求下载excel_用Python下载Sharepoint Excel文件
  20. python发送cmd命令_python 执行终端/控制台命令的例子 如何使用python在同一个控制台发送cmd命令...

热门文章

  1. string 找出所有数字 index_【一天一大 lee】单调递增的数字 (难度:中等) Day20201215...
  2. 三行代码隐藏所有console.log
  3. php 如果则,如果python脚本在phpfi中运行,则导入python模块时会出错
  4. kafka 脚本发送_Apache-Flink深度解析-DataStream-Connectors之Kafka
  5. 如何打开别人发布的vue项目---express的使用方法
  6. 您的计算机已实施了USB存储设备管理策略,设置usb设备管理 【解决步骤】 的教程_...
  7. eclipse连接数据库
  8. hive hsql 漏斗模型_数据分析之SQL:常用模型
  9. 20200126:(leetcode)三数之和 最接近的三数之和(含图解)
  10. windows下配置apache和php,Windows系统下Apache和PHP的安装和基本配置