热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Logstash日志插件开发总结(1)

Logstash插件开发介绍本次文档一共分为3部分,分别为下面3个部分,并且会附上不同的参考文档-Logstash输入插件介绍-Filter插件开发详解

Logstash插件开发介绍

本次文档一共分为3部分,分别为下面3个部分,并且会附上不同的参考文档
- Logstash输入插件介绍
- Filter插件开发详解
- 开发过程遇到一些问题总结

logstash介绍

Logstash 是一款强大的数据处理工具,它可以实现数据传输,格式处理,格式化输出,还有强大的插件功能,常用于日志处理。其工作流程如下:

Logstash工作流程

它处理数据有3个阶段

  • Input
  • Filter
  • Output
  • input 数据输入端,可以接收来自任何地方的源数据

  • Filter 数据中转层,主要进行格式处理,数据类型转换、数据过滤、字段添加,修改等,常用的过滤器如下

  • output 是logstash工作的最后一个阶段,负责将数据输出到指定位置,兼容大多数应用

安装下载参考文档:http://blog.csdn.net/u010246789/article/details/52086799

注意:在window中,用bin/logstash.agent -f logstash 命令来启动logstash

Logstash插件介绍

FileInput插件介绍

FileInput插件是经常用到的输入插件,主要从文本中提取数据,然后经过一系列的Filter插件过滤和处理后,把数据再传递到Output插件,然后对数据进行输出,这主要介绍FilterInput插件的配置参数,可以参照官网。

配置参数 示例 详解
path path => [“/var/log/nginx/access.log”],path => “/var/log/nginx/*.log” 文件源,可以检测若干文件,String或者数组类型
codec codec=>plain{charset=>”UTF-8”} codec插件,默认是plain,可以设置编码格式
discover_interval discover_interval=>20 检查一次被监听的path下是否有新文件,默认值是15秒
exclude exclude=>”Message.log”,exclude=>[1.log,*.txt] 排除不需要监测的文件,string或者数组类型
sincedb_path sincedb_path=>”/home/hadoop/1.txt” 记录处理文件的位置,默认为$HOME/.sincedb,如果设置为:/dev/null,则代表忽略检测位置
stat_interval stat_interval=>10 隔多久检查一次被监听文件状态,默认1秒
start_position start_position=>”beginning”,start_position=>”end” logstash从什么位置开始读取文件数据,配置为[beginning,end]中的一个,默认是结束位置
tags tags=>”logstash” 标记,一个字段
close_order close_order=>3600 文件输入会关闭上一次读取指定时间间隔的文件。 这取决于文件是否被拖尾或读取,具有不同的含义。 如果拖尾,并且输入数据中存在大的时间间隔,则可以关闭文件(允许打开其他文件),但在检测到新数据时将排队等待重新打开。 如果读取,文件将在从最后一个字节读取后的closed_older秒后关闭。 默认值为1小时
delimiter delimiter=>”\n” 读取事件的分割,默认是’\n’,也就是以一行为一个事件
sincedb_write_interval sincedb_write_interval=>10 多久写一次读取位置的文件,就是是sincedb_path,默认15秒

这个是FileInput插件读取的详细参数

下面来介绍几个常用到的Filter插件

KV插件

KV插件设置一定的格式,来读取字段中的键值对

其中有两个比较重要的参数,如下:

  • field_split
  • value_split

field_split为两个键值对间的分隔符,而value_split则是两个key,value之间的分隔符

若要切割的字段如下:
message=”messagid=123&name=logstash”
kv的配置如下:
kv{
source=>”message”
field_split =>”&”
value_split =>”=”
}
则message会把切割成
messageid=”123”
name=”logstash”

multiline插件

mutile插件的主要作用是根据正则表达式,把多条事件合并或者切割成一条,详细了解请点击:mutiline插件详解:http://www.cnblogs.com/liuning8023/archive/2016/06/01/5549366.html

mutate插件

mutate插件可以把一些字符串替换成别的字符串,通过gsub来实现。或者通过split来切割不同的字符串

mutate {
gsub=>[“message”, “\n”, “$”]
split=>[“message”,”keyword”]
}

这样配置,message会把message字段中的\n替换成$,并且根据keyword把messageqi切割字符串,通过[message][0],[message][1]来获取字段。

Output插件WebHDFS介绍

webhdfs插件主要是把日志上传到HDFS文件系统中,其格式为:

webhdfs{
host => “127.0.0.1”
port => 50070
user => “hadoop”
path => “/logstash/data”
codec => plain
{
charset=>”UTF-8”
format=>”%{message}”
}
}

下一篇将介绍插件的详细开发步骤


推荐阅读
  • 在ElasticStack日志监控系统中,Logstash编码插件自5.0版本起进行了重大改进。插件被独立拆分为gem包,每个插件可以单独进行更新和维护,无需依赖Logstash的整体升级。这不仅提高了系统的灵活性和可维护性,还简化了插件的管理和部署过程。本文将详细介绍这些编码插件的功能、配置方法,并通过实际生产环境中的应用案例,展示其在日志处理和监控中的高效性和可靠性。 ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • 本文探讨了 Kafka 集群的高效部署与优化策略。首先介绍了 Kafka 的下载与安装步骤,包括从官方网站获取最新版本的压缩包并进行解压。随后详细讨论了集群配置的最佳实践,涵盖节点选择、网络优化和性能调优等方面,旨在提升系统的稳定性和处理能力。此外,还提供了常见的故障排查方法和监控方案,帮助运维人员更好地管理和维护 Kafka 集群。 ... [详细]
  • 自然语言处理(NLP)——LDA模型:对电商购物评论进行情感分析
    目录一、2020数学建模美赛C题简介需求评价内容提供数据二、解题思路三、LDA简介四、代码实现1.数据预处理1.1剔除无用信息1.1.1剔除掉不需要的列1.1.2找出无效评论并剔除 ... [详细]
  • 检查 Kubernetes 系统命名空间中的 Pod 状态时,发现 Metric Server Pod 虽然处于运行状态,但存在异常:日志显示 'it doesn’t contain any IP SANs'。 ... [详细]
  • 本文介绍了如何使用Flume从Linux文件系统收集日志并存储到HDFS,然后通过MapReduce清洗数据,使用Hive进行数据分析,并最终通过Sqoop将结果导出到MySQL数据库。 ... [详细]
  • Spark与HBase结合处理大规模流量数据结构设计
    本文将详细介绍如何利用Spark和HBase进行大规模流量数据的分析与处理,包括数据结构的设计和优化方法。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • 本指南从零开始介绍Scala编程语言的基础知识,重点讲解了Scala解释器REPL(读取-求值-打印-循环)的使用方法。REPL是Scala开发中的重要工具,能够帮助初学者快速理解和实践Scala的基本语法和特性。通过详细的示例和练习,读者将能够熟练掌握Scala的基础概念和编程技巧。 ... [详细]
  • 在探讨Hibernate框架的高级特性时,缓存机制和懒加载策略是提升数据操作效率的关键要素。缓存策略能够显著减少数据库访问次数,从而提高应用性能,特别是在处理频繁访问的数据时。Hibernate提供了多层次的缓存支持,包括一级缓存和二级缓存,以满足不同场景下的需求。懒加载策略则通过按需加载关联对象,进一步优化了资源利用和响应时间。本文将深入分析这些机制的实现原理及其最佳实践。 ... [详细]
  • 本文深入解析了Python在处理HTML过滤时的实现方法及其应用场景。通过具体实例,详细介绍了如何利用Python代码去除HTML字符串中的标签和其他无关信息,确保内容的纯净与安全。此外,文章还探讨了该技术在网页抓取、数据清洗等领域的实际应用,为开发者提供了宝贵的参考。 ... [详细]
  • 在搭建Hadoop集群以处理大规模数据存储和频繁读取需求的过程中,经常会遇到各种配置难题。本文总结了作者在实际部署中遇到的典型问题,并提供了详细的解决方案,帮助读者避免常见的配置陷阱。通过这些经验分享,希望读者能够更加顺利地完成Hadoop集群的搭建和配置。 ... [详细]
  • Hadoop 2.6 主要由 HDFS 和 YARN 两大部分组成,其中 YARN 包含了运行在 ResourceManager 的 JVM 中的组件以及在 NodeManager 中运行的部分。本文深入探讨了 Hadoop 2.6 日志文件的解析方法,并详细介绍了 MapReduce 日志管理的最佳实践,旨在帮助用户更好地理解和优化日志处理流程,提高系统运维效率。 ... [详细]
  • 构建高可用性Spark分布式集群:大数据环境下的最佳实践
    在构建高可用性的Spark分布式集群过程中,确保所有节点之间的无密码登录是至关重要的一步。通过在每个节点上生成SSH密钥对(使用 `ssh-keygen -t rsa` 命令并保持默认设置),可以实现这一目标。此外,还需将生成的公钥分发到所有节点的 `~/.ssh/authorized_keys` 文件中,以确保节点间的无缝通信。为了进一步提升集群的稳定性和性能,建议采用负载均衡和故障恢复机制,并定期进行系统监控和维护。 ... [详细]
author-avatar
邹昕明
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有