《ELK Stack权威指南(第2版)》一3.1 Nginx访问日志

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

本节书摘来自华章出版社《ELK Stack权威指南(第2版)》一书中的第3章,第3.1节,作者 饶琛琳  更多章节内容可以访问云栖社区“华章计算机”公众号查看。 


第3章

场 景 示 例

前面虽然介绍了几十个Logstash插件的常见配置项,但是过多的选择下,如何组合使用这些插件,依然是一部分用户的难题。本章将列举一些最常见的日志场景,演示针对性的组件搭配,希望能给读者带来启发。

本章介绍的场景包括:Nginx访问日志、Nginx错误日志、Postfix日志、Ossec日志、Windows系统日志、Java日志、MySQL慢查询日志、Docker容器日志。

3.1 Nginx访问日志

访问日志处理分析绝对是使用ELK stack时最常见的需求。默认的处理方式下,性能和精确度都不够好。本节会列举对Nginx访问日志的几种不同处理方式,并阐明其优劣。

3.1.1 grok处理方式

Logstash默认自带了Apache标准日志的grok正则表达式:


3.1.2 split处理方式

Nginx日志因为部分变量中内含空格,所以很多时候只能使用%{QS}正则来做分隔,性能和细度都不太好。如果能自定义一个比较少见的字符作为分隔符,那么处理起来就简单多了。假设定义的日志格式如下:



3.1.3 JSON格式

自定义分隔符虽好,但是配置写起来毕竟复杂很多。其实对Logstash来说,Nginx日志还有另一种更简便的处理方式,就是自定义日志格式时,通过手工拼写直接输出成JSON 格式:


这里采用多个mutate插件,是因为upstreamtime可能有多个数值,所以先切割成数组以后,再分别转换成浮点型数值。而在mutate中,convert函数的执行优先级高于split函数,所以只能分开两步写。mutate内各函数的优先级顺序,之前2.3.8节有详细说明,读者可以返回去阅读。

3.1.4 syslog方式发送

Nginx从1.7版开始,加入了syslog支持,Tengine则更早。这样,我们可以通过syslog直接发送日志。Nginx上的配置如下:

access_log syslog:server=unix:/data0/rsyslog/nginx.sock locallog;

或者直接发送给远程Logstash机器:

access_log syslog:server=192.168.0.2:5140,facility=local6,tag=nginx-access,

    severity=info logstashlog;

默认情况下,Nginx将使用local7.info等级,以nginx为标签发送数据。注意,采用syslog发送日志的时候,无法配置buffer=16k选项。


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
19天前
|
数据可视化 关系型数据库 MySQL
ELK实现nginx、mysql、http的日志可视化实验
通过本文的步骤,你可以成功配置ELK(Elasticsearch, Logstash, Kibana)来实现nginx、mysql和http日志的可视化。通过Kibana,你可以直观地查看和分析日志数据,从而更好地监控和管理系统。希望这些步骤能帮助你在实际项目中有效地利用ELK来处理日志数据。
193 90
|
3月前
|
监控 应用服务中间件 定位技术
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
308 3
|
7月前
|
应用服务中间件 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 如何处理?
585 6
|
7月前
|
应用服务中间件 Linux nginx
在Linux中,如何统计ip访问情况?分析 nginx 访问日志?如何找出访问页面数量在前十位的ip?
在Linux中,如何统计ip访问情况?分析 nginx 访问日志?如何找出访问页面数量在前十位的ip?
|
7月前
|
存储 监控 应用服务中间件
查看nginx日志文件
器性能和提高网站可用性。掌握日志文件的路径、查看方法和基本分析技能对于任何服务器管理员来说都是必备技能。
364 1
|
应用服务中间件 nginx
Nginx 服务器中设置禁止访问文件或目录的方法
Nginx 服务器中设置禁止访问文件或目录的方法
|
应用服务中间件 nginx
|
4月前
|
缓存 应用服务中间件 网络安全
Nginx中配置HTTP2协议的方法
Nginx中配置HTTP2协议的方法
294 7
|
16天前
|
应用服务中间件 nginx
Nginx进程配置指令详解
Nginx进程配置指令主要包括:`worker_processes`设置工作进程数;`worker_cpu_affinity`绑定CPU核心;`worker_rlimit_nofile`设置最大文件描述符数量;`worker_priority`设置进程优先级;`worker_connections`设置最大连接数;`daemon`控制守护进程模式;`master_process`启用主进程模式;`pid`设置PID文件路径;`user`指定用户和组;`error_log`配置错误日志。这些指令在`nginx.conf`中配置,用于优化和控制Nginx的运行行为。
47 10
|
2月前
|
存储 应用服务中间件 Linux
nginx配置证书和私钥进行SSL通信验证
nginx配置证书和私钥进行SSL通信验证
91 4

热门文章

最新文章