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

2024-03-19 13:48

本文主要是介绍大数据时代的全能日志分析专家 --Splunk安装与实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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


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


2Splunk安装
首先到官方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
我们看到以上信息输出即可通过网址访问。


3.设置自动运行
1).设置开机自动启动
#ln -s /usr/local/splunk/bin/splunk/etc/rc2.d/S80splunk
2).设置到服务里面
#ln -s /usr/local/splunk/bin/splunk/etc/init.d/splunk

4.系统配置
下面我们通过配置来收集客户端的日志。
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.10Windows主机上ApplicationSystemEvent Log
[WMI:AppAndSys]       
server = 192.168.122.1
interval = 60
event_log_file = Application, System
disabled = 0
其实还可以通过Syslog来收集Windows的日志,这里可以用一个免费工具NTSyslog(下载)


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

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

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


6 .Splunk搜索的使用
系统中的搜索工具栏是Splunk最强大的工具,为了学习Splunk,我们先在http://www.splunk.com/base/images/Tutorial/Sampledata.zip下载一个演示文件。我们学习如何添加数据,首先向Splunk添加示例数据方法如下:
Splunk首页中点击右上角的Home按钮,再选择添加数据,选择服务器本地文件,当你选择正确系统提示:“Use auto-detected source type:access_combined_wcookie”最后保存配置,当系统提示索引建立后就可以查看日志。

开始搜索
我们看看仪表盘的内容,读者应该已经熟悉搜索栏及时间范围选择,摘要仪表板上也有这些内容。但搜索仪表板上还包含其他内容,比如事件记录、时间轴、字段菜单及检索到的事件列表或搜索结果。
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

缩小搜索范围
请看左上角搜到的日志从109降到83条。注意,搜索关键词时,不用区分大小写。
8.使用布尔运算符查找日志
Apache服务器日志中发现大部分事件的状态码为“200”,它代表“成功”。现在有人投诉网站出现了问题,那么就要找出不是200的日志。我们使用布尔运算方法。

使用布尔运算符查找
这时匹配条数骤减到31条。这时发现了HTTP服务器(503)错误,用这个方法可以快速排除无关事件。使用布尔运算符可进行搜索的信息更多,Splunk支持的布尔运算符有与、或和非所以第四步的搜索和下述语句相同:
sourcetype=access_* AND 10.2.1.44 ANDpurchase NOT 200
当搜索中含有布尔表达式时,运算符须全部大写。使用括号将有关表达式组合起来,以便进行更复杂的搜索。计算布尔表达式时,Splunk将从最里面的括号开始运算,接着运算括号外面的下一个值对。当括号内的所有运算符都运行完成,Splunk将先计算或子句,然后计算和或者非子句。


9.使用时间轴功能
现在您已经确认存在问题类型,现在您想找到导致问题的原因。从发现顾客无法购买的那次搜索开始,继续进行下面的步骤。时间轴上的各柱状体,代表搜索的匹配事件发生的时间。滑动鼠标,选中其中一个柱状体,将弹出工具提示,并显示时间数目和该柱距的原始时间戳,1个柱状体=1分钟,这个单位根据你的选择而动态变化,这样您的搜索将仅限于您所选定的1小时内所发生的事件,如图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(事件查看器)程序打开事件查看器,在左侧窗口中选择“系统”,从右侧系统事件中查找事件ID60056006的事件(事件ID号为6005的事件表示事件日志服务已启动,即开机事件ID6006表示关机),它们对应的时间就分别是开机时间和关机时间。
注意:Windows事件ID含义详情请点击这里

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

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

这篇关于大数据时代的全能日志分析专家 --Splunk安装与实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/826188

相关文章

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

golang内存对齐的项目实践

《golang内存对齐的项目实践》本文主要介绍了golang内存对齐的项目实践,内存对齐不仅有助于提高内存访问效率,还确保了与硬件接口的兼容性,是Go语言编程中不可忽视的重要优化手段,下面就来介绍一下... 目录一、结构体中的字段顺序与内存对齐二、内存对齐的原理与规则三、调整结构体字段顺序优化内存对齐四、内

Python安装时常见报错以及解决方案

《Python安装时常见报错以及解决方案》:本文主要介绍在安装Python、配置环境变量、使用pip以及运行Python脚本时常见的错误及其解决方案,文中介绍的非常详细,需要的朋友可以参考下... 目录一、安装 python 时常见报错及解决方案(一)安装包下载失败(二)权限不足二、配置环境变量时常见报错及

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

Redis的数据过期策略和数据淘汰策略

《Redis的数据过期策略和数据淘汰策略》本文主要介绍了Redis的数据过期策略和数据淘汰策略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录一、数据过期策略1、惰性删除2、定期删除二、数据淘汰策略1、数据淘汰策略概念2、8种数据淘汰策略

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

MySQL8.2.0安装教程分享

《MySQL8.2.0安装教程分享》这篇文章详细介绍了如何在Windows系统上安装MySQL数据库软件,包括下载、安装、配置和设置环境变量的步骤... 目录mysql的安装图文1.python访问网址2javascript.点击3.进入Downloads向下滑动4.选择Community Server5.