首页 > 其他 > 详细

Splunk学习心得

时间:2018-08-23 00:56:42      阅读:441      评论:0      收藏:0      [点我收藏+]

由于蓝总要搞软文推广系统的统计,挂上微信UI后cnzz统计出了问题,于是打算直接把nginx的access.log导入splunk分析,这也是第一次正式接触splunk。

1.安装splunk

我的系统是centos 64位的,所以我先到官网下载了安装包,根据网上的文章安装流程如下:

首先创建一个splunk用户组,创建splunk用户,并且放在/opt/splunk目录下

[root@iZ28hzo5igsZ ~]# groupadd splunk
[root@iZ28hzo5igsZ ~]# useradd -d /opt/splunk -m -g splunk splunk
[root@iZ28hzo5igsZ ~]# su - splunk
[splunk@iZ28hzo5igsZ ~]$ id
uid=1001(splunk) gid=1001(splunk) groups=1001(splunk)
[splunk@iZ28hzo5igsZ ~]$ getconf LONG_BIT
64

下载完以后,直接解压到~目录,然后进入安装,输入密码

[splunk@iZ28hzo5igsZ ~]# tar -xvf splunk-6.4.0-f2c836328108-Linux-x86_64.tgz
[splunk@iZ28hzo5igsZ ~]# cd splunk/bin
[splunk@iZ28hzo5igsZ ~]# ./splunk start --accept-license

技术分享图片

就完成安装了

---恢复内容结束---

---恢复内容开始---

由于蓝总要搞软文推广系统的统计,挂上微信UI后cnzz统计出了问题,于是打算直接把nginx的access.log导入splunk分析,这也是第一次正式接触splunk。

1.安装splunk

我的系统是centos 64位的,所以我先到官网下载了安装包,根据网上的文章安装流程如下:

首先创建一个splunk用户组,创建splunk用户,并且放在/opt/splunk目录下

[root@iZ28hzo5igsZ ~]# groupadd splunk
[root@iZ28hzo5igsZ ~]# useradd -d /opt/splunk -m -g splunk splunk
[root@iZ28hzo5igsZ ~]# su - splunk
[splunk@iZ28hzo5igsZ ~]$ id
uid=1001(splunk) gid=1001(splunk) groups=1001(splunk)
[splunk@iZ28hzo5igsZ ~]$ getconf LONG_BIT
64

下载完以后,直接解压到~目录,然后进入安装,输入密码

[splunk@iZ28hzo5igsZ ~]# tar -xvf splunk-6.4.0-f2c836328108-Linux-x86_64.tgz
[splunk@iZ28hzo5igsZ ~]# cd splunk/bin
[splunk@iZ28hzo5igsZ ~]# ./splunk start --accept-license

技术分享图片

就完成安装了,由于数据直接在本机上,所以不需要转发和上传,直接导入日志,如果无法导入需要注意权限。

技术分享图片

等我们导入完数据就可以在搜索栏看到这些数据了。

技术分享图片

 

接下来完成蓝总要求的几个任务

1.查询一下访问createurl.php和urlsell.php的 PV 和 UV

查询PV很简单,直接输入createurl就可以了

index="main" source="/home/wwwlogs/access.log" createurl
index="main" source="/home/wwwlogs/access.log" urlsell 

查询UV的话需要额外添加条件

index="main" source="/home/wwwlogs/access.log" urlsell |stats dc(clientip)
index="main" source="/home/wwwlogs/access.log" create |stats dc(clientip)

技术分享图片

 

技术分享图片

可以看到pv有1888,而uv只有359,这里uv是按照独立IP来统计的。

2.查询urlsell访问的走势图

index="main" source="/home/wwwlogs/access.log" urlsell | timechart count by host

技术分享图片

如上是近几日的走势图

3.搜索每篇文章的单独UV,找出受到用户喜爱的文章。

这里搜先说明一下,用户访问文章的入口文件是urlsell.php,其中有个参数pagename用来标识文章,我们这里要通过正则表达式来搜索。

index="main" source="/home/wwwlogs/access.log" urlsell | rex field=uri "<pagename>pagename=(?<pn>\w+)[&\s]"

当我写好正则表达式,我发现搜索出来的结果并没有标识我要的东西,看来还是需要添加一个统计

index="main" source="/home/wwwlogs/access.log" urlsell | rex field=uri "<pagename>pagename=(?<pn>\w+)[&\s]" | stats count by pn

我们通过正则表达式匹配出pagename参数的值,这里通过()复制给<pn>,语法参照如下

技术分享图片

技术分享图片

技术分享图片

我们匹配出如下结果

技术分享图片

技术分享图片

我们也可以看所有文章的对比,那么就用时间来统计

index="main" source="/home/wwwlogs/access.log" urlsell | rex field=uri "pagename=(?<pn>\w+)[&\s]" | timechart count by pn

技术分享图片

 

也可以导出做数据分析

技术分享图片

Splunk学习心得

原文:https://www.cnblogs.com/xsseng/p/9499417.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!