日志服务之分析用户访问行为

简介

场景将提供一台配置了CentOS 7.7版本的ECS实例(云服务器)、日志服务以及SLS Project资源。通过本教程的操作,您可以基于已有环境快速采集NGINX日志,并创建仪表盘分析用户访问行为。

云起实验室日志服务体验

(活动期完成有机会参与100%中奖):https://developer.aliyun.com/adc/series/activity/sls-1

安装Nginx服务

本步骤将指导您如何在ECS实例上下载、安装并启动NGINX服务。

  1. 在页面右侧,单击 图标,切换至Web Terminal。
  2. 安装Nginx运行所需要的插件。
    2.1 执行如下命令,安装gcc。gcc是Linux下的编译器,它可以编译C、C++、Ada、Object C和Java等语言。
    yum -y install gcc

2.2 执行如下命令,安装pcre。pcre是一个perl库,Nginx的HTTP模块使用pcre来解析正则表达式。
yum install -y pcre pcre-devel

2.3 执行如下命令,安装zlib。zlib是一个文件压缩和解压缩的库,Nginx使用zlib对HTTP数据包进行gzip压缩和解压。
yum install -y zlib zlib-devel

  1. 执行如下命令,下载Nginx安装包。
    wget http://nginx.org/download/nginx-1.17.10.tar.gz

  2. 执行如下命令,解压Nginx安装包。
    tar -zxvf nginx-1.17.10.tar.gz

  3. 执行如下命令,编译安装Nginx。
    cd nginx-1.17.10
    ./configure
    make && make install

  4. 执行如下命令,启动Nginx。
    cd /usr/local/nginx/
    sbin/nginx

  5. 在页面右侧,单击图标,切换到远程桌面操作界面。

  6. 测试Nginx启动。打开虚拟桌面的FireFox ESR浏览器,访问http://<ECS公网地址>,出现如下界面表示安装启动成功。
    说明:您可在云产品资源列表中查看ECS公网地址。

创建Logstore

本步骤将指导您如何在日志服务控制台中创建Logstore。

  1. 双击打开虚拟桌面的Firefox ESR浏览器
  2. 在RAM用户登录框中单击下一步,并复制粘贴页面左上角的子用户密码用户密码输入框,单击登录
  3. 复制下方地址,在Firefox ESR浏览器打开新页签,粘贴并访问日志服务控制台。
https://sls.console.aliyun.com/
  1. 日志服务控制台下方的Project列表中,选择Project资源所在地域,然后单击Project名称。

说明 :您可以在云产品资源列表中查看Project资源所在地域和Project名称。

img

  1. 在日志存储页面左侧,单击日志库下的img 图标。

img

  1. 创建Logstore对话框中,Logstore名称输入为nginx-log,打开WebTracking开关,然后单击确定

img

  1. 创建成功对话框中,单击取消

img

采集NGINX日志

本步骤将指导您如何使用日志服务采集NGINX日志。

  1. 在日志存储页面左侧,选择日志库>nginx-log>数据接入>logtail配置,然后单击img 图标。

img

  1. 快速接入面板中,单击NGINX-文本日志

img

  1. 创建机器组页面,单击ECS机器页签,选择实例选取方式为手动选择实例,并从实例列表中选择已创建的ECS实例,然后单击立即执行

说明 :您可以在云产品资源列表中查看ECS实例。

img

img

  1. 实例列表页签,等待执行状态变为成功后,单击确认安装完毕

img

  1. 创建机器组页面,自定义名称输入为nginx,然后单击下一步

img

  1. 机器组配置页面,从源机器组中选择上一步创建好的机器组,单击img 将机器组移动到应用机器组,然后单击下一步

img

  1. Logtail配置页面,配置如下参数,单击校验,校验成功后单击下一步

参数说明:

  • 配置名称:输入nginx。
    • 日志路径:输入/usr/local/nginx/logs/**/access.log。
    • NGINX日志配置
log_format main  '$remote_addr - $remote_user [$time_local] "$request" '
                 '$request_time $request_length '
                 '$status $body_bytes_sent "$http_referer" '
                 '"$http_user_agent"';
  • 日志样例
192.168.1.2 - - [10/Jul/2020:15:51:09 +0800] "GET /ubuntu.iso HTTP/1.0" 0.000 129 404 168 "-" "Wget/1.11.4 Red Hat modified"

img

img img

  1. 查询分析配置页面,单击下一步

img

  1. 结束页面,单击查询日志

img

  1. 查询分析错误对话框中,单击确定

img

  1. 在Firefox ESR浏览器打开新页签,访问http://<ECS公网地址>,并刷新页面几次。

说明 :您可在云产品资源列表中查看ECS公网地址。

  1. 切换回日志服务页签,单击查询/分析,您即可看到采集的access.log日志。

img

分析用户访问行为

本步骤指导您如何在仪表盘中创建今日UV、今日PV、来源IP分布、请求状态占比、访问前十IP、流入流出流量统计和PV预测等图表,进行分析用户访问行为。

  1. 在左侧导航栏中,单击img图标。

img

  1. 在仪表盘区域,单击图标。

img

  1. 在添加仪表盘对话框中,仪表盘名称输入nginx,单击确认。

img

  1. 在仪表盘区域,单击nginx。

img

  1. 在nginx仪表盘页面,单击编辑。

img

  1. 创建今日UV图表。
    在nginx仪表盘编辑页面,单击新建图标。

img

  1. 在nginx/编辑图表页面的属性配置区域,单击img图标。

img

  1. 在nginx/编辑图表页面,配置如下参数,单击预览。

参数说明:

  • 图表名称:输入今日UV。
  • 显示标题:打开显示标题。
  • 显示边框:打开显示边框。
  • 显示背景:打开显示背景。
  • 时间:选择1天。
  • 查询分析:选择nginx-log,输入如下查询语句。
* | select diff[1] as today, round((diff[3]-1.0)*100, 2) as growth FROM (SELECT compare(pv, 86400) as diff FROM (SELECT COUNT(DISTINCT remote_addr) as pv FROM log))

img

  1. 在nginx/编辑图表页面的属性配置区域,配置如下参数,单击确定。

参数说明:

  • 图标类型:选择同步环比图。
  • 显示值:选择today。
  • 对比值:选择growth。
  • 比较值单位:输入%。
  • 数值描述:输入今日UV同比昨日。

img

返回如下页面,您可以在今日UV图表中看到今日UV同比昨日的数据。

img

  1. 今日PV图表。
  2. 在nginx仪表盘编辑页面,单击新建图标。

img

  1. 在nginx/编辑图表页面的属性配置区域,单击img图标。

img

  1. 在nginx/编辑图表页面,配置如下参数,单击预览。

参数说明:

  • 图表名称:输入今日PV。
  • 显示标题:打开显示标题。
  • 显示边框:打开显示边框。
  • 显示背景:打开显示背景。
  • 时间:选择1天。
  • 查询分析:选择nginx-log,输入如下查询语句。
* | select diff[1] as today, round((diff[3]-1.0)*100, 2) as growth FROM (SELECT compare(pv, 86400) as diff FROM (SELECT COUNT(1) as pv FROM log))

img

  1. 在nginx/编辑图表页面的属性配置区域,配置如下参数,单击确定。

参数说明:

  • 图标类型:选择同步环比图。
  • 显示值:选择today。
  • 对比值:选择growth。
  • 比较值单位:输入%。
  • 数值描述:输入今日PV同比昨日。

img

返回如下页面,您可以在今日PV图表中看到今日PV同比昨日的数据。

img

  1. 来源IP分布。
    在nginx仪表盘编辑页面,单击新建图标。

img

  1. 在nginx/编辑图表页面的属性配置区域,单击img图标。

img

  1. 在nginx/编辑图表页面,配置如下参数,单击预览。

参数说明:

  • 图表名称:输入来源IP分布。
  • 显示标题:打开显示标题。
  • 显示边框:打开显示边框。
  • 显示背景:打开显示背景。
  • 时间:选择1天。
  • 查询分析:选择nginx-log,输入如下查询语句。
* | select count(1) as c, ip_to_province(remote_addr) as address group by address limit 100

img

  1. 在nginx/编辑图表页面的属性配置区域,省份选择address,数列值选择c,单击确定。

img

返回如下页面,您可以在来源IP分布图表中看到来源IP分布省份的数据。

img

  1. 请求状态占比。
    在nginx仪表盘编辑页面,单击新建图标。

img

  1. 在nginx/编辑图表页面的属性配置区域,单击img图标。

img

  1. 在nginx/编辑图表页面,配置如下参数,单击预览。

参数说明:

  • 图表名称:输入请求状态占比。
  • 显示标题:打开显示标题。
  • 显示边框:打开显示边框。
  • 显示背景:打开显示背景。
  • 时间:选择1天。
  • 查询分析:选择nginx-log,输入如下查询语句。
* | select count(1) as pv ,status group by status

img

  1. 在nginx/编辑图表页面的属性配置区域,分类选择status,数列值选择pv,单击确定。

img

返回如下页面,您可以在请求状态占比图表中看到各个请求状态的比例。

img

  1. 访问前十IP。
    在nginx仪表盘编辑页面,单击新建图标。

img

  1. 在nginx/编辑图表页面的属性配置区域,单击img图标。

img

  1. 在nginx/编辑图表页面,配置如下参数,单击预览。

参数说明:

  • 图表名称:输入访问前十IP。
  • 显示标题:打开显示标题。
  • 显示边框:打开显示边框。
  • 显示背景:打开显示背景。
  • 时间:选择1天。
  • 查询分析:选择nginx-log,输入如下查询语句。
* | select count(1) as pv, remote_addr as client_ip  group by client_ip order by pv desc limit 10

img

  1. 在nginx/编辑图表页面的属性配置区域,X轴选择client_ip,Y轴选择pv,单击确定。

img

返回如下页面,您可以在访问前十IP图表中看到访问NGINX次数前十名的IP。

img

  1. 流入流出流量统计。
    在nginx仪表盘编辑页面,单击新建图标。

img

  1. 在nginx/编辑图表页面的属性配置区域,单击img图标。

img

  1. 在nginx/编辑图表页面,配置如下参数,单击预览。

参数说明:

  • 图表名称:输入流入流出流量统计。
  • 显示标题:打开显示标题。
  • 显示边框:打开显示边框。
  • 显示背景:打开显示背景。
  • 时间:选择1天。
  • 查询分析:选择nginx-log,输入如下查询语句。
* | select sum(body_bytes_sent) as net_out, sum(request_length) as net_in ,date_format(date_trunc('hour', __time__), '%m-%d %H:%i')  as time group by date_format(date_trunc('hour', __time__), '%m-%d %H:%i') order by time limit 10000

img

  1. 在nginx/编辑图表页面的属性配置区域,X轴选择time,Y轴选择net_in和net_out,单击确定。

img

返回如下页面,您可以在流入流出流量统计图表中看到各个时间段的流入流出流量统计数据。

img

  1. PV预测。
    在nginx仪表盘编辑页面,单击新建图标。

img

  1. 在nginx/编辑图表页面的属性配置区域,单击img图标。

img

  1. 在nginx/编辑图表页面,配置如下参数,单击预览,然后单击确定。

参数说明:

  • 图表名称:输入PV预测。
  • 显示标题:打开显示标题。
  • 显示边框:打开显示边框。
  • 显示背景:打开显示背景。
  • 时间:选择4小时天。
  • 查询分析:选择nginx-log,输入如下查询语句。
* | select ts_predicate_simple(stamp, value, 6, 1, 'sum') from (select __time__ - __time__ % 60 as stamp, COUNT(1) as value from log GROUP BY stamp order by stamp) LIMIT 1000

img

返回如下页面,您可以在PV预测图表中看到4个小时内的PV预测数据。

img

  1. 在nginx仪表盘编辑页面,单击保存。

img

  1. 在保存提示对话框中,单击确认。

img

posted @ 2022-04-27 10:44  阿里云天池  阅读(56)  评论(0编辑  收藏  举报