Logstash支持哪些输入插件

Logstash 提供了非常丰富的输入插件,用于从各种数据源中读取数据。以下是一些常见的输入插件类型及其用途:

 

 

1.`file`插件

 

• 用途:从文件中读取数据。

 

• 适用场景:适用于从日志文件、CSV 文件或其他文本文件中读取数据。

 

• 示例配置:

 

```plaintext

  input {

    file {

      path => "/var/log/*.log"

      start_position => "beginning"

    }

  }

  ```

 

 

• `path`:指定文件路径,支持通配符。

 

• `start_position`:指定从文件的哪个位置开始读取,可以是`beginning`(从头开始)或`end`(从文件末尾开始)。

 

 

2.`tcp`插件

 

• 用途:从 TCP 网络端口接收数据。

 

• 适用场景:适用于从网络设备、应用程序或其他服务中接收日志或数据。

 

• 示例配置:

 

```plaintext

  input {

    tcp {

      port => 5000

      codec => plain

    }

  }

  ```

 

 

• `port`:指定监听的 TCP 端口号。

 

• `codec`:指定数据的编码方式,`plain`表示普通文本。

 

 

3.`udp`插件

 

• 用途:从 UDP 网络端口接收数据。

 

• 适用场景:适用于接收轻量级的网络消息,如日志或监控数据。

 

• 示例配置:

 

```plaintext

  input {

    udp {

      port => 5000

      codec => plain

    }

  }

  ```

 

 

• `port`:指定监听的 UDP 端口号。

 

• `codec`:指定数据的编码方式。

 

 

4.`stdin`插件

 

• 用途:从标准输入(命令行)读取数据。

 

• 适用场景:适用于测试和开发环境,手动输入数据进行处理。

 

• 示例配置:

 

```plaintext

  input {

    stdin {

      codec => plain

    }

  }

  ```

 

 

 

5.`beats`插件

 

• 用途:接收来自 Filebeat、Metricbeat 等 Elastic Stack 的 Beats 代理的数据。

 

• 适用场景:与 Elastic Stack 生态系统集成,用于接收和处理日志、指标等数据。

 

• 示例配置:

 

```plaintext

  input {

    beats {

      port => 5044

    }

  }

  ```

 

 

• `port`:指定监听的端口号,Filebeat 会将数据发送到此端口。

 

 

6.`http`插件

 

• 用途:通过 HTTP 协议接收数据。

 

• 适用场景:适用于从 Web 应用程序或 RESTful API 接收数据。

 

• 示例配置:

 

```plaintext

  input {

    http {

      host => "0.0.0.0"

      port => 8080

    }

  }

  ```

 

 

• `host`:指定监听的主机地址。

 

• `port`:指定监听的端口号。

 

 

7.`syslog`插件

 

• 用途:接收 Syslog 格式的日志消息。

 

• 适用场景:适用于接收来自网络设备、服务器等的 Syslog 日志。

 

• 示例配置:

 

```plaintext

  input {

    syslog {

      port => 514

      type => "syslog"

    }

  }

  ```

 

 

• `port`:指定监听的端口号,Syslog 通常使用 514 端口。

 

• `type`:指定数据类型,便于后续处理。

 

 

8.`jms`插件

 

• 用途:从 Java 消息服务(JMS)队列或主题中读取数据。

 

• 适用场景:适用于与 Java 应用程序集成,从消息队列中接收数据。

 

• 示例配置:

 

```plaintext

  input {

    jms {

      include_destination_types => ["queue"]

      destination => "my_queue"

      username => "user"

      password => "pass"

      initial_context_factory => "org.apache.activemq.jndi.ActiveMQInitialContextFactory"

      provider_url => "tcp://localhost:61616"

    }

  }

  ```

 

 

 

9.`rabbitmq`插件

 

• 用途:从 RabbitMQ 消息队列中读取数据。

 

• 适用场景:适用于与 RabbitMQ 集成,从队列中接收消息。

 

• 示例配置:

 

```plaintext

  input {

    rabbitmq {

      host => "localhost"

      port => 5672

      queue => "my_queue"

      user => "guest"

      password => "guest"

    }

  }

  ```

 

 

 

10.`redis`插件

 

• 用途:从 Redis 列表或通道中读取数据。

 

• 适用场景:适用于与 Redis 集成,从 Redis 的消息队列中接收数据。

 

• 示例配置:

 

```plaintext

  input {

    redis {

      host => "localhost"

      port => 6379

      data_type => "list"

      key => "my_list"

    }

  }

  ```

 

 

 

11.`exec`插件

 

• 用途:执行外部命令,并将命令的输出作为数据源。

 

• 适用场景:适用于运行脚本或命令,并将结果作为输入数据。

 

• 示例配置:

 

```plaintext

  input {

    exec {

      command => "ls -l"

      interval => 10

    }

  }

  ```

 

 

• `command`:指定要执行的命令。

 

• `interval`:指定命令的执行间隔(秒)。

 

 

12.`generator`插件

 

• 用途:生成模拟数据,用于测试和开发。

 

• 适用场景:适用于开发和测试阶段,生成测试数据。

 

• 示例配置:

 

```plaintext

  input {

    generator {

      count => 10

      type => "test"

    }

  }

  ```

 

 

• `count`:指定生成的数据条数。

 

• `type`:指定数据类型。

 

 

13.`http_poller`插件

 

• 用途:定期从 HTTP 端点拉取数据。

 

• 适用场景:适用于从 RESTful API 或其他 HTTP 服务中定期获取数据。

 

• 示例配置:

 

```plaintext

  input {

    http_poller {

      urls => {

        test => {

          method => get

          url => "http://example.com/api/data"

        }

      }

      schedule => { cron => "* * * * *" }

    }

  }

  ```

 

 

• `urls`:定义要拉取的 URL。

 

• `schedule`:定义拉取的频率,使用 Cron 表达式。

 

 

14.`mqtt`插件

 

• 用途:从 MQTT 消息代理中读取数据。

 

• 适用场景:适用于物联网(IoT)场景,从 MQTT 消息队列中接收数据。

 

• 示例配置:

 

```plaintext

  input {

    mqtt {

      broker => "tcp://localhost:1883"

      topics => ["sensor/data"]

    }

  }

  ```

 

 

 

15.`s3`插件

 

• 用途:从 Amazon S3 存储桶中读取数据。

 

• 适用场景:适用于从 S3 中读取日志文件或数据文件。

 

• 示例配置:

 

```plaintext

  input {

    s3 {

      bucket => "my-bucket"

      region => "us-east-1"

      sincedb_path => "/path/to/sincedb"

      interval => 60

    }

  }

  ```

 

 

• `bucket`:指定 S3 存储桶名称。

 

• `region`:指定 S3 存储桶所在的区域。

 

• `sincedb_path`:记录已处理文件的路径。

 

• `interval`:指定检查 S3 存储桶的频率(秒)。

 

 

16.`jdbc`插件

 

• 用途:从关系型数据库中读取数据。

 

• 适用场景:适用于从 MySQL、PostgreSQL 等数据库中读取数据。

 

• 示例配置:

 

```plaintext

  input {

    jdbc {

      jdbc_connection_string => "jdbc:mysql://localhost:3306/mydb"

      jdbc_user => "root"

      jdbc_password => "password"

      statement => "SELECT * FROM my_table"

    }

  }

  ```

 

 

• `jdbc_connection_string`:指定数据库连接字符串。

 

• `jdbc_user`和`jdbc_password`:指定数据库用户名和密码。

 

• `statement`:指定 SQL 查询语句。

 

 

17.`kinesis`插件

 

• 用途:从 Amazon Kinesis 数据流中读取数据。

 

• 适用场景:适用于从 Kinesis 数据流中接收实时数据。

 

• 示例配置:

 

```plaintext

  input {

    kinesis {

      stream_name => "my-stream"

      region => "us-east-1"

    }

  }

  ```

 

 

 

18.`mqtt`插件

 

• 用途:从 MQTT 消息代理中读取数据。

 

• 适用场景:适用于物联网(IoT)场景,从 MQTT 消息队列中接收数据。

 

• 示例配置:

 

```plaintext

  input {

    mqtt {

      broker => "tcp://localhost:1883"

      topics => ["sensor/data"]

    }

  }

  ```

 

 

 

19.`udp`插件

 

• 用途:从 UDP 网络端口接收数据。

 

• 适用场景:适用于接收轻量级的网络消息,如日志或监控数据。

 

• 示例配置:

 

```plaintext

  input {

    udp {

      port => 5000

      codec => plain

    }

  }

  ```

 

 

 

20.`zmq`插件

 

• 用途:从 ZeroMQ 消息队列中读取数据。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值