news 2026/9/16 23:36:58

logstash之output插件-输出数据到控制台、file文件、elasticsearch、redis

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
logstash之output插件-输出数据到控制台、file文件、elasticsearch、redis

output插件是经过了input,然后过滤结构化数据之后,接下来我们需要借助output传到我们想传到的地方.output相当于一个输出管道。

Elasticsearch完整技术文档:https://yjoffer.com/springcloud/chapter6/chapter6.html

将采集数据标准输出到控制台

配置示例

output { stdout { codec => rubydebug } }

Codec 来自 Coder/decoder
两个单词的首字母缩写,Logstash 不只是一个input | filter | output 的数据流,
而是一个input | decode | filter | encode | output 的数据流,codec 就是用来decode、encode 事件的。
简单说,就是在logstash读入的时候,通过codec编码解析日志为相应格式,从logstash输出的时候,通过codec解码成相应格式。

演示:

input {stdin{}} output { stdout { codec => rubydebug } }

启动:bin/logstash -f /usr/local/elk/logstash-5.5.2/conf/template/stdout.conf
展示:

将采集数据保存到file文件中

需求:将数据采集到logstash的日志文件中,区分业务和采集日期(哪天采集的)

input {stdin{}} output { file { path => "/usr/local/elk/logstash-5.5.2/logs/stdout/mobile-collection/%{+YYYY-MM-dd}-%{host}.txt" codec => line { format => "%{message}" } gzip => true } }

启动:
bin/logstash -f /usr/local/elk/logstash-5.5.2/conf/template/stdout_file.conf
结果展示:

将采集数据保存到Elasticsearch

Logstash可以直接将采集到的信息下沉到elasticsearch中

input {stdin{}} output { elasticsearch { hosts => ["hadoop01:9200"] index => "logstash-%{type}-%{+YYYY.MM.dd}" flush_size => 20000. #做批次执行,当数据量达到20000条以后,才会落地到es中 idle_flush_time => 10 #当时间达到10S ,我们就落地到es中 user => elastic password => changeme } }

启动:bin/logstash -f /usr/local/elk/logstash-5.5.2/conf/template/stdout_es.conf
向控制台中输入6条数据:

192.168.77.1 - - [10/Apr/2018:00:44:11 +0800] "POST /api/metrics/vis/data HTTP/1.1" 200 505 "http://hadoop01/app/kibana" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36" 192.168.77.2 - - [10/Apr/2018:00:45:11 +0800] "POST /api/metrics/vis/data HTTP/1.1" 200 460 "http://hadoop01/app/kibana" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36" 192.168.77.3 - - [10/Apr/2018:00:46:11 +0800] "POST /api/metrics/vis/data HTTP/1.1" 200 510 "http://hadoop01/app/kibana" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36" 192.168.77.4 - - [10/Apr/2018:00:47:11 +0800] "POST /api/metrics/vis/data HTTP/1.1" 200 112 "http://hadoop01/app/kibana" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36" 192.168.77.5 - - [10/Apr/2018:00:48:11 +0800] "POST /api/metrics/vis/data HTTP/1.1" 200 455 "http://hadoop01/app/kibana" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36" 192.168.77.6 - - [10/Apr/2018:00:49:11 +0800] "POST /api/metrics/vis/data HTTP/1.1" 200 653 "http://hadoop01/app/kibana" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"

然后在kibana上查看,是否logstash已经把数据采集到了elasticsearch

将采集的数据保存到redis

配置:

input { stdin {} } output { redis { host => "hadoop01" data_type => "list" port => "6379" db => 6 key => "logstash-redis-%{+yyyy.MM.dd}" batch=> true. #开启批处理 batch_events=> 10000 #批处理的大小 batch_timeout=> 3 #批处理的超时时间 #防止OOM---》list congestion_interval => 3 congestion_threhold => 100 } }

启动redis
将数据打入logstash控制台:

192.168.77.1 - - [10/Apr/2018:00:44:11 +0800] "POST /api/metrics/vis/data HTTP/1.1" 200 505 "http://hadoop01/app/kibana" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36" 192.168.77.2 - - [10/Apr/2018:00:45:11 +0800] "POST /api/metrics/vis/data HTTP/1.1" 200 460 "http://hadoop01/app/kibana" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36" 192.168.77.3 - - [10/Apr/2018:00:46:11 +0800] "POST /api/metrics/vis/data HTTP/1.1" 200 510 "http://hadoop01/app/kibana" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36" 192.168.77.4 - - [10/Apr/2018:00:47:11 +0800] "POST /api/metrics/vis/data HTTP/1.1" 200 112 "http://hadoop01/app/kibana" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36" 192.168.77.5 - - [10/Apr/2018:00:48:11 +0800] "POST /api/metrics/vis/data HTTP/1.1" 200 455 "http://hadoop01/app/kibana" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36" 192.168.77.6 - - [10/Apr/2018:00:49:11 +0800] "POST /api/metrics/vis/data HTTP/1.1" 200 653 "http://hadoop01/app/kibana" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"

去redis上做认证,查看是否已经存储redis中:

查看数据:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/16 23:34:43

Git提交账号切换:原理、作用域与安全实践

1. 为什么“git 切换提交账号”是每个团队协作者绕不开的硬需求你刚接手一个新项目,clone 下来准备提交第一行代码,git commit -m "init"回车,git push一气呵成——结果终端弹出一行红色报错:“remote: Permission to x…

作者头像 李华
网站建设 2026/9/16 23:34:10

Yara、Snort、Sigma:检测规则边界、调优与协同实践

搜"Sigma 规则"的时候,搜索引擎经常先给你一堆可编程电源的参数手册——那个叫 ultra sigma 的系列在工业电源圈子里太出名了,噪音大到能把正经的检测规则内容挤到第二页。我最早写检测规则那几年也走过类似的弯路:手里只有一套思路…

作者头像 李华
网站建设 2026/9/16 23:32:04

Mac新手必看:用Homebrew安装wget的完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/16 23:31:24

Kali无线安全:WiFi密码暴力破解原理与WPA2/WPA3防御

1. 先把边界钉死:这从来不是"蹭网教程"Kali、暴力破解、WiFi密码,这三个词被绑在一起搜,多半是刚装完 Kali 虚拟机、看着一堆陌生工具不知道从哪下手的新人,也有相当一部分是好奇"隔壁的网能不能白嫖"。我在安…

作者头像 李华
网站建设 2026/9/16 23:31:20

从零散创意到技术落地的系统化方法

1. 项目概述作为一名从业多年的技术博主,我经常遇到一个困扰:当灵感来临时,常常随手记录下零散的想法或项目标题,但事后回顾却发现缺乏系统性的整理和深入挖掘。这种"无标题"状态下的创意火花,往往蕴含着巨大…

作者头像 李华