`
qindongliang1922
  • 浏览: 2172775 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:117139
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:125462
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:59581
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:71054
社区版块
存档分类
最新评论

分布式日志收集之Logstash 笔记(二)

    博客分类:
  • ELK
阅读更多

今天是2015年11月06日,早上起床,北京天气竟然下起了大雪,不错,最近几年已经很少见到雪了,想起小时候冬天的样子,回忆的影子还是历历在目。

进入正题吧,上篇介绍了Logstash的基础知识和入门demo,本篇介绍几个比较常用的命令和案例
通过上篇介绍,我们大体知道了整个logstash处理日志的流程:
input  => filter => output

除了上面几个基础命令,还有ruby,mutate,gork,codes几个命令比较常用:

在线gork正则的地址:http://grokdebug.herokuapp.com/

Logstash基础正则地址:https://github.com/elastic/logstash/blob/v1.4.2/patterns/grok-patterns

如果你是做运维的,那么很幸运,内置的120多个正则,对运维人员来说非常方面,比如常见的Apache的log格式,Nginx的log格式
上面的正则库都有成型的正则式,省去了自己编写正则一大部分的工作。

如果你是做开发的,那么稍微麻烦点,开发需要面对各种业务log+系统log,这时候,掌握gork用法,使用正则提取任意内容,变得比较重要了,不过相信大部分人都会一些基础的正则,所以还是比较轻松的。

下面看几个案例:

案例(一)使用gork提取Solr搜索的log里面的一些字段内容:

例子数据(注意这是一行数据):

INFO  - 2015-11-03 06:10:53.106; [   company] org.apache.solr.core.SolrCore; [company] webapp=/solr path=/select params={mm=100%25&sort=score+desc,regCapital+desc,foundDate+asc,cpyNamePy+asc&start=0&q=+cpyName:兰州顶津食品有限公司++OR+sname:"兰州顶津食品有限公司"^10+OR+oldName:兰州顶津食品有限公司
+&wt=javabin&fq=&version=2&rows=10&defType=edismax} hits=0 status=0 QTime=2 


使用gork正则语法+内置正则,能够提取出,log级别,UTC时间,查询关键词等等内容

log级别:
%{LOGLEVEL:loglevel} 
查询时间:
%{TIMESTAMP_ISO8601:time};
查询关键词  :
cpyName:(?<kw>.*)\+\+
命中数量 :
hits=(?<hits>\d+)
查询时间
QTime=(?<qtime>\d+)
查询偏移开始:
start=(?<start>\d+)
返回数量:
rows=(?<rows>\d+)


案例(二)使用filter-date插件提取日志文件里面的时间,覆盖logstash自己默认生成log时的时间
官网介绍:https://www.elastic.co/guide/en/logstash/current/plugins-filters-date.html
这个案例也比较常见,因为我们需要的时间,肯定是log日志里面记录的时间,而不是logstash接入时的那个时间,保证时间正确,才能在
Kibana里面正确的展示,关于UTC时间的+8的问题,这里就不说了,搜索时自己可以控制搜到正确的内容即可

内容如下截图,写了一个固定的时间:





结果如下图,已经被转换成UTC时间







案例(三)使用ruby内嵌代码,将一个yyyy-MM-dd HH:mm:ss格式的日期,转换成long时间戳

接着案例二的代码,再其filter里面再加入如下一段代码:




运行后,再看结果:



写个程序验证是否正确,发现没有问题:






如果会点JRuby或者Ruby语法,来使用Logstash则可以做更多的自定义的处理任务

案例(四)使用codec+multiline来处理跨行的日志

什么场景下,需要使用multiline插件呢? 最常见的就是我们的log4j里面的记录的java程序发生异常时,经常
会抛出一大堆异常,如下:






注意这么多行日志,从业务角度来讲,它是一行的,如果默认我们不做任何处理,logstash就会把它解析成多个事件,这样以来
基本上偏离了我们预期的设想,那么该如何处理呢?

方法(1):
在input阶段的编码过程中,加入正则判断:






方法(2):
还是在input阶段,但是使用的触发模式,直到遇到下一行日志前,把这一行与下一行之间的所有内容都当成是一行,这种做法比较简单,优点时在性能与准确度上可能会比上一个方法好,但是缺点是,必须有下一行日志产生,当前的这一行日志,才能被收集完毕 !







参考文章:http://blog.sematext.com/2015/05/26/handling-stack-traces-with-logstash/


案例(五)使用mutate+gsub来去除一些字段里面的换行符

 mutate {
    gsub => [ "message", "\r", "" ]
  }

gork过滤例子:
input { file { path => "/var/log/http.log" } }
filter {
grok {
match => { "message" => "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}" }
}
}


最后欢迎大家扫码关注微信公众号:我是攻城师(woshigcs),我们一起学习,进步和交流!(woshigcs)
本公众号的内容是有关搜索和大数据技术和互联网等方面内容的分享,也是一个温馨的技术互动交流的小家园,有什么问题随时都可以留言,欢迎大家来访!





  • 大小: 14.8 KB
  • 大小: 7.4 KB
  • 大小: 6.5 KB
  • 大小: 8.6 KB
  • 大小: 26.4 KB
  • 大小: 79.4 KB
  • 大小: 15.6 KB
  • 大小: 7.9 KB
1
2
分享到:
评论

相关推荐

    Java分布式应用学习笔记

    使用如ELK Stack(Elasticsearch、Logstash、Kibana)或Prometheus + Grafana等工具,可以帮助收集、分析和可视化分布式系统的性能数据和日志信息。 总之,Java分布式应用的学习涵盖了从基础的远程调用到复杂的...

    分布式商城项目笔记-乐优商城

    11. **监控与日志**:通过ELK(Elasticsearch、Logstash、Kibana)或Prometheus+Grafana等工具实现系统性能监控和日志分析,以便及时发现和解决问题。 12. **测试策略**:单元测试、集成测试和压力测试是保证系统...

    构建JAVA大型分布式电商项目实战高并发集群分布式系统架构PDF+视频.rar

    - 日志收集(如Logstash)和分析(如ELK Stack)对于故障排查至关重要。 - 监控工具(如Prometheus、Grafana)实时监控系统性能指标。 10. **持续集成/持续部署(CI/CD)** - Jenkins、GitLab CI/CD等工具实现自动...

    es..kibana相关笔记-.zip

    Logstash作为数据收集和预处理工具,负责从各种数据源(如系统日志、网络设备等)采集数据,进行过滤、转换,并将其发送到Elasticsearch进行存储。Logstash配置文件由输入(Input)、过滤(Filter)和输出(Output)...

    logstash kinban elasticSearch完整版

    通过深入学习和实践,你可以了解如何搭建ELK环境,如何使用Logstash进行日志收集和预处理,如何在Elasticsearch中高效地存储和查询数据,以及如何利用Kibana进行数据可视化分析。这些技能对于任何需要处理大规模日志...

    资料包-最全ELK+项目【Elasticsearch Logstash Kibana】

    通过将Logstash收集、处理和传输日志,Elasticsearch存储和搜索这些日志,以及Kibana提供可视化的界面,ELK Stack为用户提供了一整套强大的日志分析能力。这种组合尤其适合于大型分布式系统的日志管理和监控,有助于...

    资料-Java日志.zip

    在大型系统中,日志数据可能需要通过ELK(Elasticsearch, Logstash, Kibana)堆栈、Graylog等工具进行集中收集、索引和分析,以便进行故障排查和系统监控。 9. **日志安全** 除了技术层面,日志还涉及安全问题。...

    Linux防护与群集笔记.zip

    第十二章 ELK日志分析系统笔记:ELK是由Elasticsearch、Logstash和Kibana组成的日志分析解决方案。这部分内容可能包括ELK的安装、日志收集与处理(通过Logstash)、数据存储(Elasticsearch)和可视化展示(Kibana)...

    第二代微服务电商项目实战笔记

    2. **ELK (Elasticsearch, Logstash, Kibana)**: 日志收集、分析和展示系统,便于监控和排查问题。 3. **LCN**: 分布式事务解决方案,确保在分布式环境下数据的一致性。 4. **Zookeeper & Redis**: 用于实现分布式...

    大觅网项目完整笔记.zip

    Logstash负责收集和处理来自不同来源的日志,Elasticsearch则作为强大的搜索引擎和实时数据分析引擎,而Kibana则提供交互式的界面,用于展示和探索这些数据。Kafka作为一个分布式流处理平台,用于构建实时数据管道和...

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

    Logstash是数据收集、处理和转发工具,它可以从多种数据源接收日志数据,进行过滤和转换,然后发送到Elasticsearch。在Logstash中,你可以自定义配置文件(如logstash.conf)来指定输入、过滤器和输出插件。本文档还...

    编程不良人的SpringCloud笔记和资料,全套

    Sleuth是一个分布式追踪解决方案,它为服务之间的调用提供日志跟踪,可与Zipkin或ELK(Elasticsearch、Logstash、Kibana)等工具配合,帮助分析请求在系统中的流转过程。 11. **Spring Cloud Stream消息驱动** ...

    基于Springboot的学生读书笔记共享系统源码数据库.doc

    - **日志管理**:通过ELK(Elasticsearch、Logstash、Kibana)等工具收集、分析日志信息。 ### 四、总结与展望 #### 4.1 系统优势 - **高效性**:通过Spring Boot框架的优化,提高了系统的响应速度。 - **易用性**...

    Elasticsearch核心技术与实战 笔记

    - **定义**:Logstash是一种服务器端数据处理管道,主要负责收集、解析和转发日志数据。 - **工作原理**: - 输入插件(Input Plugins):从不同来源收集数据。 - 过滤插件(Filter Plugins):处理和转换数据。 ...

    ElasticSearch_Windows实现搜索学习笔记.pdf

    6. 日志数据分析:配合Logstash收集和分析日志,ELK(Elasticsearch、Logstash、Kibana)组合广泛应用。 7. 商品价格监控:通过订阅,当商品价格低于特定阈值时,发送提醒。 8. BI系统:商业智能分析,如用户消费...

    SpringCloud微服务架构笔记-共四部分四个PDF文件

    - 监控与日志:使用Spring Boot Actuator监控服务状态,结合ELK(Elasticsearch、Logstash、Kibana)或Prometheus+Grafana进行日志管理和可视化。 本套笔记全面覆盖了SpringCloud微服务架构的关键知识点,从理论到...

    Elasticsearch笔记.rar

    2. **Logstash**:日志收集和处理工具,可将各种日志数据导入Elasticsearch。 3. **Beats**:轻量级数据发送代理,包括Filebeat、Metricbeat等,用于从不同源收集数据。 4. **Ingest Node**:数据预处理功能,可以...

    Elastic Stack.zip

    **Logstash** 是一个数据收集和处理工具,能够从各种数据源(如日志文件、数据库、网络设备等)采集数据,进行过滤、转换,并将处理后的数据发送到Elasticsearch、Kibana等目标。Logstash的强大在于其插件丰富,可以...

    618节日end-mast开发笔记

    9. **异常处理与日志管理**:良好的异常处理机制和日志管理系统(如Logstash、Elasticsearch、Kibana ELK栈)有助于问题排查和系统维护。 10. **安全与隐私**:在处理用户数据时,安全性是核心关注点。开发者需要...

    【大数据入门笔记系列】第一节 大数据常用组件

    Flume是收集、聚合和传输大量日志数据的分布式服务,而Logstash则是一个数据收集引擎,可以将不同来源的数据整合并标准化到目标存储。Zookeeper作为一个协调服务,负责管理分布式应用程序的配置信息和同步任务。...

Global site tag (gtag.js) - Google Analytics