本文主要介绍 Logstash 的一些常用输出插件;相关的环境及软件信息如下:CentOS7.9、Logstash 8.2.2。

1、Stdout 输出插件

Stdout 插件把结果数据输出到标准输出。

input {  stdin {  }}output {  stdout {  }}

2、File 输出插件

File 插件把结果数据输出文件。

input {  stdin {  }}output {  file {    path => "/home/hadoop/a.txt"    codec => line {      format => "%{message}" #只把原始数据写入文件    }  }}

3、Elasticsearch 输出插件

Elasticsearch插件把结果数据写入到 Elasticsearch 中。

input {  stdin {    codec => json  }}output {  stdout { } #同时把结果输出到控制台  elasticsearch {    hosts => ["localhost:9200"]    index => "my-index"    user => "elastic"    password => "123456"  }}

4、Kafka 输出插件

Kafka 插件把结果数据写入到 Kafka 中。

input {  stdin {  }}output {  stdout {}  kafka {    topic_id => "test"    codec => "plain"  }}

5、Rabbitmq 输出插件

Rabbitmq 插件把结果数据写入到 Rabbitmq中。

input {  stdin {  }}output {  stdout {} #同时把结果输出到控制台  rabbitmq {    host => "localhost"    port => 5672    user => "admin"    password => "admin"    exchange => "" #默认交换机    exchange_type => "direct"    key => "test" #exchance绑定queue的routeKey    codec => "plain"  }}

6、Http 输出插件

Rabbitmq 插件使用结果数据调用配置的 HTTP 接口。

input {  stdin {  }}output {  stdout {}  http {    url => "http://localhost:8080/test/hello2"    http_method => "post"    format => "json"    codec => "json"  }}

7、Redis 输出插件

Redis 插件把结果数据写入到 Redis 中。

input {  stdin {  }}output {  stdout {  }  redis {    host => "localhost"    port => 6379    data_type => "list"    key => "a"    codec => plain {      format => "%{message}" #只把原始数据写入文件    }  }}