Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Logstash:处理多个 input

Logstash:处理多个 input

作者头像
腾讯云大数据
修改于 2021-01-08 07:55:44
修改于 2021-01-08 07:55:44
2.8K00
代码可运行
举报
运行总次数:0
代码可运行

腾讯云 Elasticsearch Service】高可用,可伸缩,云端全托管。集成X-Pack高级特性,适用日志分析/企业搜索/BI分析等场景


我们知道Logstash的架构如下:

它的整个 pipleline 分为三个部分:

  • input 插件:提取数据。 这可以来自日志文件TCPUDP 侦听器,若干协议特定插件(如 syslog 或I RC)之一,甚至是排队系统(如 Redis,AQMP 或 Kafka)。 此阶段使用围绕事件来源的元数据标记传入事件。
  • filter 插件:插件转换并丰富数据
  • output 插件: 将已处理的事件加载到其他内容中,例如 ElasticSearch 或其他文档数据库,或排队系统,如 Redis,AQMP 或Kafka。 它还可以配置为与 API 通信。 也可以将像 PagerDuty 这样的东西连接到 Logstash 输出。

这里的 input 可以支持多个 input,同时多个 worker 可以处理 filter 及 output:

在今天的介绍中,我们来介绍一下如何使用多个input。

应用文件

为了说明问题的方便,我把所需要用到的文件都传到 github 地址https://github.com/liu-xiao-guo/logstash_multi-input。我们可以通过如下的方式来下载这些文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone https://github.com/liu-xiao-guo/logstash_multi-input

Logstash配置文件

Logstash 的配置文件如下:

multi-input.conf

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
input {  file {    path => "/Users/liuxg/data/multi-input/apache.log"  	start_position => "beginning"    sincedb_path => "/dev/null"    # ignore_older => 100000    type => "apache"  }} input {  file {    path => "/Users/liuxg/data/multi-input/apache-daily-access.log"  	start_position => "beginning"    sincedb_path => "/dev/null"    type => "daily"  }} filter {  	grok {    	match => {      		"message" => '%{IPORHOST:clientip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\] "%{WORD:verb} %{DATA:request} HTTP/%{NUMBER:httpversion}" %{NUMBER:response:int} (?:-|%{NUMBER:bytes:int}) %{QS:referrer} %{QS:agent}'    	}  	} 	if[type] == "apache" {		mutate {	  		add_tag => ["apache"]	  	}	} 	if [type] == "daily" {		mutate {			add_tag => ["daily"]		}	} }  output {	stdout {		codec => rubydebug	} 	if "apache" in [tags] {	  	elasticsearch {	    	index => "apache_log"	    	template => "/Users/liuxg/data/apache_template.json"	    	template_name => "apache_elastic_example"	    	template_overwrite => true	  }		}	if "daily" in [tags] {	  	elasticsearch {	    	index => "apache_daily"	    	template => "/Users/liuxg/data/apache_template.json"	    	template_name => "apache_elastic_example"	    	template_overwrite => true	  }		}	}

为了说明问题的方便,我们使用了两个 input。它们分别对应不同的 log 文件。对于这两个 input,我们也使用了不同的 type 来表示:apache和 daily。尽管它们的格式是一样的,它们共同使用同样的一个 grok filter,但是我们还是想分别对它们进行处理。为此,我们添加了一个 tag。我们也可以添加一个 field 来进行区别。在 output 的部分,我们根据在 filter 部分设置的 tag来对它们输出到不同的 index里。

运行 Logstash

我们可以通过如下的命令来运行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ pwd/Users/liuxg/elastic/logstash-7.3.0bogon:logstash-7.3.0 liuxg$ sudo ./bin/logstash -f ~/data/multi-input/multi-input.conf

当你们运行这个例子的时候,你们需要根据自己存放 multi-input.conf 文件的位置改变而改变上面的命令。

运行的结果如下:

根据显示的结果可以看出来 daily 的事件最早被处理及输出。接着 apache 的数据才开始处理。在实际的应用中,我们可能有不同的数据源,比如来自其它 beats 的监听某个端口的数据。

我们可以在 Kibana 中看到我们最终的 index 数据:


最新活动

包含文章发布时段最新活动,前往ES产品介绍页,可查找ES当前活动统一入口

Elasticsearch Service自建迁移特惠政策>>

Elasticsearch Service 新用户特惠狂欢,最低4折首购优惠 >>

Elasticsearch Service 企业首购特惠,助力企业复工复产>>

关注“腾讯云大数据”公众号,技术交流、最新活动、服务专享一站Get~

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【参赛经验分享】【极客-腾讯内部赛道】一个菜鸡的解题思路
tetris是参加【极客技术挑战赛第四期】鹅罗斯方块 的项目,这个项目是给定一个俄罗斯方块的固定序列,看看谁能消除的分数最高。
esrrhs
2021/08/16
1K1
【参赛经验分享】【极客-腾讯内部赛道】一个菜鸡的解题思路
【参赛经验分享】鹅罗斯方块解题报告: 遗传算法+分段策略
月初看到TEG公众号推送的极客挑战赛, 主题居然是完成俄罗斯方块的游戏, 顿时来了精神. 想起当初编写各种QQ游戏大厅外挂的快乐时光, 已经快十年了吧.
UME
2021/08/14
2.3K1
【参赛经验分享】鹅罗斯方块解题报告: 遗传算法+分段策略
【参赛经验分享】外部赛道Rank 2解题报告:状态取舍下的动态规划
在七月末,出于偶然了解到腾讯极客挑战赛这个充满趣味性和挑战性的竞赛,于是便报名参加。这次第四期的赛题叫做“鹅罗斯方块”,要求参赛者用所能尽到的各种方式,在一个JS开发的俄罗斯方块游戏中取得尽可能高的分数。经过一周多的持续思考与努力优化,最终通过动态规划+状态取舍,拿到1378178分,获得外部赛道银奖,也算是如愿以偿。下面是我的比赛经过:
Max.D.
2021/08/17
1.1K1
Go程序GC优化经验分享
最近一段时间对《仙侠道》的服务端进行了一系列针对GC的调优,这里跟各位分享一下调优的经验。
李海彬
2018/07/26
6K0
Go程序GC优化经验分享
首篇极客解题报告意外泄出!亚军竟有神操作?
导语 | 腾讯云+社区联合腾讯码客、腾讯安全平台部全新打造的创新赛事【腾讯极客挑战赛 | 鹅罗斯方块】正式落幕。玩鹅罗斯方块,玩点不一样!在短暂10天内,4570名参赛者或以自己的硬核技术诠释着 “代码无所不能”;或坚持游戏主义,手玩出一片天。 最终11263次有效提交中,涌现出一批出众的作品。快跟上团队!一睹大牛精心贡献的解题报告。 本期为大家带来亚军大佬——北航研究生陈铭煊的报告。看完他的解题过程,小编直呼“我的强迫症治好了!”(请看下方视频) 大佬这样说 在七月末,出于偶然了解到腾讯极客挑战赛这
腾讯云开发者
2021/08/23
3080
【参赛经验分享】腾讯内部赛道139万分解题报告
我参加的是腾讯内部赛道,最后得分 1395326,在内部赛道排名第一。将内网的解题报告搬运一份到云+社区:
chys
2021/08/16
9551
【参赛经验分享】论 1,413,876 分的成绩是怎么打出来的
七月末的时候看到了腾讯极客挑战赛第四期,发现这不是俄罗斯方块嘛,是之前 Botzone 玩过的 AI 游戏,于是决定来玩玩。没想到一玩玩了好几天,最后的程序也和之前在 Botzone 写的 AI 完全不一样了,最后以 1413876 的分数拿到了外网赛道的第一,同时该分数也是内外网赛道的最高分。
Nano
2021/08/12
1.9K4
【参赛经验分享】论 1,413,876 分的成绩是怎么打出来的
【参赛经验分享】俄罗斯方块的Rust解题记录(腾讯内部赛道第7名)
最近一直在学习 Rust。想起以前每次学习新语言,都会实现一个俄罗斯方块来验证对语言的掌握,但是从来没有尝试去实现其AI。正好这次碰到这个挑战,所以没有多想就使用 Rust 来做此题了。
INmouse
2021/08/20
1.1K1
【参赛经验分享】俄罗斯方块的Rust解题记录(腾讯内部赛道第7名)
【参赛经验分享】腾讯极客挑战赛第四期俄罗斯方块比赛复盘
七月底的时候在网络上看到了这样一个赛事,赛题大概总结起来就是用代码玩一款十分经典的游戏俄罗斯方块,通过游戏得分来排名评比,觉得挺有意思,抱着随便试试的想法就参加了,结果最后获得了全国第49名,最终获得的最高分数是31万多一点,虽然和第一名的一百多万还是有不小的差距,需要改进反省的地方还有很多,但这一成绩还是基本达到了我的预期的,同时我也是成功获得了腾讯招聘的绿色通道,丰富了自己的履历。
HellloWrold-Ian
2021/08/16
1.6K1
【参赛经验分享】鹅罗斯方块内部赛道Rank5——硬搜
前言 首先简要概括一下题目,是一个序列完全固定为10000个的俄罗斯方块游戏,需要给出一个操作序列来最大化得分,得分的多少与单次消除的行数和场上已有方块数有关。 主要使用到的算法有: 贪心 单步dfs搜索 蒙特卡罗搜索 除了搜索我还能会点啥嘛,就硬搜 先上代码仓库:https://github.com/Suikasxt/tetris 内容主要在以下两个文件中: GameController.cpp:游戏主体逻辑 tetris.cpp:策略算法 因为代码本来也不是奔着分享写出来的,就不要指望有多好看。 贪心
用户5556120
2021/08/20
7921
【参赛经验分享】外部赛道rank3,手打+AI的同时尝试解题
AI与手打同时尝试打分,最后提交的最高成绩是手打成绩,主要思路是尽可能堆高后进行消4,依据序列的情况妥协进行消3.2,通过本地实现一个模拟器提供各种信息来辅助整个流程。AI算法思路与内部赛道的139w分大佬类似,手打最终117.9w分
whoisdiao
2021/08/20
1.1K2
【参赛经验分享】中年男人写的俄罗斯方块AI外挂,47W分只为爱妻拿一个腾讯视频会员卡
在盆友圈里收到消息,鹅厂举办了一场俄罗斯方块的刷分比赛,私聊一下发图的同学拿到了体验连接,好像还挺简单的嘛,遂决定抽空参赛。
熬夜拧魔方
2021/08/22
2.3K4
【参赛经验分享】中年男人写的俄罗斯方块AI外挂,47W分只为爱妻拿一个腾讯视频会员卡
【参赛经验分享】[腾讯内部赛道破解大师]俄罗斯方块难?直接破解最简单!
前言:后面有事没时间打比赛怎么办?那当然是把游戏破解了啊。安全人,安全魂,安全人偏不走寻常路~
FDrag0n
2021/08/20
2.8K0
【腾讯内部赛道-极客挑战赛第四期季军】GPU动态规划鹅罗斯方块
鹅罗斯方块挑战是由10000个方块序列构成的鹅罗斯方块游戏,其中包含了大量的s型和z型,以及少数的I型方块。
用户8813955
2021/08/20
8110
【参赛经验分享】含可以手玩的网页版(带AI)
简单看了一下游戏源代码,可以发现:(1)游戏里面共有10000块;(2)游戏里面每一块都是确定的,和操作无关。
用户8875579
2021/08/22
1.1K1
【参赛经验分享】[腾讯内部赛道Rank6]鹅罗斯方块半手打(TAS)心得
参与这个比赛的时候,最初的想法也是想依靠算法去实现的,毕竟手打得无论多好,最优解肯定得依靠算法实现,但是由于种种原因(比如大学被ACM折磨过一段时间之类的...)不想写算法,就以最单纯的玩家心态去解决这个问题了。
ZeroNinEX
2021/08/20
9943
【参赛经验分享】[腾讯内部赛道Rank6]鹅罗斯方块半手打(TAS)心得
【参赛经验分享】腾讯内部赛道-鹅罗斯方块赛事笔记
我在过去,写过不少游戏AI,所以当看到公司有这样一个比赛很是高兴。不巧比赛的两周刚好项目组特别忙,但我仍希望能在有限的时间来做得更好。
Agent
2021/08/20
1K1
【参赛经验分享】腾讯内部赛道-鹅罗斯方块赛事笔记
【参赛经验分享】无需关心算法的渐进式解题思路
这是一篇 腾讯极客挑战赛第四期:鹅罗斯方块 的参赛经验分享。这个参赛的主要内容大致是玩俄罗斯方块,最后比较得分。和正常俄罗斯方块不太一样的是这个比赛随机种子被固定了,方块落下的顺序是固定的(方块数量也固定了 10000 的上限),而且得分和你消行时场地上存在的方块数量有关。
白水
2021/08/16
1.4K1
【参赛经验分享】无需关心算法的渐进式解题思路
【参赛经验分享】分析js代码开启游玩新世界与Pierre Dellacherie算法本地验证
以下仅是我对于这个比赛的思考过程,可能是拿高分的技巧,但我并没有因此拿高分,本人算法水平有限大佬勿喷,对文章中的问题欢迎指出。
一颗小树
2021/08/13
2.8K2
【参赛经验分享】分析js代码开启游玩新世界与Pierre Dellacherie算法本地验证
Python 人工智能:6~10
在本章中,我们将学习集成学习以及如何将其用于预测分析。 在本章的最后,您将对这些主题有更好的理解:
ApacheCN_飞龙
2023/04/23
1.5K0
推荐阅读
【参赛经验分享】【极客-腾讯内部赛道】一个菜鸡的解题思路
1K1
【参赛经验分享】鹅罗斯方块解题报告: 遗传算法+分段策略
2.3K1
【参赛经验分享】外部赛道Rank 2解题报告:状态取舍下的动态规划
1.1K1
Go程序GC优化经验分享
6K0
首篇极客解题报告意外泄出!亚军竟有神操作?
3080
【参赛经验分享】腾讯内部赛道139万分解题报告
9551
【参赛经验分享】论 1,413,876 分的成绩是怎么打出来的
1.9K4
【参赛经验分享】俄罗斯方块的Rust解题记录(腾讯内部赛道第7名)
1.1K1
【参赛经验分享】腾讯极客挑战赛第四期俄罗斯方块比赛复盘
1.6K1
【参赛经验分享】鹅罗斯方块内部赛道Rank5——硬搜
7921
【参赛经验分享】外部赛道rank3,手打+AI的同时尝试解题
1.1K2
【参赛经验分享】中年男人写的俄罗斯方块AI外挂,47W分只为爱妻拿一个腾讯视频会员卡
2.3K4
【参赛经验分享】[腾讯内部赛道破解大师]俄罗斯方块难?直接破解最简单!
2.8K0
【腾讯内部赛道-极客挑战赛第四期季军】GPU动态规划鹅罗斯方块
8110
【参赛经验分享】含可以手玩的网页版(带AI)
1.1K1
【参赛经验分享】[腾讯内部赛道Rank6]鹅罗斯方块半手打(TAS)心得
9943
【参赛经验分享】腾讯内部赛道-鹅罗斯方块赛事笔记
1K1
【参赛经验分享】无需关心算法的渐进式解题思路
1.4K1
【参赛经验分享】分析js代码开启游玩新世界与Pierre Dellacherie算法本地验证
2.8K2
Python 人工智能:6~10
1.5K0
相关推荐
【参赛经验分享】【极客-腾讯内部赛道】一个菜鸡的解题思路
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验