1

一、安装

1、下载并解压

# 下载,不同的操作系统下载不同的包
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.12.0-darwin-x86_64.tar.gz
# 解压
tar -zxvf logstash-7.12.0-darwin-x86_64.tar.gz
# 重命名
mv logstash-7.12.0 logstash

下载对应版本的logstash

2、logstash 一些命令行参数

1、查看帮助信息

cd logstash
bin/logstash -h

2、加载指定pipeline文件路径

bin/logstash -f 文件路径

注意⚠️:
-f 后面跟的文件路径可以是一个文件的路径,也可以是一个文件夹的路径,如果是文件夹的路径,则会加载该文件夹下的文件,组成一个大的 pipeline 文件。

3、检测配置文件语法是否有错误

bin/logstash -t

4、热加载pipeline配置文件

bin/logstash -r

5、指定绑定的主机和启动的端口

bin/logstash --http.host 127.0.0.1 --http.port 9210

注意⚠️:
更多配置项参考 bin/logstash -h 的输出。

3、修改logstash的配置文件

1、修改jvm的配置

vim config/jvm.options

修改 -Xms 和 -Xmx 等其余参数的值。

2、修改logstash.yml配置

vim config/logstash.yml
# 设置节点的名字
node.name: logstash-01
# 设置 pipeline 的id
pipeline.id: main
pipeline.ordered: auto
# 设置pipeline 的线程数(filter+output),默认是cpu的核数
# pipeline.workers: 2
# 设置main pipeline文件所在的位置
# path.config:
# 自动重新加载pipeline配置文件
config.reload.automatic: true
# 设置http api 绑定的ip和端口
http.host: 127.0.0.1
http.port: 9201
# 设置logstash队列的类型 为持久化,默认是 memory
queue.type: persisted

4、编写一个pipeline文件

实现功能,接口从控制台输入的数据然后输出到控制台上。

文件名: pipeline.conf/demo-std.conf

# 输入, stdin 表示标准输入
input {
    stdin {
        codec => plain {
            charset => "UTF-8"
        }
        # type 的值随便给,就一个标识,后期方便查询
        type => "console input"
        # 添加一个 tag
        tags => ["console"]
    }
}

# 数据过滤
filter {
    
}

# 输出 stdout 表示输出
output {
    stdout {
        codec => rubydebug {
            
        }
    }
}

5、启动logstash

启动的时候,直接某个pipeline文件

# -f 指定 pipeline 文件的路径
bin/logstash -f pipeline.conf/demo-std.conf

6、查看运行结果

控制台输出

二、pipeline的组成

pipeline的组成
由上图可知,一个pipeline有三个元素组成inputfilteroutput。其中 inputoutput是必须的。filter是可选的。

input:指定了从那个地方抓取数据,比如:文件(file)、beats、tcp等等。
filter:是我们可以修改input的数据,比如增加字段、重命名字段、修改字段类型等等。
output:决定了我们处理好的数据输出到哪里,比如:es、file、等等。

三、参考链接

1、logstash下载地址
2、logstash的目录结构
3、logstash.yml配置文件的参数
4、logstash命令行参数


huan1993
218 声望34 粉丝

java工程师