Filebeat+Logstash+Hadoop日志收集
准备
- JDK 1.8
- Hadoop 3.3.0
- logstash 7.2.0
- filebeat 7.2.0
以上安装简单,此处不再做介绍,hadoop集群安装参考
filebeat配置
此处仅为简要配置,详细信息请参考官方文档
filebeat.inputs:
- type: log # 收集数据类型 log、json
# 是否开启收集
enabled: true
# 收集日志的路径,可模糊匹配
paths:
- /data/logs/test/*.log
# 可以设置标签,接收数据时根据标签区分处理
tags: ["test"]
filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false
setup.template.settings:
index.number_of_shards: 1
setup.kibana:
output.logstash:
# logstash 地址,可以多个
hosts: ["logstash.dongle.com:4560"]
processors:
- add_host_metadata: ~
logstash配置
此处仅为简要配置,详细信息请参考官方文档
编辑配置文件 $LOGSTASH_HOME/config/test.conf(自定义)
input {
# 接收输入端口
beats{ port => 4560}
}
filter{
# 对一些参数做处理
ruby{
code => "event.set('timestamp', event.get('@timestamp').time.localtime + 8*60*60)"
}
ruby{
code => "event.set('@timestamp',event.get('timestamp'))"
}
mutate{
remove_field => ["timestamp"]
}
}
启动Filebeat
${FILEBEAT_HOME}/bin/filebeat
logstash同步hadoop方式一:webhdfs方式
output {
# 数据输出
webhdfs{
host=>"hadoop.dongle.com"
port => 9870
user => "root"
path => "/data/logs/test/logstash-%{+YYYY-MM-dd-HH}.log"
codec => "line { format => '%{[@metadata][ip_address]}|%{message}'}"
retry_interval => 3
retry_times => 3
}
}
logstash同步hadoop方式二:本地落盘方式和Hadoop上传
因webhdfs是通过web接口传递数据,容易不稳定,可以先落盘再上传,方便后期失败修复
output{
file{
path => "/data/logs/test/logstash-%{+YYYY-MM-dd-HH}.log"
codec => line { format => "%{[host][ip][0]}|%{message}"}
}
}
hadoop 上传本地文件到hdfs
hadoop fs -put '/data/logs/test/logstash-2021-01-01-11.log' /data/logs/test/
启动logstash
${LOGSTASH_HOME}/bin/logstash -f config/test.conf
hadoop查看hdfs
hadoop fs -ls /data/logs/test/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?