一)安装配置
环境:
CentOS 6.2
开始安装:
首先关闭selinux:
#vi /etc/sysconfig/selinux SELINUX=disabled setenforce 0
将之前官网下载好的压缩包进行解压,并安装。
#tar -zxvf splunk-6.0.1-189883-Linux-x86_64.tgz #cd .. #mv splunk /usr/local #cd /usr/local/splunk/bin #./splunk enable boot-start
第一次安装会提示:
This appears to be your first time running this version of Splunk. Copying '/usr/local/splunk/etc/openldap/ldap.conf.default' to '/usr/local/splunk/etc/openldap/ldap.conf' Moving '/usr/local/splunk/share/splunk/search_mrsparkle/modules.new' to '/usr/local/splunk/share/splunk/search_mrsparkle/modules'. Init script installed at /etc/init.d/splunk. Init script is not configured to run at boot.
根据提示进行copy操作,然后进行安装:
#/etc/init.d/splunk start Starting Splunk... Splunk> Take the sh out of IT. Checking prerequisites... Checking http port [8000]: open Checking mgmt port [8089]: open Checking configuration... Done. Creating: /usr/local/splunk/var/lib/splunk Creating: /usr/local/splunk/var/run/splunk Creating: /usr/local/splunk/var/run/splunk/appserver/i18n Creating: /usr/local/splunk/var/run/splunk/appserver/modules/static/css Creating: /usr/local/splunk/var/run/splunk/upload Creating: /usr/local/splunk/var/spool/splunk Creating: /usr/local/splunk/var/spool/dirmoncache Creating: /usr/local/splunk/var/lib/splunk/authDb Creating: /usr/local/splunk/var/lib/splunk/hashDb Checking critical directories... Done Checking indexes... Validated: _audit _blocksignature _internal _thefishbucket history main summary Done New certs have been generated in '/usr/local/splunk/etc/auth'. Checking filesystem compatibility... Done Checking conf files for typos... Done All preliminary checks passed. Starting splunk server daemon (splunkd)... Done [确定] Starting splunkweb... Generating certs for splunkweb server Generating a 1024 bit RSA private key .............++++++ .....................................................++++++ writing new private key to 'privKeySecure.pem' ----- Signature ok subject=/CN=localhost.localdomain/O=SplunkUser Getting CA Private Key writing RSA key [确定] Done If you get stuck, we're here to help. Look for answers here: http://docs.splunk.com The Splunk web interface is at http://127.0.0.1:8000
打开浏览器,进行访问,同时确保防火墙和访问端口:
#service iptables stop
二)常用语法
搜索框直接输入”搜索词“
purchase
查找匹配词”purchase“
字段名=”搜索词“
source="Sampledata.zip:./apache3.splunk.com/access_combined.log"
查找数据来源为"Sampledata.zip:./apache3.splunk.com/access_combined.log"
source="Sameledata.zip:.apache*"
查找数据来源为apache开头的所有来源
source="Sampledata.zip:./apache3.splunk.com/access_combined.log" purchase NOT 200
查找数据来源为"Sampledata.zip:./apache3.splunk.com/access_combined.log" 并且字符串匹配词 "purchase" 并且字符串中不匹配200
查找错误码
error OR failed OR (souretype = access*(404 OR 500 OR 503))
当然你可以加上status字段
(sourcetype=access*(status=404 OR status=500 OR status=503)) host="apache3.splunk.com"
source="Sampledata.zip:./apache*" | top 10 product_id
获取最多访问的10个产品id
source="Sampledata.zip:./apache*" | top limit=1 clientip
获取消费最多的客户端ip
source="Sampledata.zip:./apache*" action=purchase clientip=233.77.49.50|stats count, values(product_id) by clientip
获取指定客户端IP购买的产品,并汇总数量
source="Sampledata.zip:./apache*" category_id = flowers| statsdc(clientip)
统计有多少用户购买了鲜花类的产品
source="Sampledata.zip:./apache*" category_id=flowers| stats count BY clientip
每个独立用户购买鲜花的数量
source="Sampledata.zip:./apache*" category_id=flowers| stats count AS "购买鲜花数量" BY clientip |rename clientip AS 客户
我们可以对结果进行重命名
子搜索部分使用[]起来,中括号的部分会先被执行,然后再执行外面搜索部分。
子搜索命令需用search开头
子搜索的速度稍微慢一些
source="Sampledata.zip:./apache*" action=purchase [search sourcetype=access_* action=purchase|top limit=1 clientip|table clientip] | stats count, values(product_id) as product_id by clientip |rename count AS "购买数量",product_id AS "购买产品内容" clientip AS "vip用户"
附:官网文档实验中用到的2个数据文本样例压缩包、及spl_splunk语法对比表。
注:由于博客文件上传容量限制,splunk安装压缩包无法上传,需要的朋友请官网自行下载。