splunk产品分析优质资料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
splunk产品分析优质资料
Splunk产品分析
产品定位
Splunk产品营销副总裁Sanjay Mehta说道。
Splunk是集成的端到端解决方案。
它在一个地方收集和整理机器数据。
Splunk可以实现实时搜索、浏览、导航、关联、分析和可视化数据。
在商用硬件上的规模得到证明。
不到5分钟,Splunk就可以下载到一台服务器上并运行。
同一软件可以在最大型的全局基础设施中扩展,每天为数十TB的数据编制索引。
对于一些用户而言,Splunk可能显得有些陌生,谈到Splunk的业务以及产品定位,Sanjay将Splunk的软件比作分析大数据的引擎,他表示:“Splunk公司主要处理大数据,对这些大数据进行分析,给我们的客户、组织带来价值,而且,我们能保证以低成本的进行实时地分析,允许用户使用我们的技术对数据进行收集、监控、分析,而且进行可视化。
目前,Splunk公司的产品和技术已经应用到各行各业,其中包括保险、政府、媒体领域。
”
Splunk高级销售工程师崔玥表示,Splunk是机器数据的引擎,它能够解决全部机器数据挑战,能够收集非结构化的时间序列机器数据并编制索引加以利用。
Splunk几乎能够读取来自可以想到的任何来源的数据,如网络流量、Web服务器、自定义应用程序、应用程序服务器、虚拟机管理程序、GPS系统、股市源、社交媒体和预先存在的结构化数据库。
它允许实时了解正在发生什么情况,深入分析在IT系统和基础设施中发生了什么情况。
安装环境操作系统要求
硬件要求
实际硬件需求跟安装的组件、索引数量、查询频率有关,详细请参考《Splunk-5.0.4-Installation.pdf》Estimate hardware requirements一章
产品形态
产品架构
Splunk进程
Splunkd进程
Splunkd在windows下已经注册为服务,是一个分布式C/C++服务器,用于索引IT流数据,并处理搜索请求。
Splunkd在索引IT数据时通过派生一系列的pipeline来实现,一个
一个pipeline是splunkd进程中的一个独立线程在splunkd的进程中对应唯一的XML片断。
Splunkweb进程
Splunkweb进程通过CherryPy提供轻量级web访问。
(CherryPy是用Python来写的,面向对象的HTTP框架,它允许开发者建立WEB程序,犹如一般的Python程序,用面向对象的方法来完成。
可以得到的是:少代码,少时间完成工作。
)用户可以通过splunkweb进程搜索和浏览存储在splunk服务器上的数据,并允许用户通过web接口管理splunk部署
在Windows操作系统下,splunkweb进程是第三方提供的可执行文件,由pythonservice.exe 重命名得来。
Splunk进程
在Windows操作系统下,Splunk进程是一个应用控制程序,它通过提供命令行接口来启动、停止、和配置splunk服务器,类似于*nix splunk程序
splunk-admon进程
splunk-admon进程在用户配置AD输入监控时由splunkd进程加载,splunk-admon 的作用是发现最近的可用AD域控制器,并收集AD事件,splunk同样会索引AD事件。
splunk-perfmon进程
splunk-perfmon进程在splunk4.2以上版本才有,当用户配置监控本地服务器性能时,会加载该进程,该进程会加载性能数据应用动态库来采集实时和历史的本地系统性能数据。
splunk-regmon进程
当用户配置监控windows注册表时,会加载splunk-regmon进程。
Splunk会搜集当前的注册表的情况,并监控注册表的变化,并把注册表的变化作为splunk事件被搜索。
splunk-winevtlog进程
splunk-winevtlog进程可用来监控已经定义的windows事件,并生成可供搜索的splunk 事件。
splunk-wmi进程
当用户配置从远程计算机上采集windows日志、性能数据时,该进程就会启动。
该进程通过WMI接口搜集远程计算机信息
Windows Management Instrumentation是用于提供共同的界面和对象模式以便访问有关操作系统、设备、应用程序和服务的管理信息。
如果此服务被终止,多数基于Windows的软件将无法正常运行。
如果此服务被禁用,任何依赖它的服务将无法启动。
Splunk部署方式
Splunk可以单机部署,也可以分布式部署。
分布式部署时,由多个转发器(forwarder)把数据转发到splunk服务器。
Splunk转发和接收
用户可以把数据从一个splunk实例转发到另一个splunk服务器甚至是非splunk系统。
执行转发的splunk实例叫做转发器(forwarder),负责接收的splunk实例叫接收器(receiver)。
接收器通常也是splunk索引器(indexer)。
Splunk实例可以同时作forwarder 和receiver形成级联
常见的部署方式
单机部署
只部署一个splunk实例,不进行转发
数据合并(聚合)
数据聚合是一种最常见的部署方式,这种组网场景下,多个Forwarder转发数据到Receiver,的Receiver上进行数据聚合(consolidation)和索引(indexing)
负载均衡
在负载均衡场景下,一个splunk转发器把分布式数据转发到多个接收器.每一个接收器接收到其中一部分转发数据,要搜索全部数据,需要进行分布式搜索所有接收器拥有的数据。
Splunk转发器进行自动寻址,在一个时间段内(比如30s),随机选择一个接收器进行发送,当接收器出现故障时,转发器立刻切换到其他的接收器。
路由和数据过滤
这种场景下,转发器可以根据条件(比如数据源、数据源类型、或事件的模式)转发到某一特定的接收器。
比如转发器根据事件中的主机转发到不同的接收器。
转发到非splunk系统
这种场景下,splunk转发器转发原始数据到非splunk系统。
转发可以以通过TCP以syslog 格式转发
Splunk应用与插件
通过应用与插件中的预置的知识与功能对splunk进行扩展。
Splunk应用
可以把splunk应用看作是解决某一特定需求的工作空间,splunk 应用可以扩展splunk视图,splunk应用可以为某一特定的应用提供工具,并为某些特定的用户使用
Splunk插件
插件是一个可重用的splunk组件,它跟splunk应用很像,但splunk插件没有可浏览的视图。
插件可以通过splunk主页或splunk 应用菜单
更多的信息
Splunk配置文件
配置文件目录结构
配置文件含义:splunk配置文件.xl
sx
配置文件格式
用“#”表示注释
配置文件“[]”扩起来的,表示一个段落
在同一段落中包含多个“名值”对,格式:attribute=value,属性区分大小写。
在同一配置文件中,段落可以进行详细的描述,不同范围的段落,更为具体详细的段落优先
Splunk应用配置
通过splunk应用界面添加应用
应用描述文件$SPLUNK_HOME/etc/apps//default/app.conf
Is_configured=1表示是否已经完成配置,1表示完成,0表示未完成,如果未完成,在首次使用应用时,去提示进入配置界面。
Is_visible表示应用是否出现在首页的应用菜单下。
Label是为该应用在首而显示的名称
Author是该应用的owner
Description 对该应用的详细描述
Version是该应用的版本
Splunk搜索技术
Splunk可以搜索:原始事件搜索、报表生成搜索,并可在搜索中自动学习“知识”,用户也可以自定义知识,从而使搜索越来越智能。
原始事件搜索是只从一个或多个索引中检索事件,通常适用于需要分析问题的情况的搜索。
此类搜索的一些示例包括:检查错误代码、相关事件、调查安全问题和分析故障。
这些搜索通常并不包含搜索命令(search 命令本身除外),而且结果通常是一个原始事件的列表。
报表生成搜索是对一组结果执行某种类型的统计计算的搜索。
在此类搜索中,首先从索引中检索事件,然后将这些事件传递一个或多个搜索命令。
这些搜索始终要求字段和至少一组统计命令之一Splunk索引
Splunk在创建数据前,先建立索引,索引是Splunk 数据的存储
库。
Splunk 将传入数据转换为事件,然后将其存储在索引中。
数据桶
Splunk 为您的数据创建索引时,会创建许多文件。
这些文件可分为两种类别:压缩形式的原始数据(原始数据)和指向原始数据的索引加上部分元数据文件(索引文件)。
这两类文件共同组成了Splunk 索引,这些文件驻留在按时间组织的目录集中。
这些目录称为数据桶。
部分目录包含新建索引的数据;其他目录包含以前索引的数据。
此类目录的数量会变得相当大,取决于您要创建索引的数据量。
默认情况下,Splunk 按照通过多个阶段使数据慢慢老化的方式来处理已索引的数据。
在经过一长段时间(通常为几年)后,Splunk 将从系统中删除旧数据。
数据桶在老化时会经历多个阶段:热、温、冷、冻结。
当数据桶老化时,它们从一个阶段“滚动”到下一个阶段。
新建索引的数据会进入热数据桶,可对该数据桶执行搜索以及主动向其中写入内容。
当热数据桶达到特定大小时,将成为温数据桶(“滚动到温数据桶”),并将创建一个新的热数据桶。
温数据桶是可搜索的,但不能主动向其中写入内容。
温数据桶会有许多个。
当Splunk 创建的温数据桶数量达到最大值时,会开始基于时间将温数据桶滚动到冷数据桶。
时间最长的温数据桶会始终滚动到冷数据桶。
当数据桶老化时,它们将继续以此方式滚动到冷数据桶。
在经过设定的一段时间后,冷数据桶滚动到冻结数据桶,此时对它们执行存档或删除操作。
通过编辑indexes.conf 中的属性,可指定数据桶老化策略,用于确定数据桶何时从一个阶段移动到下一个阶段。
索引目录的结构
每个数据桶都占用一个较大数据库目录中自己的子目录。
Splunk
会组织目录以区分热/温/冷数据桶。
此外,数据桶目录名称基于数据存在的时间。
索引原始数据(raw data)存储
在温数据桶目录下,有一个rawdata的目录,这个目录中有几个比较重要的文件
Hosts.data 记录当前时间段的原始文件中涉及到的主机,每个字段含义还不清楚,其意图已经很明显猜得出来,通过创建索引时,把host提取出来,以便于快速搜索,其他字段估计是存储主机的搜索到的次数、以及在原始文件中的起始位置
Sources.data 记录该时间段原始数据中的数据源信息
SourceTypes.data 记录该时间段原始数据中的数据源类型信息
Rawdata\journal.gz 这是一个压缩二进制文件,原始文件存储在这里,这个文件是有格式的,splunk在原始数据一个事件前加上自己的信息头,虽然是二进制文件,但从以下截图来看,仍然能看到存储的原始痕迹。
索引创建过程
Splunk 可为任意类型的时间序列数据(具有时间戳的数据)创建索引。
Splunk 为数据创建索引时,它会基于时间戳将数据分为多个事件。
事件处理将出现在两个阶段:分析和创建索引。
传入Splunk 的所有数据将以大数据块(10,000 个字节)的形式通过分析管道进入。
分析期间,Splunk 会将这些数据块分为若干事件,并将这些事件传递到执行最终处理的索引管道。
分析时,Splunk 将执行大量操作,其中包括:
为每个事件提取一组默认字段,包括host、source 和
sourcetype。
配置字符集编码。
使用换行规则识别行尾。
虽然大多数事件较短,只占用一两行,但有些事件会很长。
标识时间戳,如果时间戳不存在,创建时间戳。
Splunk 在处理时间戳的同时会识别事件界限。
在此阶段,您可将 Splunk 设置为以掩码显示敏感事件数据(如信用卡号或社会保险号)。
也可将其配置为对传入事件应用自定义元数据。
在索引管道中,Splunk 会执行其他处理,其中包括:
将所有事件分段,然后基于段执行搜索。
您可以确定分段的级别,它将影响索引和搜索速度、搜索功能以及磁
盘压缩效率。
构建索引数据结构。
将原始数据和索引文件写入磁盘,其中将执行后索引压缩。
分布式搜索
在分布式搜索中,一个splunk实例要进行搜索(称为搜索头),搜
索头向索引器(search peers或Indexer noes)发出索引请求,由索引器执行真正的搜索操作,然后把搜索结果返回给搜索头,由搜索头把结果进行合并后返回给用户。
默认配置下,搜索头会向所有的索引器发送搜索请求,用户可以配置搜索的范围。