`

ELK学习笔记(二)【原创】

阅读更多
ELK学习笔记(一)【原创】中,介绍了Logstash的入门,本文再对Logstash进行分析,并将日志导入ES中。
1. input
   input 有很多种, 如stdin, file, log4j 等。这里只着重分析file, 下次在分析log4j.
  
input{
  file {
		codec => multiline {
			 pattern => "^\["
			 negate => true
			 what => "previous"
			 charset => "UTF-8"		
		}
    path => ["/usr/local/apache-tomcat-gtw/logs/catalina.*"]
    start_position => "beginning"
    discover_interval => 2
    sincedb_path => "/usr/share/logstash/conf/logstash_gateway/config/tomcat_sincedb.txt"
		sincedb_write_interval => 2
  }
}

  codec 使用多行模式分割日志
  path  日志路径
  start_position  表示从头开始
  discover_interval  每两秒去扫描文件夹是否有日志文件变化
  sincedb_path  记录日志读取到第几行
  sincedb_write_interval  每两秒记录一次位置信息

2. filter
  上一篇中在filter中主要采用split对日志进行解析, 这一篇主要采用json模板来进行匹配。
 
filter {
   mutate{  
        gsub => [ "message", "\[", "" ]  
        gsub => [ "message", "]", "" ]  
        remove_field => [ "@version" ] 
   }
   grok {
       	patterns_dir => "/usr/share/logstash/conf/logstash_gateway/logstash-patterns"
       	match => {
			"message" => "%{DATETIME:datetime} %{APP:app} %{LOGLEVEL:level} %{JAVACLASS:class} %{METHOD:method}"
		}
	}
	if [level] == 'DEBUG' {
                mutate {
                        replace => ["level_code",1000]
			convert => { 
				"level_code" => "integer" 
			}
                }
        }
	if [level] == 'INFO' {
		mutate {
			replace => ["level_code",2000]
			convert => { 
				"level_code" => "integer" 
			}
		}
	}
	if [level] == 'WARN' {
                mutate {
                        replace => ["level_code",3000]
			convert => { 
				"level_code" => "integer" 
			}            
                }               
        }    
	if [level] == 'ERROR' {
                mutate {
                        replace => ["level_code",4000]  
			convert => { 
				"level_code" => "integer" 
			}                
                }               
        }    
}

  gsub 是对message中的[]进行替换,因为[是用来多行匹配的,在日志中实际没作用。
  remove_field 移除不需要的字段 @Version字段是logstash自动加的,不需要
  grok 采用正则对日志进行匹配
  patterns_dir 正则表达式文件路径
  %{DATETIME:datetime} 表示第一个字段是时间类型,转化为datetime field。
  %{APP:app} 表示第二个字段是APP类型(自定义正则),转化为app field. 以下类推
  后面是根据日志级别,定义level_code以便报表统计
 
3.output
  分别输出到ES和控制台
output {
	elasticsearch {
      		hosts => ["192.168.3.140"]
		index => "gateway"
		template => '/usr/share/logstash/conf/logstash_gateway/template/logstash-gateway.json'
		template_name => 'logstash-gateway'
		template_overwrite => true
		flush_size => 20000
                idle_flush_time => 10
   	}
	stdout{
		codec => rubydebug
		codec => plain{charset=>"UTF-8"}
	}
}

  hosts 搜索引擎地址
  index 索引名称
  template 模板文件
  template_name 模板文件中的模板名称
  template_overwrite 设为true,当模板变更时可以更新
  flush_size 每次20000再新增索引
  idle_flush_time  超过10s,如果还没到达20000也刷新索引
 
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    ELK学习笔记1

    ELK学习笔记1

    ELK学习笔记(六)【原创】

    标题 "ELK学习笔记(六)【原创】" 暗示了这是一篇关于ELK Stack(Elasticsearch、Logstash、Kibana)的系列教程中的第六部分,主要聚焦于Logstash,一个用于数据收集、处理和转发的工具。在ELK Stack中,Logstash扮演...

    ELK学习笔记.docx elasticsearch logstash kibana 环境搭建开发

    #### 二、ELK安装 **2.1 CentOS7系统配置** - **安装iptables**:使用`yum install iptables-services`命令安装。 - **安装ifconfig**:通常CentOS7中已默认安装,若未安装,可通过`yum install net-tools`命令...

    00_ELK阅读笔记1

    【ELK阅读笔记1】- Logstash 日志处理配置详解 Logstash 是 Elastic Stack(ELK Stack)中的重要组件,负责收集、解析、过滤和转发各种日志数据。本笔记主要探讨基于 Logstash 的日志处理配置语法以及相关知识点。 ...

    ELK学习资料

    本文档是整套的elk学习资源,内容详细 ES5.0新版本特性 1.支持lucene 6.x:索引性能提升 提升25% 磁盘占用少了 2.新增sliced scroll类型:并发遍历 新增切片类型,进行并发的遍历 3.新增profile api:查询优化 4、...

    elk Elasticsearch全套学习视频,基础篇,进阶篇,第二版基于最新版本

    elk Elasticsearch全套学习视频,基础篇,进阶篇,第二版, 基于Elasticsearch最新版本 价值2000,买过下载好的分享给大家,无加密 原课程地址 ...

    ELK资料学习搭建和讲解

    ELK资料学习搭建和讲解

    elk部署笔记

    ### ELK部署笔记 #### 一、ELK概述与组件介绍 ##### 1.1 ELK Stack简介 ELK Stack(通常简称为ELK)是一个非常流行的开源工具套件,用于收集、存储、分析和展示大量日志数据。它由三个主要组件组成:Elasticsearch...

    ELK实战文档,elasticsearch学习

    【Elasticsearch 知识详解】 Elasticsearch(ES)是一种强大的开源分布式搜索引擎,它具有实时分析、全文...了解以上知识后,开发者和运维人员可以有效地利用ELK栈构建和管理日志系统,进行大数据分析,提升工作效率。

    老男孩elk日志收集上课笔记

    老男孩elk日志收集笔记

    ELK学习视频.zip

    这个"ELK学习视频.zip"压缩包包含了一系列教程,帮助用户从零开始搭建和配置一个完整的ELK环境,并结合CentOS7、Nginx、MySQL进行实践操作。 1. **CentOS7**:CentOS是一款基于RHEL(Red Hat Enterprise Linux)的...

    ELK-相关笔记内容-自己使用

    ELK-相关笔记内容-自己使用

    elk打包zip 第二部分

    **ELK Stack详解** ELK Stack,全称为Elasticsearch、Logstash和Kibana,是一种流行的开源日志分析和可视化解决方案。这个组合为收集、处理、存储、搜索和分析日志数据提供了一体化的平台,广泛应用于系统监控、...

    ELK详细搭建及使用笔记word文档

    ELK Stack,全称为Elasticsearch、Logstash和Kibana的组合,是一个强大的日志管理和分析工具。本文档详细介绍了如何在Windows环境下搭建ELK环境,并提供了相关的资源下载链接。 首先,为了运行ELK Stack,你需要...

    elk部署流程文件笔记

    elk部署流程

    ELK学习记录

    ### ELK学习记录 #### ELK配置及使用步骤详解 ELK栈,即Elasticsearch、Logstash与Kibana的组合,是当前业界广泛采用的日志管理和数据分析平台。本篇将围绕Logstash这一核心组件进行深入探讨,涵盖其基本配置、...

    elk_huawei.pdf

    elk海量存储 elk学习资料,可以看看也不是很贵.谢谢,

    ELK Stack权威指南 第2版

    第一部分“Logstash”介绍Logstash的安装与配置、场景示例、性能与测试、扩展方案、源码解析、插件开发等,第二部分“Elasticsearch”介绍Elasticsearch的架构原理、数据接口用例、性能优化、测试和扩展方案、映射与...

Global site tag (gtag.js) - Google Analytics