zoukankan      html  css  js  c++  java
  • Splunk学习心得

    由于蓝总要搞软文推广系统的统计,挂上微信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=(?<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

    也可以导出做数据分析

  • 相关阅读:
    ryu 下发流表配置
    openstack kolla 部署---不同的节点采用不同的物理接口
    kolla 安装
    Ubuntu add-apt-repository: command not found
    大前端发展趋势
    这些优化技巧可以避免我们在 JS 中过多的使用 IF 语句
    asap异步执行实现原理
    为什么 JS 对象内部属性遍历的顺序乱了
    你可能忽略的 async/await 问题
    深入浅出JS原型链
  • 原文地址:https://www.cnblogs.com/xsseng/p/9499417.html
Copyright © 2011-2022 走看看