Logstash简介和安装
一、简介
Logstash是一个开源的数据采集引擎。它可以动态地将不同来源的数据统一采集,并按照指定的数据格式进行处理后,将数据加载到其他的目的地。最开始,Logstash主要是针对日志采集,但后来Logstash开发了大量丰富的插件,所以,它可以做更多的海量数据的采集。
它可以处理各种类型的日志数据,例如:Apache的web log、Java的log4j日志数据,或者是系统、网络、防火墙的日志等等。它也可以很容易的和Elastic Stack的Beats组件整合,也可以很方便的和关系型数据库、NoSQL数据库、Kafka、RabbitMQ等整合。
1、经典架构
2、对比Flume
- Apache Flume是一个通用型的数据采集平台,它通过配置source、channel、sink来实现数据的采集,支持的平台也非常多。而Logstash结合Elastic Stack的其他组件配合使用,开发、应用都会简单很多
- Logstash比较关注数据的预处理,而Flume跟偏重数据的传输,几乎没有太多的数据解析预处理,仅仅是数据的产生,封装成Event然后传输。
3、对比FileBeat
- logstash是jvm跑的,资源消耗比较大
- 而FileBeat是基于golang编写的,功能较少但资源消耗也比较小,更轻量级
- logstash 和filebeat都具有日志收集功能,Filebeat更轻量,占用资源更少
- logstash 具有filter功能,能过滤分析日志
- 一般结构都是filebeat采集日志,然后发送到消息队列,redis,kafka中然后logstash去获取,利用filter功能过滤分析,然后存储到elasticsearch中
二、安装Logstash
1、切换到lanson用户
2、下载Logstash
Logstash 7.6.1 | Elastic
3、解压Logstash到指定目录
4、运行测试
代码语言:javascript复制cd /export/server/es/logstash-7.6.1/
bin/logstash -e 'input { stdin { } } output { stdout {} }'
等待一会,让Logstash启动完毕
然后,随便在控制台中输入内容,等待Logstash的输出
代码语言:javascript复制{
"host" => "node1",
"message" => "hello world",
"@version" => "1",
"@timestamp" => 2021-12-05T08:32:31.007Z
}
ps:
-e选项表示,直接把配置放在命令中,这样可以有效快速进行测试