大家好,我是U神,关于Splunk的文章网上非常少,中文的官方文档也很少。这篇文章的都是我观看某Splunk视频(那视频好贵,我是通过某XX看到的)后写下的学习笔记,我用自己通俗易懂的语言非常详细地写了splunk的安装、CLI命令、SPL语言、数据分析等。记录这些笔记花了较长时间,一方面是让学习更加深刻,一方面防止忘记了后可以找找笔记再看看,另一方面发出来也想分享给每一个想学习Splunk的朋友,相信这篇文章会是你入门的最佳选择。
目录
0×01 初识splunk0x02 Linux上安装Splunk0x03 Windows上安装Splunk
0×04 Splunk安装后配置
0×05 Splunk的目录结构
0×06 Splunk常用的CLI命令
0×07 实战-导入数据前的准备
0×08 实战-导入并分析本地数据-1
0×09 实战-导入并分析本地数据-2
0×10 使用转发器转发数据
0×11 实战-数据分析和可视化-1
0×12 实战-数据分析和可视化-2
0×13 邮箱服务器配置
0×14 创建APP 0X15 Splunk技巧
0×01 初识splunk
一、公司:
美国Splunk公司,成立于2004年,2012年纳斯达克上市,第一家大数据上市公司,荣获众多奖项和殊荣。 总部位于美国旧金山,伦敦为国际总部,香港设有亚太支持中心,上海设有海外第一个研发中心。 目前国内最大的客户许可是800GB/天。 产品:Splunk Enterprise【企业版】、Splunk Free【免费版】、Splunk Cloud、Splunk Hunk【大数据分析平台】、Splunk Apps【基于企业版的插件】等。
二、产品:
Splunk Enterprise,企业版,B/S架构,按许可收费,即每天索引的数据量。
(购买20GB的许可,则默认每天可索引20G数据量;一次购买永久使用;如果使用试用版,试用期结束之后会切换到免费版)
Splunk Free,免费版,每天最大数据索引量500MB,可使用绝大多数企业版功能。
(免费版没有例如:身份验证、分布式搜索、集群等功能)
Splunk Universal Forwarder,通用转发器,是Splunk提供的数据采集组件,免费,部署在数据源端,无UI界面,非常轻量,占用资源小。
(转发器无许可证,是免费的;企业版专用的;所以部署在数据源,例如:部署在你的WEB服务器上,监控你的WEB日志,实时监控,产生一条日志则转发一条,进行增量转发;一般配置修改配置文件或者使用CLI命令。占用资源小)
三、Splunk是什么
面向机器数据的全文搜索引擎;
(使用搜索引擎的方式处理数据;支持海量级数据处理)
准实时的日志处理平台;
基于时间序列的索引器;
大数据分析平台;
一体化的平台:数据采集->存储->分析->可视化;
通用的搜索引擎,不限数据源,不限数据格式;
提供荣获专利的专用搜索语言SPL(Search Processing Language),语法上类似SQL语言
Splunk Apps 提供更多功能
(针对操作系统、思科网络设备,splunk都提供了专用的APP,接入数据源都可以看到直观的仪盘表。)
四、机器数据是什么
机器数据是指:设备和软件产生的日志数据、性能数据、网络数据包。这些数据都是一些非结构化的数据,我们可以统一将这些数据统一采集到splunk之后,splunk可以对这些数据进行索引、调查、监控、可视化等。
五、Splunk组件
索引器:索引器是用于为数据创建索引的Splunk Enterprise 实例。索引器将原始数据转换为事件并将事件存储至索引(Index)中。索引器还搜索索引数据,以响应搜索请求。
搜索头:在分布式搜索环境中,搜索头是处理搜索管理功能、指引搜索请求至一组搜索节点,然后将结果合并返回至用户的Splunk Enterprise 实例。如果该实例仅搜索不索引,通常被称为专用搜索头。
搜索节点:在分布式搜索环境中,搜索节点是建立索引并完成源自搜索头搜索请求的Splunk Enterprise实例。
转发器:转发器是将数据转发至另一个Splunk Enterprise 实例(索引器或另一个转发器)或至第三方系统的Splunk Enterprise 实例。
接收器:接收器是经配置从转发器接收数据的Splunk Enterprise 实例。接收器为索引器或另一个转发器。
应用:应用是配置、知识对象和客户设计的视图和仪表板的集合,扩展Splunk Enterprise 环境以适应Unix 或Windows 系统管理员、网络安全专家、网站经理、业务分析师等组织团队的特定需求。单个Splunk Enterprise 安装可以同时运行多个应用。
六、Splunk分布式架构
如上图所示:
1、可分为三层:第一层为数据源端:如应用服务器、服务总线、网络设备、防火墙等。
2、如果要采集这些数据例如:应用服务器可安装splunk的转发器,防火墙的数据可以通过TCP\UPD端口将数据发送到Splunk的中间层,Splunk的中间层称为splunk的索引器(接收器),数据将存储在这一层。
3、用户使用search head检索实例,search head将检索请求发送到各个索引器中。再把结果汇集到search head中,最后呈现给用户观看。
4、 数据源的转发器会将数据转发到多个splunk的实例中,转发器将进行自动负载均衡。
七、通用转发器
转发器分为重量(Heavy)、轻量(Light)和通用转发器(Universal)三种类型。
最常用的是通用转发器,其他两类很少使用。
与完整Splunk Enterprise实例相比,通用转发器的唯一目的是转发数据。与完整Splunk Enterprise 实例不同的是,您无法使用通用转发器索引或搜索数据。
为实现更高性能和更低的内存占用,它具有几个限制:
通用转发器没有搜索、索引或告警功能。
通用转发器不解析数据。
通用转发器不通过syslog 输出数据。
与完整Splunk Enterprise 不同的是,通用转发器不包含捆绑的Python 版本。
八、多种应用场景
0×02 Linux上安装Splunk
一、配置时间:
配置一致的时间
建议搭建企业内NTP服务器,将所有相关设备指向该服务器
(如果各个机器的时间不一致,就会因此产生问题。所以建议搭建一台NTP服务器,让所有设备的时间指向NTP服务器,让所有设备统一时间)
二、安装准备
本次安装基于CentOS 6.7, 64位
建议部署在64位环境下
Splunk Enterprise:
splunk-6.4.2-00f5bb3fa822-Linux-x86_64.tgz
Splunk 通用转发器:
splunkforwarder-6.4.2-00f5bb3fa822-Linux-x86_64.tgz
本次以root用户安装(可以使用非root)
三、 安装步骤
1)、wget下载tgz的压缩包。
2)、解压缩:#tar -zxvf splunk-6.5.1-f74036626f0c-Linux-x86_64.tgz -C /opt (默认我们解压到/opt目录下)
3)、splunk的可执行程序都放在/opt/splunk/bin/下,启动该程序应执行splunk,splunk命令参数如下:
#注意:以下命令我们称之为CLI命令,如下:通用转发器和splunk命令都可以如下执行
./splunk start //启动splunk --accept-license //自动接收许可 restart //重启splunk status //查看splunk状态 version //查看splunk版
开始启动的时候记得记住加上–accept-license,这样更便于我们安装。
4)、splunk安装之后开启Splunk Web端口8000。Splunkd端口8089端为管理端口。 安装之后我们可以在浏览器中访问splunk 8000端口的WEB界面。
注意:如果外部计算机无法访问它。需要关闭iptables服务或将该端口加入策略中
#services iptables stop [其它类unix系统关闭防火墙] systemctl stop firewalld.service [CentOS 7下停止防火墙]
Splunk地址如: http://192.168.199.205:8000 ,进入splunk默认的管理员为:admin 、密码为changeme。第一登录便会强制要求修改密码
配置splunk开机启动 ./splunk enable boot-start //这样每次开机,splunk服务都会开机启动
#通过上述命令查看splunk状态和版本信息 ./splunk status
#查看进程相关信息 : ps -f | grep splunk
四、 Splunk的卸载
./splunk disable boot-start //关闭自启动
./splunk stop //停止splunk
./rm–rf/opt/splunk //移除splunk安装目录
卸载要慎重,注意数据备份
五、安装 Splunk 通用转发器
1)、将通用转发器解压到opt目录下,Splunk转发器的安装方法和splunk一致,但它无UI界面。
tar zxvf splunkforwarder-6.4.2-00f5bb3fa822-Linux-x86_64.tgz -C /opt
2)、切换到Splunkforwarder的bin目录下去启动通用转发器
cd /opt/splunkforwarder/bin/ //切换到通用转发器的可执行程序目录
./splunk start –accept-license //启动通用转发器
注意:如果splunk web和通用转发器安装在同一 服务器,通用转发器的管理端口也是8090,则会提示被splunk占用,选择yes修改转发器管理端口,如下:
我们可通过CLI命令查看splunkd的端口
./splunk show splunkd-port //不过这里得输入splunk登录的账号密码
./splunk set splunkd-port 8091 //修改splund的端口为8091,提示:重启生效
3)、修改通用转发器密码
默认密码:admin/changeme
修改密码如下:其中role是角色,auth是验证原密码
./splunk edit user admin -password ‘admin’ -role admin -auth admin:changeme
0×03 Windows上安装Splunk
一、安装准备:
#搭建NPT服务器
配置一致的时间
建议搭建企业内NTP服务器,将所有相关设备指向该服务器
#安装用户的选择
本地系统用户,本次采用此方式
域用户,较复杂,请参考文档
#安装环境
本次安装基于Windows 7, 64位
建议部署在64位环境下
Splunk Enterprise:
splunk-6.4.2-00f5bb3fa822-x64-release.msi
Splunk 通用转发器:
splunkforwarder-6.4.2-00f5bb3fa822-x64-release.msi
二、 安装步骤
GUI安装,比较简单, 此处不演示。
Splunk默认安装在 “C:\Program Files\Splunk”
安装之后会注册两个服务,它的显示名称为:Splunkd Service、splunkweb (legacy purposes only)
启动:splunk start
关闭:splunk stop
重启:splunk restart
查看状态:splunk status
查看版本:splunk version
通过Windows DOS命令:
net start splunkd
net stop splunkd
通过服务面板 (services.msc)
#查看splunk web的端口命令为:
splunk show web-port
三、卸载splunk
依照上方的讲解的停止splunkd。
通过Windows控制面板的卸载程序卸载。
四、 安装Splunk 通用转发器
GUI安装,比较简单,选择:自定义(Customize Options),如下可选择SSL证书。
#其次安装的用户如下:
local system :本地系统用户
domain account :域账号
#选择是否收集的日志选项(Windows Event logs)。如:应用日志、安全日志、系统日志、转发事件日志、安装日志。
#选择是否收集Windows 的性能数据(Performance Monitor)。如:CPU、内存、磁盘、网络状态等
#注&#x