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

第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选项。

时间: 2024-09-17 04:16:03

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

《ELK Stack权威指南(第2版)》一导读

Preface前 言 <ELK Stack权威指南>第1版面世之后的这一年多时间里,ELK Stack在Elastic.co公司以及社区的共同努力下飞速发展.国内外都出现了不少基于ELK Stack实现的日志分析产品和创业公司.ELK Stack已经成为DevOps技术栈中必不可缺少的一个部分,较大型的互联网公司甚至已经配备有专职的ELK Stack管理团队. 对于并不精通ELK Stack技术及其发展历史的人来说,过去复杂的版本对应是新手的第一道门槛.最近全新更新的ELK Stack各组件,

《ELK Stack权威指南 》第2章 插件配置

本节书摘来自华章出版社<ELK Stack权威指南 >一书中的第1章,第2节,作者饶琛琳,更多章节内容可以访问"华章计算机"公众号查看. 插 件 配 置 插件是Logstash最大的特色.各种不同的插件源源不断地被创造出来,发布到社区中供大家使用.本章会按照插件的类别,对一般场景下的一些常用插件做详细的配置和用例介绍.本章介绍的插件包括:1)输入插件.基于shipper端场景,主要介绍STDIN.TCP.File等插件.2)编解码插件.编解码通常是会被遗忘的环节,但是运用好

《ELK Stack权威指南 》第3章 场景示例

本节书摘来自华章出版社<ELK Stack权威指南 >一书中的第1章,第3节,作者饶琛琳,更多章节内容可以访问"华章计算机"公众号查看. 场 景 示 例 前面虽然介绍了几十个Logstash插件的常见配置项,但是过多的选择下,如何组合使用这些插件,依然是一部分用户的难题.本章将列举一些最常见的日志场景,演示针对性的组件搭配,希望能给读者带来启发. 本章介绍的场景包括:Nginx访问日志.Nginx错误日志.Postfix日志.Ossec日志.Windows系统日志.Java

《ELK Stack权威指南(第2版)》一2.3 过滤器配置

2.3 过滤器配置 有丰富的过滤器插件,是Logstash威力如此强大的重要因素.名为过滤器,其实提供的不单单是过滤的功能.下面我们就会重点介绍几个插件,它们扩展了进入过滤器的原始数据,进行复杂的逻辑处理,甚至可以无中生有地添加新的Logstash事件到后续的流程中去! 2.3.1 date时间处理 之前章节已经提过,logstash-filter-date插件可以用来转换你的日志记录中的时间字符串,变成LogStash::Timestamp对象,然后转存到@timestamp字段里. 因为在稍

《ELK Stack权威指南(第2版)》一第一部分 Part 1

第一部分 Part 1 Logstash 第1章 入门示例 第2章 插件配置 第3章 场景示例 第4章 性能与监控 第5章 扩展方案 第6章 Logstash源码解析 第7章 插件开发 第8章 Beats     Logstash is a tool for managing events and logs. You can use it to collect logs, parse them, and store them for later use (like, for searching)

《ELK Stack权威指南(第2版)》一 2.2 编解码配置

2.2 编解码配置 Codec是Logstash从1.3.0版开始新引入的概念(Codec来自Coder/decoder两个单词的首字母缩写). 在此之前,Logstash只支持纯文本形式输入,然后以过滤器处理它.但现在,我们可以在输入期处理不同类型的数据,这全是因为有了Codec设置. 所以,这里需要纠正之前的一个概念.Logstash不只是一个input | filter | output的数据流,而是一个input | decode | filter | encode | output的数

《ELK Stack权威指南(第2版)》一1.1 下载安装

第1章 入 门 示 例 什么是Logstash?为什么要用Logstash?怎么用Logstash?这是本章将要介绍的内容.本章从最基础的知识着手,从以下几步介绍Logstash的必备知识.1)下载安装.介绍Logstash软件的多种安装部署方式,并给出推荐的方式.2)初次运行.通过Hello World示例,演示Logstash最简单的运用,解释其逻辑上的基础原理.3)配置语法.介绍Logstash的DSL设计,Logstash命令的运行参数.4)插件安装.灵活和丰富的插件是Logstash最

《ELK Stack权威指南(第2版)》一 3.4 Ossec日志

3.4 Ossec日志 Ossec是一款开源的多平台入侵检测系统.将Ossec的监测报警信息转发到ELK中,无疑可以极大地帮助我们快速可视化安全事件.本节介绍Ossec与Logstash的结合方式. 3.4.1 配置所有Ossec agent采用syslog输出 配置步骤如下: 3.4.3 推荐Kibana仪表盘 社区已经有人根据Ossec的常见需求制作了仪表盘,可以直接从Kibana 3页面加载使用,示例如图3-1所示. 仪表盘的JSON文件见:https://github.com/magen

《ELK Stack权威指南(第2版)》一1.3 配置语法

1.3 配置语法 Logstash社区通常习惯用Shipper.Broker和Indexer来描述数据流中不同进程各自的角色,如图1-2所示. 不过我见过很多运用场景里都没有用Logstash作为Shipper,或者说没有用Elasticsearch作为数据存储,也就是说也没有Indexer.所以,我们其实不需要这些概念.只需要学好怎么使用和配置Logstash进程,然后把它运用到你的日志管理架构中最合适它的位置就够了. 1.3.1 语法 Logstash设计了自己的DSL,有点像Puppet的