好运集市 春天好运会发芽🌱
半天掌握日志存储,云启实验室系等你来!
4月21日-4月29日,完成以下课程学习即可参与抽奖,100% 中奖,云小宝、双肩包、VR 眼镜等你来。
点击实验室课程链接:https://developer.aliyun.com/adc/series/activity/sls-1
半天掌握日志存储 云启实验室系列课程 第五讲 | 日志服务之分析用户访问行为 实验背景
本场景将提供一台配置了 CentOS 7.7 版本的 ECS 实例(云服务器)、日志服务以及 SLS Project 资源。通过本教程的操作,您可以基于已有环境快速采集 NGINX 日志,并创建仪表盘分析用户访问行为。
本场景主要涉及以下云产品和服务:
• 日志服务 SLS:
日志服务SLS是云原生观测与分析平台,为 Log、Metric、Trace 等数据提供大规模、低成本、实时的平台化服务。日志服务一站式提供数据采集、加工、查询与分析、可视化、告警、消费与投递等功能,全面提升您在研发、运维、运营、安全等场景的数字化能力。
• 云服务器 ECS:
云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。云服务器ECS免去了您采购IT硬件的前期准备,让您像使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩。阿里云ECS持续提供创新型服务器,解决多种业务需求,助力您的业务发展。
实验后您将收获到
• 创建 Logstore
• 采集 NGINX 日志
• 创建仪表盘
半天掌握日志存储 云启实验室系列课程 第五讲 | 日志服务之分析用户访问行为 实验手册
安装 Nginx 服务
本步骤将指导您如何在ECS实例上下载、安装并启动NGINX服务。
- 在页面右侧,单击 图标,切换至Web Terminal。
- 安装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
- 执行如下命令,下载Nginx安装包。
wget http://nginx.org/download/nginx-1.17.10.tar.gz
- 执行如下命令,解压Nginx安装包。
tar -zxvf nginx-1.17.10.tar.gz
- 执行如下命令,编译安装Nginx。
cd nginx-1.17.10
./configure
make && make install
- 执行如下命令,启动Nginx。
cd /usr/local/nginx/
sbin/nginx
- 在页面右侧,单击图标,切换到远程桌面操作界面。
- 测试Nginx启动。打开虚拟桌面的FireFox ESR浏览器,访问http://<ECS公网地址>,出现如下界面表示安装启动成功。
说明:您可在云产品资源列表中查看ECS公网地址。
创建Logstore
本步骤将指导您如何在日志服务控制台中创建Logstore。
- 双击打开虚拟桌面的Firefox ESR浏览器。
- 在RAM用户登录框中单击下一步,并复制粘贴页面左上角的子用户密码到用户密码输入框,单击登录。
- 复制下方地址,在Firefox ESR浏览器打开新页签,粘贴并访问日志服务控制台。
https://sls.console.aliyun.com/
- 在日志服务控制台下方的Project列表中,选择Project资源所在地域,然后单击Project名称。
说明 :您可以在云产品资源列表中查看Project资源所在地域和Project名称。
- 在日志存储页面左侧,单击日志库下的 图标。
- 在创建Logstore对话框中,Logstore名称输入为nginx-log,打开WebTracking开关,然后单击确定。
- 在创建成功对话框中,单击取消。
采集NGINX日志
本步骤将指导您如何使用日志服务采集NGINX日志。
- 在日志存储页面左侧,选择日志库>nginx-log>数据接入>logtail配置,然后单击 图标。
- 在快速接入面板中,单击NGINX-文本日志。
- 在创建机器组页面,单击ECS机器页签,选择实例选取方式为手动选择实例,并从实例列表中选择已创建的ECS实例,然后单击立即执行。
说明 :您可以在云产品资源列表中查看ECS实例。
- 在实例列表页签,等待执行状态变为成功后,单击确认安装完毕。
- 在创建机器组页面,自定义名称输入为nginx,然后单击下一步。
- 在机器组配置页面,从源机器组中选择上一步创建好的机器组,单击 将机器组移动到应用机器组,然后单击下一步。
- 在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"
- 在查询分析配置页面,单击下一步。
- 在结束页面,单击查询日志。
- 在查询分析错误对话框中,单击确定。
- 在Firefox ESR浏览器打开新页签,访问http://<ECS公网地址>,并刷新页面几次。
说明 :您可在云产品资源列表中查看ECS公网地址。
- 切换回日志服务页签,单击查询/分析,您即可看到采集的access.log日志。
分析用户访问行为
本步骤指导您如何在仪表盘中创建今日UV、今日PV、来源IP分布、请求状态占比、访问前十IP、流入流出流量统计和PV预测等图表,进行分析用户访问行为。
- 在左侧导航栏中,单击图标。
- 在仪表盘区域,单击图标。
- 在添加仪表盘对话框中,仪表盘名称输入nginx,单击确认。
- 在仪表盘区域,单击nginx。
- 在nginx仪表盘页面,单击编辑。
- 创建今日UV图表。
在nginx仪表盘编辑页面,单击新建图标。
- 在nginx/编辑图表页面的属性配置区域,单击图标。
- 在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))
- 在nginx/编辑图表页面的属性配置区域,配置如下参数,单击确定。
参数说明:
- 图标类型:选择同步环比图。
- 显示值:选择today。
- 对比值:选择growth。
- 比较值单位:输入%。
- 数值描述:输入今日UV同比昨日。
返回如下页面,您可以在今日UV图表中看到今日UV同比昨日的数据。
今日PV图表。
- 在nginx仪表盘编辑页面,单击新建图标。
- 在nginx/编辑图表页面的属性配置区域,单击图标。
- 在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))
- 在nginx/编辑图表页面的属性配置区域,配置如下参数,单击确定。
参数说明:
- 图标类型:选择同步环比图。
- 显示值:选择today。
- 对比值:选择growth。
- 比较值单位:输入%。
- 数值描述:输入今日PV同比昨日。
返回如下页面,您可以在今日PV图表中看到今日PV同比昨日的数据。
- 来源IP分布。
在nginx仪表盘编辑页面,单击新建图标。
- 在nginx/编辑图表页面的属性配置区域,单击图标。
- 在nginx/编辑图表页面,配置如下参数,单击预览。
参数说明:
- 图表名称:输入来源IP分布。
- 显示标题:打开显示标题。
- 显示边框:打开显示边框。
- 显示背景:打开显示背景。
- 时间:选择1天。
- 查询分析:选择nginx-log,输入如下查询语句。
* | select count(1) as c, ip_to_province(remote_addr) as address group by address limit 100
- 在nginx/编辑图表页面的属性配置区域,省份选择address,数列值选择c,单击确定。
返回如下页面,您可以在来源IP分布图表中看到来源IP分布省份的数据。
- 请求状态占比。
在nginx仪表盘编辑页面,单击新建图标。
- 在nginx/编辑图表页面的属性配置区域,单击图标。
- 在nginx/编辑图表页面,配置如下参数,单击预览。
参数说明:
- 图表名称:输入请求状态占比。
- 显示标题:打开显示标题。
- 显示边框:打开显示边框。
- 显示背景:打开显示背景。
- 时间:选择1天。
- 查询分析:选择nginx-log,输入如下查询语句。
* | select count(1) as pv ,status group by status
- 在nginx/编辑图表页面的属性配置区域,分类选择status,数列值选择pv,单击确定。
返回如下页面,您可以在请求状态占比图表中看到各个请求状态的比例。
- 访问前十IP。
在nginx仪表盘编辑页面,单击新建图标。
- 在nginx/编辑图表页面的属性配置区域,单击图标。
- 在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
- 在nginx/编辑图表页面的属性配置区域,X轴选择client_ip,Y轴选择pv,单击确定。
返回如下页面,您可以在访问前十IP图表中看到访问NGINX次数前十名的IP。
- 流入流出流量统计。
在nginx仪表盘编辑页面,单击新建图标。
- 在nginx/编辑图表页面的属性配置区域,单击图标。
- 在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
- 在nginx/编辑图表页面的属性配置区域,X轴选择time,Y轴选择net_in和net_out,单击确定。
返回如下页面,您可以在流入流出流量统计图表中看到各个时间段的流入流出流量统计数据。
- PV预测。
在nginx仪表盘编辑页面,单击新建图标。
- 在nginx/编辑图表页面的属性配置区域,单击图标。
- 在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
返回如下页面,您可以在PV预测图表中看到4个小时内的PV预测数据。
- 在nginx仪表盘编辑页面,单击保存。
- 在保存提示对话框中,单击确认。