日志服务-15分钟搞定NGINX访问日志分析

本文涉及的产品
对象存储 OSS,20GB 3个月
阿里云盘企业版 CDE,企业版用户数5人 500GB空间
日志服务 SLS,月写入数据量 50GB 1个月
简介: 15分钟能做什么? 可能一本书只能看一个章节,慢慢品一杯咖啡才喝了一半,或许玩一把炉石传说。 日志服务11月份发布数据接入向导功能,如果平均一首歌的时间按3分钟计算,那么给我们5首歌的时间,我们一起来通过日志服务的数据接入向导快速玩转NGINX访问日志分析~

15分钟能做什么?

可能一本书只能看一个章节,慢慢品一杯咖啡才喝了一半,或许玩一把炉石传说。

日志服务11月份发布数据接入向导功能,如果平均一首歌的时间按3分钟计算,那么给我们5首歌的时间,我们一起来通过日志服务的数据接入向导快速玩转NGINX访问日志分析~

数据接入向导(Wizard)

一. 概述

日志服务在12月份推出了数据接入向导(Wizard)功能,快速完成数据的采集、存储、分析、离线投递, 降低用户使用日志服务门槛,目前支持的数据源以及支持配置如下:

数据源 Logtail采集配置 索引设置 自动生成仪表盘 离线投递
NGINX
MNS 消息服务
API网关
文本文件
syslog
Web Tracking
API/SDK
log4jAppender
Producer

二. 使用指引

如果你还没有使用过阿里云日志服务功能,可以参考五分钟快速入门

我们先以最常见的NGINX访问日志分析开头,来一起试一试如何快速接入该类数据源。

首先可以采用如下两种方式进入数据接入向导。

create_enter.png

  • 已存在Logstore点击列表中数据接入向导图标进入

has_enter.png

1. 选择数据类型

选择 自建软件 > NGINX

datasource.png

2. 数据源设置

a.按照实际情况填写配置名称和日志路径,填写实际的log_format信息到NGINX日志格式中。

log_format.png

日志服务会自动提取出相应的键名称。

注意:其中$request会被提取为request_methodrequest_uri两个键。

log_format2.png

b.应用到机器组

如果您之前没有创建过机器组,请先根据页面提示创建机器组

注意:Logtail配置推送生效时间最长需要3分钟,请耐心等待

3. 查询分析 & 可视化

确保日志机器组心跳正常的情况下,可以通过点击右侧预览按钮获取到采集上来的数据

preview.png

日志服务提供预设的数据键名称以便分析使用,可以选择实际数据键名称(根据预览数据生成)和默认数据键名称形成映射关系,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相关文档

indexs.png

点击下一步,日志服务会为您设置好索引属性并创建nginx-dashboard仪表盘以供分析使用。

3.1 分析访问日志

建立好仪表盘之后我们就可以快速分析访问日志了,可以通过左侧导航仪表盘进入分析页面。

image.png

  • PV/UV统计(pv_uv)

统计最近一天的PV数和UV数。

pv_uv.png

统计语句:

 * | 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
AI 代码解读
  • 热点访问页面统计(top_page)

统计最近一天访问最多的20个页面。

top_page.png

统计语句:

* | 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
AI 代码解读
  • 请求方法统计(http_method_percentage)

统计最近一天各种请求方法的占比。

http_method.png

统计语句:

* | select count(1) as pv,
        request_method
        group by request_method
AI 代码解读
  • http状态码统计(http_status_percentage)

统计最近一天各种http状态码的占比。

http_status.png

统计语句:

* | select count(1) as pv,
        status
        group by status
AI 代码解读
  • 客户端类型统计(user_agent)

统计最近一天各种浏览器的占比。

UA.png

统计语句:

* | 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
AI 代码解读
  • 来源页面统计(top_10_referer)

统计最近一天referer来源于不同域名前十的占比。

referer.png

统计语句:

* | select count(1) as pv,
        http_referer
        group by http_referer
        order by pv desc
AI 代码解读

4. 投递 & ETL

除此之外还提供投递到MaxCompute(原ODPS)、OSS以及ETL服务,有兴趣的同学可参考对应帮助链接

shipper.png

总结

日志服务数据接入向导(Wizard)志在帮助用户快速接入各种日志场景,NGINX访问日志只是其中很小的一部分,各类数据源的接入也在不断更新,请拭目以待把~

c612daad0fa6b00f612323f0d400f416.gif


如有更多疑问欢迎加钉钉群号:11775223
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
沐自
+关注
目录
打赏
0
3
3
3
3030
分享
相关文章
ELK实现nginx、mysql、http的日志可视化实验
通过本文的步骤,你可以成功配置ELK(Elasticsearch, Logstash, Kibana)来实现nginx、mysql和http日志的可视化。通过Kibana,你可以直观地查看和分析日志数据,从而更好地监控和管理系统。希望这些步骤能帮助你在实际项目中有效地利用ELK来处理日志数据。
185 90
MiniMax GenAI 可观测性分析 :基于阿里云 SelectDB 构建 PB 级别日志系统
基于阿里云SelectDB,MiniMax构建了覆盖国内及海外业务的日志可观测中台,总体数据规模超过数PB,日均新增日志写入量达数百TB。系统在P95分位查询场景下的响应时间小于3秒,峰值时刻实现了超过10GB/s的读写吞吐。通过存算分离、高压缩比算法和单副本热缓存等技术手段,MiniMax在优化性能的同时显著降低了建设成本,计算资源用量降低40%,热数据存储用量降低50%,为未来业务的高速发展和技术演进奠定了坚实基础。
MiniMax GenAI 可观测性分析 :基于阿里云 SelectDB 构建 PB 级别日志系统
Tomcat log日志解析
理解和解析Tomcat日志文件对于诊断和解决Web应用中的问题至关重要。通过分析 `catalina.out`、`localhost.log`、`localhost_access_log.*.txt`、`manager.log`和 `host-manager.log`等日志文件,可以快速定位和解决问题,确保Tomcat服务器的稳定运行。掌握这些日志解析技巧,可以显著提高运维和开发效率。
72 13
阿里云个人博客外网访问中断应急指南:从安全组到日志的七步排查法
1. 检查安全组配置:确认阿里云安全组已开放HTTP/HTTPS端口,添加规则允许目标端口(如80/443),授权对象设为`0.0.0.0/0`。 2. 本地防火墙设置:确保服务器防火墙未阻止外部流量,Windows启用入站规则,Linux检查iptables或临时关闭防火墙测试。 3. 验证Web服务状态:检查Apache/Nginx/IIS是否运行并监听所有IP,使用命令行工具确认监听状态。 4. 测试网络连通性:使用外部工具和内网工具测试服务器端口是否开放,排除本地可访问但外网不可的问题。 5. 排查DNS解析:确认域名A记录指向正确公网IP,使用`ping/nslookup`验证解析正
45 2
让跨 project 联查更轻松,SLS StoreView 查询和分析实践
让跨 project 联查更轻松,SLS StoreView 查询和分析实践
简单聊聊MySQL的三大日志(Redo Log、Binlog和Undo Log)各有什么区别
在MySQL数据库管理中,理解Redo Log(重做日志)、Binlog(二进制日志)和Undo Log(回滚日志)至关重要。Redo Log确保数据持久性和崩溃恢复;Binlog用于主从复制和数据恢复,记录逻辑操作;Undo Log支持事务的原子性和隔离性,实现回滚与MVCC。三者协同工作,保障事务ACID特性。文章还详细解析了日志写入流程及可能的异常情况,帮助深入理解数据库日志机制。
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
图解MySQL【日志】——Redo Log
Redo Log(重做日志)是数据库中用于记录数据页修改的物理日志,确保事务的持久性和一致性。其主要作用包括崩溃恢复、提高性能和保证事务一致性。Redo Log 通过先写日志的方式,在内存中缓存修改操作,并在适当时候刷入磁盘,减少随机写入带来的性能损耗。WAL(Write-Ahead Logging)技术的核心思想是先将修改操作记录到日志文件中,再择机写入磁盘,从而实现高效且安全的数据持久化。Redo Log 的持久化过程涉及 Redo Log Buffer 和不同刷盘时机的控制参数(如 `innodb_flush_log_at_trx_commit`),以平衡性能与数据安全性。
39 5
图解MySQL【日志】——Redo Log
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
1360 31
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板

云存储

+关注

相关产品

  • 日志服务