从官方网址下载安装包。
2. 配置logstash.confinput { stdin { } }
input {
tcp {
#不配置默认是安装服务器ip
#host => "localhost"
#开启的端口
port => 8084
mode => "server"
tags => ["tags"]
#输出json格式,需要装插件
codec => json_lines
}
}
这里配置了两个输入,一个是标准输入stdin;
另一个是tcp输入源,由tcp输入插件提供对应功能,其中
host: 绑定的IP地址,默认值为0.0.0.0;port: 8084,端口为8084;mode: server或client,默认值为server;tags: 数组类型,可以添加多个标签,后续的处理可以参考该参数配置;type: 字符串类型,没有默认值,用于激活过滤器;id: 输入源id,当有多个相同类型的输入源时,可以根据该参数进行区分;codec: 编码,类型为codec,默认值为"line"
以上时通用属性配置。
参考地址:
Tcp input plugin | Logstash Reference [7.16] | Elastic
这里配置了两个输出,一个是标准输出,另外一个是elasticsearch,由对应的插件完成数据输出功能:
output {
stdout{codec =>rubydebug}
elasticsearch {
#es地址,可多个
hosts => ["localhost:9200"]
flush_size => 1000
action => "index"
# 获取输出参数"indexname"值当做索引,如果没有则会自动创建对应索引(需要es开启自动创建索引)
index => "%{indexname}"
}
}
hosts: elasticsearch的主机名;
index: 索引名称;
action: 类型为字符串,数据流的默认值是create,非时间序列数据的默认值是index;可以是下列的值:
index,建立一个文档索引;delete,根据id删除一个文档;create,建立一个文档索引,如果索引id已经存在,则返回失败;update,根据id更新一个文档;
flush_size:
password:密码
user: 用户名
参考配置:
https://www.elastic.co/guide/en/logstash/current/plugins-outputs-elasticsearch.html
3. 启动logstash服务logstash -f logstash.conf4. 项目中添加依赖
5. logback.xml或者logback-spring.xml中添加配置net.logstash.logback logstash-logback-encoder6.6
6. application.yml配置文件配置logstash对应的elasticsearch地址和端口ERROR ${logstash.host} ${logstash.port} ${logstash.host}:${logstash.port} { "indexname":"test_logstash", "appname":"${spring.application.name}", "host": "%ip", "port": "${spring.application.index}", "timestamp": "%d{yyyy-MM-dd HH:mm:ss.SSS}", "thread": "%thread", "level": "%level", "logger_name": "%logger", "message": "%msg", "stack_trace": "%exception" }
#logstash服务器地址 logstash: host: 127.0.0.1 #logstash端口 port: 9600



