Nginx 日志分析(二)| 学习笔记

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
日志服务 SLS,月写入数据量 50GB 1个月
简介: 快速学习 Nginx 日志分析。

开发者学堂课程【DevOps 日志分析实战 :Nginx 日志分析(二)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/736/detail/13102


Nginx 日志分析(二)


二、code 码

注意到 http 请求中有一个 code 码,对于每一次请求表达其返回的状态,每一个 code 码有一份其真实的含义。

1.code 码的映射表为:

image.png

针对不同的 code 码,有不同的类以及其类别的英文说明。

2.http code 状态码映射

可以将该映射列表与日志 join 一起做一个日志孵化的工作,就是将该字段status扩展,将其更多信息带入日志中,方便后面做更多的分析,例如可以按照 code 码的分类的各类请求做处理,或者聚合然后告警。

孵化会用到三种算子,分别是 e_table_map(*表格对象*,” 源字段映射列表”,*目标字段列表*)(第一个参数需要传入一个表格对象,该表格对象可以通过下面两个函数来获得,该函数用来做字段富化,类似于 sql 里 join 功能),tab_parse_csv(CSV 文本数据,sep=’,’,quote=’*’)(用来把 csv 文件解析成 table 对象),res_oss_file(支持从 oss 将 csv 文件拉取,里面的参数是 oss 访问的一些参数)

3.写好的 http 状态码映射:

e_table _map(

tab_parse_csv(

res_oss_file(endpoint="oss-cn-shanghai.aliyuncs.com",

ak _id=",ak_ key=",

bucket="ali-sls-etl-test",

file="http_code.csv" , format="text2),

[("status” , code")],

[(“alias” ," http_code_alias").

(“description"," http_code_desc"),

( “category “," http_code_category")])

最外层使用 e_table_map 做孵化,第一个参数是tab 对象,该tab对象来自于 tab_parse_csv 的内容,其 csv 的内容来自 oss,有oss 访问的 endpoint、id、key、bucket,还有对应的 csv 文件以及其文件的格式。

第二个参数表示源字段映射关系,日志中状态码的字段是 status,在Servers Event 文件中名字为 code。通过 status code 映射就可以将需要去做孵化的字段做一些关联。第三个参数是目标字段映射,其中 alias、descriptioncategory分别对应表中的 alias、description、category这三个字段。这三个字段在孵化后可以取新的名字(也可以使用原始的名字)。使用快速预览时遇到孵化的场景不会真实的去拉取 oss 的文件,所以在这时快速预览会失败。

4.演示:

image.png

可以直接贴入维表数据做模拟(部分):

image.png

然后再执行一次快速预览,无报错:

image.png

有三个新的字段映射出来:http_code_alias

http_code_catogory、

http_code_dasc。

可以再进行模拟改变其中的 code ,在快速预览后的数据中可以改变,在快速预览时数据来自一个一个的 dict ,可以改变其中的301改为502,然后查看:

image.png

其 status 变为为502,http_code_alias 变为5xx

真实的连接 oss ,使用高级预览的方式(比快速预览更慢):

image.png

看到其 code 码已经被映射出来(注意:使用高级预览不能用模拟数据做修改)

注意:id 和 key 填为空,因为 http_code.csv 这个文件是 public可读的,如果是私有的权限则需要设置相应的 id 和 key。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
29天前
|
PyTorch 算法框架/工具
Pytorch学习笔记(七):F.softmax()和F.log_softmax函数详解
本文介绍了PyTorch中的F.softmax()和F.log_softmax()函数的语法、参数和使用示例,解释了它们在进行归一化处理时的作用和区别。
305 1
Pytorch学习笔记(七):F.softmax()和F.log_softmax函数详解
|
29天前
|
数据可视化
Tensorboard可视化学习笔记(一):如何可视化通过网页查看log日志
关于如何使用TensorBoard进行数据可视化的教程,包括TensorBoard的安装、配置环境变量、将数据写入TensorBoard、启动TensorBoard以及如何通过网页查看日志文件。
162 0
|
3月前
|
jenkins 持续交付
jenkins学习笔记之三:使用jenkins共享库实现日志格式化输出
jenkins学习笔记之三:使用jenkins共享库实现日志格式化输出
jenkins学习笔记之三:使用jenkins共享库实现日志格式化输出
|
3月前
|
应用服务中间件 nginx
nginx error日志 client intended to send too large body: 1434541 bytes 如何处理?
【8月更文挑战第27天】nginx error日志 client intended to send too large body: 1434541 bytes 如何处理?
246 6
|
3月前
|
应用服务中间件 Linux nginx
在Linux中,如何统计ip访问情况?分析 nginx 访问日志?如何找出访问页面数量在前十位的ip?
在Linux中,如何统计ip访问情况?分析 nginx 访问日志?如何找出访问页面数量在前十位的ip?
|
3月前
|
存储 监控 应用服务中间件
查看nginx日志文件
器性能和提高网站可用性。掌握日志文件的路径、查看方法和基本分析技能对于任何服务器管理员来说都是必备技能。
126 1
|
3月前
|
存储 Ubuntu 应用服务中间件
如何在 Ubuntu VPS 上配置 Nginx 的日志记录和日志轮转
如何在 Ubuntu VPS 上配置 Nginx 的日志记录和日志轮转
32 4
|
3月前
|
存储 应用服务中间件 nginx
部署ELK+filebeat收集nginx日志
部署ELK+filebeat收集nginx日志
123 0
部署ELK+filebeat收集nginx日志
|
3月前
|
应用服务中间件 Linux nginx
Nginx log 日志文件较大,按日期生成 实现日志的切割
Nginx log 日志文件较大,按日期生成 实现日志的切割
626 0
|
3月前
|
应用服务中间件 nginx
[nginx]日志中记录自定义请求头
[nginx]日志中记录自定义请求头
下一篇
无影云桌面