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

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 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日志并进行多维度分析。
相关文章
|
22天前
|
运维 监控 应用服务中间件
LNMP详解(十五)——Nginx日志分析实战
LNMP详解(十五)——Nginx日志分析实战
24 0
|
23天前
|
运维 应用服务中间件 Shell
LNMP详解(十六)——Nginx日志切割
LNMP详解(十六)——Nginx日志切割
21 5
|
2月前
|
存储 JSON 应用服务中间件
Higress的日志收集中,底层用的是Envoy,可不可以实现类似NGINX的rsyslog发送?
【2月更文挑战第30天】Higress的日志收集中,底层用的是Envoy,可不可以实现类似NGINX的rsyslog发送?
19 2
|
3天前
|
弹性计算 应用服务中间件 Shell
切割 Nginx 日志文件
【4月更文挑战第28天】
11 0
|
2天前
|
弹性计算 应用服务中间件 Shell
切割Nginx 日志文件
【4月更文挑战第29天】
9 1
|
22天前
|
存储 应用服务中间件 nginx
nginx日志定时切割 按年月日
nginx日志定时切割 按年月日
13 0
|
22天前
|
网络协议 应用服务中间件 Linux
centos7 Nginx Log日志统计分析 常用命令
centos7 Nginx Log日志统计分析 常用命令
40 2
|
23天前
|
运维 监控 应用服务中间件
LNMP详解(十四)——Nginx日志详解
LNMP详解(十四)——Nginx日志详解
26 2
|
1月前
|
存储 监控 数据可视化
Nginx+Promtail+Loki+Grafana Nginx日志展示
通过这些步骤,你可以将Nginx的日志收集、存储、查询和可视化整合在一起。这样,你就可以在Grafana中轻松地创建和展示Nginx日志的图表和面板。
33 3
|
22天前
|
安全 Linux 网络安全
/var/log/secure日志详解
Linux系统的 `/var/log/secure` 文件记录安全相关消息,包括身份验证和授权尝试。它涵盖用户登录(成功或失败)、`sudo` 使用、账户锁定解锁及其他安全事件和PAM错误。例如,SSH登录成功会显示"Accepted password",失败则显示"Failed password"。查看此文件可使用 `tail -f /var/log/secure`,但通常只有root用户有权访问。
67 4