Logstash日志收集工具使用详解1(基本介绍、安装配置)
作者:hangge | 2024-03-27 08:40
一、基本介绍
1,什么是 Logstash?
(1)Logstash 是 Elastic 公司开源的收集、解析和转换日志的工具,可以方便地把分散的、多样化的日志收集起来,然后进行自定义处理,最后将其传输到指定的目的地。
(2)Logstash 是由 JRuby 语言编写的,使用基于消息的简单架构,在 JVM 上运行。
(3)Logstash 常被用于在日志关系系统中作为日志采集设备,最常被用于 ELK(Elasticsearch + Logstash + Kibana)中作为日志收集器。
2,架构介绍
(1)Logstash 的架构非常简单,类似于 Flume,主要由 Input、Filter 和 Output 组成。
(2)Logstash 收集日志的基本流程是:Input → Filter → Output
- Input:输入数据源。
- Filter:数据处理。
- Output:输出目的地。
提示:Filter 组件是可选项,Input 组件和 Output 组件是不能缺少的。
3,插件介绍
(1)Input 用于指定数据源获取数据,常见的插件有 stdin、file、syslog、kafka 等:
- stdin:从标准输入(默认是键盘)读取数据,一次读取一行数据。
- file:监控指定目录下的文件,采集文件中的新增数据。
- syslog:采集 Syslog 日志服务器中的日志数据。
- kafka:采集 Kafka 消息队列中的数据。
(2)Filter 用于处理数据,例如格式转换、数据派生等。常见的插件有 grok、mutate、drop、geoip 等:
- grok:支持 120 多种内置的表达式,在解析 Syslog 日志、Apache 日志、MySQL 日志等格式的数据上表现是非常完美的。它也支持自定义正则表达式对数据进行处理。
- mutate:此过滤器可以修改指定字段的内容,支持 convert()、rename()、replace()、split() 等函数。
- drop:过滤掉不需要的日志。例如:Java 程序中会产生大量的日志,包括 DEBUG、INFO、WARN 和 ERROR 级别的日志,如果只想保留部分级别的日志,那 drop 可以帮助你。
- geoip:从日志中的 IP 字段获取用户访问时的所在地。
(3)Output 用于指定数据输出目的地,常见的插件有 stdout、elasticsearch、kafka、webhdfs 等:
- stdout:将数据输出到标准输出(默认是控制台)。
- elasticsearch:将数据输出到 Elasticsearch 的指定 Index 中。
- kafka:将数据输出到 Kafka 的指定 Topic 中。
- webhdfs:将数据输出到 HDFS 的指定目录下。
附:Logstash 的安装配置
提示:由于 Logstash 是在 JVM 平台上运行的,所以也需要依赖 Java 环境,Logstash 从 7.x 版本开始内置了 OpenJDK,位于 Logstash 下的 jdk 目录下,也可以使用机器中已有的 JDK。
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.17.15-linux-x86_64.tar.gz
(2)然后将 Logstash 安装包解压即可:
tar -zxvf logstash-7.17.15-linux-x86_64.tar.gz
(3)这样就安装好了。Logstash 可以实现零配置安装,使用起来非常方便,此时我们不需要启动任何进程,只有在配置好采集任务之后才需要启动 Logstash。
全部评论(0)