Splunk学习与实践
一、 Splunk公司与产品
美国Splunk公司,成立于2004年,2012年纳斯达克上市,第一家大数据上市公司,荣获众多奖项和殊荣。总部位于美国旧金山,伦敦为国际总部,香港设有亚太支持中心,上海设有海外第一个研发中心。
产品:Splunk Enterprise【企业版】、Splunk Free【免费版】、Splunk Cloud、Splunk Hunk【大数据分析平台】、Splunk Apps【基于企业版的插件】等。企业版按索引的数据量收费,免费版每天最大数据索引量500MB,可使用绝大多数企业版功能。
二、 Splunk能够做什么
让所有人均可访问机器数据、让机器数据对所有人有用并具有价值!Splunk是机器数据的引擎,使用Splunk可收集、索引和利用所有应用程序、服务器和设备生成的快速移动型计算机数据。使用Splunk处理计算机数据,可让您在几分钟内解决问题和调查安全事件;使用Splunk可以监视您的端对端基础结构,避免服务性能降低或中断;以较低成本满足合规性要求;关联并分析跨越多个系统的复杂事件,获取新层次的运营可见性以及 IT 和业务智能。
每个环境都有独特的机器数据空间,以下是一些示例:
数据类型 |
位置 |
可以做什么 |
应用日志 |
本地日志文件、log4j、log4net、Weblogic、WebSphere、JBoss、.NET、PHP |
用户活动、欺诈检测、应用性能 |
业务流程日志 |
业务流程管理日志 |
跨渠道客户活动、购买、帐户变更以及问题报表 |
呼叫详细信息记录 |
呼叫详细信息记录 (CDR)、计费数据记录、事件数据记录均由电信和网络交换机所记录。 |
计费、收入保证、客户保证、合作伙伴结算,营销智能 |
点击流数据 |
Web 服务器、路由器、代理服务器和广告服务器 |
可用性分析、数字市场营销和一般调查 |
配置文件 |
系统配置文件 |
如何设置基础设施、调试故障、后门攻击、"定时炸弹"病毒 |
数据库审计日志 |
数据库日志文件、审计表 |
如何根据时间修改数据库数据以及如何确定修改人 |
文件系统审计日志 |
敏感数据存储在共享文件系统中 |
监测并审计敏感数据读取权限 |
管理并记录 API |
通过 OPSEC Log Export API (OPSEC LEA) 和其他 VMware 和 Citrix 供应商特定 API 的 Checkpoint 防火墙 |
管理数据和日志事件 |
消息队列 |
JMS、RabbitMQ 和 AquaLogic |
调试复杂应用中的问题,并作为记录应用架构基础 |
操作系统度量、状态和诊断命令 |
通过命令行实用程序(例如 Unix 和 Linux 上的 ps 与 iostat 以及 Windows 上的性能监视器)显示的 CPU、内存利用率和状态信息 |
故障排除、分析趋势以发现潜在问题并调查安全事件 |
数据包/流量数据 |
tcpdump 和 tcpflow 可生成 pcap 或流量数据以及其他有用的数据包级和会话级信息 |
性能降级、超时、瓶颈或可疑活动可表明网络被入侵或者受到远程攻击 |
SCADA 数据 |
监视控制与数据采集 (SCADA) |
识别 SCADA 基础结构中的趋势、模式和异常情况,并用于实现客户价值 |
传感器数据 |
传感器设备可以根据监测环境条件生成数据,例如气温、声音、压力、功率以及水位 |
水位监测、机器健康状态监测和智能家居监测 |
Syslog |
路由器、交换机和网络设备上的 Syslog |
故障排除、分析、安全审计 |
Web 访问日志 |
Web 访问日志会报告 Web 服务器处理的每个请求 |
Web 市场营销分析报表 |
Web 代理日志 |
Web 代理记录用户通过代理发出的每个 Web 请求 |
监测并调查服务条款以及数据泄露事件 |
Windows 事件 |
Windows 应用、安全和系统事件日志 |
使用业务关键应用、安全信息和使用模式检测问题。 |
线上数据 |
DNS 查找和记录,协议级信息,包括标头、内容以及流记录 |
主动监测应用性能和可用性、最终客户体验、事件调查、网络、威胁检测、监控和合规性 |
三、 Splunk架构与组件
架构最下层:Splunk通过监控文件和目录、监控网络端口、运行脚本的方式获取数据。
Data Routing Cloningand and Load Balancing:数据复制与负载均衡,
Index:顾名思义,它跟索引有关,实际上他不仅仅负责为数据建立索引,还负责响应查找索引数据的用户请求,还有读取数据和负责查找管理工作。虽然indexer可以在查找它本身的数据,但是,在多indexer的集群中,可以通过叫“search head”的组件来整合多个indexer,对外提供统一的查询管理和服务。
Search:专用的搜索语言,原始事件搜索、报表生成搜索,并可在搜索中自动学习“知识”,用户也可以自定义知识,从而使搜索越来越智能。
最上面两层:各类报表、告警,以命令行窗口,web图形界面接口和其他接口。
Splunk的几个重要组件:
索引器:索引器是用于为数据创建索引的Splunk Enterprise 实例。索引器将原始数据转换为事件并将事件存储至索引(Index)中。索引器还搜索索引数据,以响应搜索请求。
搜索头:在分布式搜索环境中,搜索头是处理搜索管理功能、指引搜索请求至一组搜索节点,然后将结果合并返回至用户的Splunk Enterprise 实例。如果该实例仅搜索不索引,通常被称为专用搜索头。
搜索节点:在分布式搜索环境中,搜索节点是建立索引并完成源自搜索头搜索请求的Splunk Enterprise实例。
转发器:转发器是将数据转发至另一个Splunk Enterprise 实例(索引器或另一个转发器)或至第三方系统的Splunk Enterprise 实例。
接收器:接收器是经配置从转发器接收数据的Splunk Enterprise 实例。接收器为索引器或另一个转发器。
应用:应用是配置、知识对象和客户设计的视图和仪表板的集合,扩展Splunk Enterprise 环境以适应Unix 或Windows 系统管理员、网络安全专家、网站经理、业务分析师等组织团队的特定需求。单个Splunk Enterprise 安装可以同时运行多个应用。
四、 Splunk分布式部署
如果系统平台比较大,产生的数据量比较大,那么可以不断扩展splunk集群,splunk具备这种扩展能力。用户可以部署任意多个forwarder,用来转发刚刚产生的原始数据。Indexer也可以部署成为一个集群,统一下层提供接收原始数据、建立索引的服务,对上层提供搜索的服务。用户还可以部署多台用于搜索的Search Header。所以,用户可以根据自己平台的实际工作量来部署自己的splunck集群大小。
五、 Splunk的安装
Splunk支持在各类操作系统上安装,下面以Linux系统安装为例:
1、上传splunk安装包splunk-6.4.2-00f5bb3fa822-Linux-x86_64.tgz至/opt目录。
2、解压安装压缩包
/tar –zxvf splunk-6.4.2-00f5bb3fa822-Linux-x86_64.tgz //解压,解压异常请注意文件上传是否正确。
3、进入splunk命令文件夹(bin)
cd /opt/splunk/bin //进入splunk bin目录
4、检查splunk状态
./splunk status //检查splunk状态是否正常,第一次会弹出license告知,按提示点击确定
5、启动splunk
./splunk start //启动splunk
./splunk status //检查启动状态
6、Splunk默认web登陆端口是8000,在浏览器中http://ip:8000,可第一次登陆,如果无法登陆请检查本机防火墙。
默认用户名:admin,密码:changeme,第一次登陆成功后要求重置密码。
7、设置splunk开机启动
./splunk enable boot-start
8、查看splunk进程信息
ps –f | grep splunk
六、 Splunk卸载
1、进入splunk文件夹
cd /opt/splunk/bin
2、检查splunk状态
./splunk status
3、关闭splunk服务
/splunk stop
4、删除splunk安装目录
rm –rf /opt/splunk
七、 Splunk基本配置
所有的设置基本上都可以通过Web页面和splunk CLI命令两种方式。
1、Web页面:
可修改splunk主机名、管理端口、web登陆端口,修改后需重启splunk生效。
2、CLI命令
./splunk start //启动
./splunk stop //关闭
./splunk restart //重启
./splunk status //查看状态
./splunk version //查看版本
./splunk show splunkd-port //查看管理端口
./splunk show web-port //查看web登陆管理端口
./splunk set web-port 80 //修改web登陆管理端口为80
./splunk set servername //新的服务器名称 //设置服务器名称
./splunk set default-hostname 新的主机名称 //设置默认主机名称
./splunk enable web-ssl //启用SSL
./splunk disable web-ssl //关闭SSL
./splunk edit user admin –password ‘newpassword’ –authadmin:oldpassword //修改用户密码
./splunk add user //新增用户
./splunk add user 新的用户名 -password ‘新用户密码’ -full-name ‘设置它的全名’ –role User(这个是角色)
./splunk list user //列出用户
./splunk remove user //删除用户
八、 简单应用实例——手工添加数据
1、点击Splunk首页——添加数据——上载
2、选择要上传的文件,按提示点击确定
3、上传完成后,splunk会自动生成字段,也可以按需要根据“正则表达式”或“分隔符”自己提取字段
4、可以根据需要进行各类搜索、计算,如何搜索需要学习splunk的SPL搜索语言,推荐阅读《Splunk实践指南_》
九、 简单应用实例——监控splunk本地的数据
1、点击splunk首页——添加数据——监视——文件和目录
2、选择“浏览”,添加需要监控的本地目录,索引、目录都可以先选择默认,在稍后在做具体解释。
3、添加完成后,实时监视文件变化,也可以进行搜索了。
十、 简单应用实例——监控远程服务器数据
可以通过syslog或splunk通用转发器,把远程服务器的数据传到splunk服务器进行监视,下面重点介绍splunk通用转发器的使用。
(一)、splunkforwarder安装与配置
1、在需要收集日志的服务器上安装splunkforwarder
2、切换至splunkforwarder的可执行目录(bin),启用转发器
./splunk start //根据提醒点确定
3、查看通用转发器的端口(默认用户名:admin、密码:changeme)
./splunk show splunkd-port
4、修改通用转发器的密码
/splunk edit user admin -password ‘新密码’ -role admin -auth admin:changeme
(二)、下面我们将远程服务器的 /var/log/audit/发给splunk
1、先到splunk上为这个实例创建一个索引,使用默认索引也可以,但建议为主要应用创建各自的索引
通过命令创建索引(也可以通过web页面创建)
./splunk add index linux_audit
2、在splunkforwarder服务器上添加一个监控项
./splunk add monitor /var/log/audit –index linux_audit
3.添加splunk接收服务器和接口
./splunk add forward-server 192.168.40.129:9997
4.查看转发服务器
./splunk list forward-server
5.splunk服务器上检查开启监听端口
./splunk enable listen 要启用的端口号 // 开启splunk接收的指定端口
./splunk disable listen 要禁用的端口号 // 关闭splunk接收的指定端口
./splunk display listen // 显示已启用的splunk接收的端口
(三)、登陆Web页面,查看搜索
1、index=“linux_audit”(支持命令的自动补全)
十一、 利用Splunk搭建SOC平台
收集一切可以收集的数据(IDS、出入口流量、防病毒、端口扫描等各类信息安全软件、工具的日志),利用Splunk进行监控、告警、根据需要快速搜索、生成报表,举例如下:
1、通过Security Onion App for Splunk software,监控出入口网络流(包括IDS威胁监控、外网开放端口监控、各协议的连接监控……)
2、外网IP开放端口扫描
Nmap扫描日志自动上传至Splunk,在仪表盘中制定关注的面板(如高危端口开放展示等)。
Splunk学习与实践的更多相关文章
- hadoop2.5.2学习及实践笔记(二)—— 编译源代码及导入源码至eclipse
生产环境中hadoop一般会选择64位版本,官方下载的hadoop安装包中的native库是32位的,因此运行64位版本时,需要自己编译64位的native库,并替换掉自带native库. 源码包下的 ...
- ansible 学习与实践
title: ansible 学习与实践 date: 2016-05-06 16:17:28 tags: --- ansible 学习与实践 一 介绍 ansible是新出现的运维工具是基于Pytho ...
- Google App Engine 学习和实践
这个周末玩了玩Google App Engine,随手写点东西,算是学习笔记吧.不当之处,请多多指正. 作者:liigo,2009/04/26夜,大连 原创链接:http://blog.csdn.ne ...
- PMBOK 学习与实践分享视频
本系列为自己在学习PMBOK时进行的总结与分享,每一节主要包括两部分: 对PMBOK本身的一个结构笔记和讲解. 对自己项目管理工作的一个总结和思考. PMBOK 学习与实践分享视频内容清单 人力资源管 ...
- NLP+词法系列(二)︱中文分词技术简述、深度学习分词实践(CIPS2016、超多案例)
摘录自:CIPS2016 中文信息处理报告<第一章 词法和句法分析研究进展.现状及趋势>P4 CIPS2016 中文信息处理报告下载链接:http://cips-upload.bj.bce ...
- Weex学习与实践
Weex学习与实践(一):Weex,你需要知道的事 本文主要介绍包括Weex基本介绍.Weex源码结构.初始化工程.we代码结构.Weex的生命周期.Weex的工作原理.页面间通信.boxmodel ...
- 免考final linux提权与渗透入门——Exploit-Exercise Nebula学习与实践
免考final linux提权与渗透入门--Exploit-Exercise Nebula学习与实践 0x0 前言 Exploit-Exercise是一系列学习linux下渗透的虚拟环境,官网是htt ...
- RabbitMQ学习系列四-EasyNetQ文档跟进式学习与实践
EasyNetQ文档跟进式学习与实践 https://www.cnblogs.com/DjlNet/p/7603554.html 这里可能有人要问了,为什么不使用官方的nuget包呐:RabbitMQ ...
- 孤荷凌寒自学python第七十天学习并实践beautifulsoup对象用法3
孤荷凌寒自学python第七十天学习并实践beautifulsoup对象用法3 (完整学习过程屏幕记录视频地址在文末) 今天继续学习beautifulsoup对象的属性与方法等内容. 一.今天进一步了 ...
随机推荐
- php常见面试(Smarty及相关知识)
1.Smarty简介: 是一种php模板引擎,它分开了后台程序和前台页面内容,使程序员和美工分工合作.还有其它模版引擎实现同样的目的. 2.Smarty使用: 建立php文件: 包含smarty类文件 ...
- Python接受流式输入
随笔记录——Python接受终端入若干行输入 Python接受终端的若干行输入时,比较常用的input()不再好用. 1. 导入sys模块: import sys 2. for循环接受输入: for ...
- java服务端项目开发规范
更新内容 2015-03-13 (请先更新svn的mybatis.xml.BaseMapper.java.Pager.java文件) 加入测试类规范 加入事物控制规范 加入mapper接口规则 ...
- DedeCMS V5.7sp2最新版本parse_str函数SQL注入漏洞
织梦dedecms,在整个互联网中许多企业网站,个人网站,优化网站都在使用dede作为整个网站的开发架构,dedecms采用php+mysql数据库的架构来承载整个网站的运行与用户的访问,首页以及栏目 ...
- Java学习笔记十一:Java中的方法
Java中的方法 一:什么是方法: 所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块. 学过C语言或者其他语言的应该都知道函数这个东西,在Java中,其实方法就是函数,只不过叫法不同,在 ...
- 扩展报表-JavaSet
前言 使用商业分析中的扩展报表平台,可以很方便的进行数据分析,进行图表化直观展示.一般情况下使用SQL数据集进行SQL的编写,进而配合扩展报表平台进行数据分析图表的绘制,但SQL数据集针对固定的参数进 ...
- Hadoop Sentry 学习
什么是Sentry? Sentry 是Cloudera 公司发布的一个Hadoop开源组件,它提供细粒度基于角色的安全控制 Sentry下的数据访问和授权 通过引进Sentry,Hadoop目前可在以 ...
- 1,理解java中的IO
IO中的几种形式 基于字节:InputStream.OutputStream 基于字符:Writer.Reader 基于磁盘:File 基于网络Socket 最终都是字节操作,字符到字节要编码转换 ...
- jmeter动态获取jsessionid
思想是在一个线程组内添加一个cookie管理器,登录之后,用正则提取到sessionid,该线程组下的操作便可以共享这个session了. 1. 依次新建线程组.cookie管理器.http请求-登录 ...
- QC的使用学习(二)
今日学习清单: 1.Quality Center中左上角选项中(QC 10.0中文版)工具菜单下的自定义中的几个内容,有:用户属性.组.项目用户.模块访问.需求类型.项目列表等.用户属性打开后是对当 ...