js核心功能:数据收集、转换和传输管道。支持从多种来源(文件、数据库等)提取数据,过滤(如解析JSON、正则匹
配)后发送到Elasticsearch。
特点:功能强大但资源消耗较高,适合复杂的数据处理场景。
相比Logstash,Filebeat占用资源极少,适合部署在边缘节点(如服务器、容器)持续采集日志文件。
专一性:仅负责日志收集和转发(到Logstash或Elasticsearch),不处理数据,避免资源浪费。
场景互补:Filebeat + Logstash组合中,Filebeat负责采集,Logstash负责复杂处理,分工明确提升效率。
下载网址:https://artifacts.elastic.co/downloads/logstash/logstash-7.17.29-x86_64.rpm
jswget https://artifacts.elastic.co/downloads/logstash/logstash-7.17.29-x86_64.rpm
jsrpm -ivh logstash-7.17.29-x86_64.rpm
jsln -sv /usr/share/logstash/bin/logstash /usr/local/bin/
配置目录
js/etc/logstash
jsvi /etc/logstash/logstash-sample.conf
jsinput {
file {
path => ["/tmp/*.txt"] # 监听 /tmp 目录下的 .txt 文件
start_position => "beginning" # 从文件开头读取
}
}
output {
stdout {} # 输出到控制台(测试用)
}
知道配置启动
jslogstash -f /etc/logstash/logstash-sample.conf
jsinput {
tcp {
port => 8888
codec => "json" # 可选:如果接收JSON格式数据
}
}
output {
stdout {
codec => rubydebug # 更好的格式化输出
}
}
启动后去另一台服务器telnet该服务器端口测试
成功收集日志
jsinput {
http {
port => 8888
}
}
output {
stdout {
codec => rubydebug # 更好的格式化输出
}
}
测试
jscurl "http://192.168.201.104:8888?greeting=你好啊"
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写入数据
jsinput {
tcp {
port => 9999
}
}
output {
stdout {}
file {
path => ["/tmp/1.txt"] # 监听 /tmp 目录下的 .txt 文件
}
}
发送消息写入该服务器下的路径文件
jsinput {
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}"
}
}
本文作者:松轩(^U^)
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!