15分钟能做什么?
可能一本书只能看一个章节,慢慢品一杯咖啡才喝了一半,或许玩一把炉石传说。
日志服务11月份发布数据接入向导功能,如果平均一首歌的时间按3分钟计算,那么给我们5首歌的时间,我们一起来通过日志服务的数据接入向导快速玩转NGINX访问日志分析~
数据接入向导(Wizard)
一. 概述
日志服务在12月份推出了数据接入向导(Wizard)功能,快速完成数据的采集、存储、分析、离线投递, 降低用户使用日志服务门槛,目前支持的数据源以及支持配置如下:
数据源 | Logtail采集配置 | 索引设置 | 自动生成仪表盘 | 离线投递 |
---|---|---|---|---|
NGINX | √ | √ | √ | √ |
MNS 消息服务 | √ | √ | √ | |
API网关 | √ | √ | √ | |
文本文件 | √ | √ | √ | |
syslog | √ | √ | √ | |
Web Tracking | √ | √ | ||
API/SDK | √ | √ | ||
log4jAppender | √ | √ | ||
Producer | √ | √ |
二. 使用指引
如果你还没有使用过阿里云日志服务功能,可以参考五分钟快速入门。
我们先以最常见的NGINX访问日志分析开头,来一起试一试如何快速接入该类数据源。
首先可以采用如下两种方式进入数据接入向导。
- 已存在Logstore点击列表中数据接入向导图标进入
1. 选择数据类型
选择 自建软件 > NGINX。
2. 数据源设置
a.按照实际情况填写配置名称和日志路径,填写实际的log_format
信息到NGINX日志格式中。
日志服务会自动提取出相应的键名称。
注意:其中$request
会被提取为request_method
和request_uri
两个键。
b.应用到机器组
如果您之前没有创建过机器组,请先根据页面提示创建机器组。
注意:Logtail配置推送生效时间最长需要3分钟,请耐心等待
3. 查询分析 & 可视化
确保日志机器组心跳正常的情况下,可以通过点击右侧预览按钮获取到采集上来的数据
日志服务提供预设的数据键名称以便分析使用,可以选择实际数据键名称(根据预览数据生成)和默认数据键名称形成映射关系,nginx访问日志提供的预设数据键如下:
body_bytes_sent
bytes_sent
connection
connection_requests
msec
status
time_iso8601
time_local
content_length
content_type
host
hostname
remote_addr
remote_port
remote_user
request_length
request_method
request_time
upstream_response_time
request_uri
scheme
server_addr
server_name
server_port
server_protocol
http_user_agent
http_referer
各数据键释义可参考NGINX相关文档
点击下一步,日志服务会为您设置好索引属性并创建nginx-dashboard
仪表盘以供分析使用。
3.1 分析访问日志
建立好仪表盘之后我们就可以快速分析访问日志了,可以通过左侧导航仪表盘进入分析页面。
- PV/UV统计(pv_uv)
统计最近一天的PV数和UV数。
统计语句:
* | select approx_distinct(remote_addr) as uv ,
count(1) as pv ,
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 1000
- 热点访问页面统计(top_page)
统计最近一天访问最多的20个页面。
统计语句:
* | select count(1) as pv,
split_part(request_uri,'?',1) as path
group by split_part(request_uri,'?',1)
order by pv desc
limit 20
- 请求方法统计(http_method_percentage)
统计最近一天各种请求方法的占比。
统计语句:
* | select count(1) as pv,
request_method
group by request_method
- http状态码统计(http_status_percentage)
统计最近一天各种http状态码的占比。
统计语句:
* | select count(1) as pv,
status
group by status
- 客户端类型统计(user_agent)
统计最近一天各种浏览器的占比。
统计语句:
* | select count(1) as pv,
case when http_user_agent like '%Android%' then 'Android'
when http_user_agent like '%iPhone%' then 'iOS' else 'unKnown' end as http_user_agent
group by case when http_user_agent like '%Android%' then 'Android'
when http_user_agent like '%iPhone%' then 'iOS' else 'unKnown' end
order by pv desc
limit 10
- 来源页面统计(top_10_referer)
统计最近一天referer来源于不同域名前十的占比。
统计语句:
* | select count(1) as pv,
http_referer
group by http_referer
order by pv desc
4. 投递 & ETL
除此之外还提供投递到MaxCompute(原ODPS)、OSS以及ETL服务,有兴趣的同学可参考对应帮助链接
总结
日志服务数据接入向导(Wizard)志在帮助用户快速接入各种日志场景,NGINX访问日志只是其中很小的一部分,各类数据源的接入也在不断更新,请拭目以待把~
如有更多疑问欢迎加钉钉群号:11775223