编辑
2025-10-22
ELK
00

目录

一、介绍和安装
二、收集TCP端口日志
三、收集TCP端口日志
三、收集http协议端口日志
三、发送数据输出到redis环境
四、发送数据输出到本地文件
五、发送数据输出到ES

一、介绍和安装

js
核心功能:数据收集、转换和传输管道。支持从多种来源(文件、数据库等)提取数据,过滤(如解析JSON、正则匹 配)后发送到Elasticsearch。 特点:功能强大但资源消耗较高,适合复杂的数据处理场景。 相比LogstashFilebeat占用资源极少,适合部署在边缘节点(如服务器、容器)持续采集日志文件。 专一性:仅负责日志收集和转发(到LogstashElasticsearch),不处理数据,避免资源浪费。 场景互补:Filebeat + Logstash组合中,Filebeat负责采集,Logstash负责复杂处理,分工明确提升效率。

下载网址:https://artifacts.elastic.co/downloads/logstash/logstash-7.17.29-x86_64.rpm

js
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.17.29-x86_64.rpm
js
rpm -ivh logstash-7.17.29-x86_64.rpm
js
ln -sv /usr/share/logstash/bin/logstash /usr/local/bin/

二、收集TCP端口日志

配置目录

js
/etc/logstash
js
vi /etc/logstash/logstash-sample.conf
js
input { file { path => ["/tmp/*.txt"] # 监听 /tmp 目录下的 .txt 文件 start_position => "beginning" # 从文件开头读取 } } output { stdout {} # 输出到控制台(测试用) }

知道配置启动

js
logstash -f /etc/logstash/logstash-sample.conf

image.png

三、收集TCP端口日志

js
input { tcp { port => 8888 codec => "json" # 可选:如果接收JSON格式数据 } } output { stdout { codec => rubydebug # 更好的格式化输出 } }

启动后去另一台服务器telnet该服务器端口测试

image.png

成功收集日志 image.png

三、收集http协议端口日志

js
input { http { port => 8888 } } output { stdout { codec => rubydebug # 更好的格式化输出 } }

测试

js
curl "http://192.168.201.104:8888?greeting=你好啊"

image.png

三、发送数据输出到redis环境

js
input { tcp { port => 9999 } } output { stdout {} redis { host => "192.168.201.104" port => 6379 db => 0 password => "12345678" data_type => "list" key => "hello word" } }

我往该IP端口发送消息,就会往redis写入数据 image.png

image.png

四、发送数据输出到本地文件

js
input { tcp { port => 9999 } } output { stdout {} file { path => ["/tmp/1.txt"] # 监听 /tmp 目录下的 .txt 文件 } }

发送消息写入该服务器下的路径文件 image.png

image.png

五、发送数据输出到ES

js
input { tcp { port => 9999 } } output { stdout {} elasticsearch { hosts => ["192.168.201.112:9200", "192.168.201.113:9200", "192.168.201.114:9200"] index => "logstash-%{+YYYY.MM.dd}" } }

image.png

image.png

本文作者:松轩(^U^)

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

Document