📜  Logstash-支持的输入(1)

📅  最后修改于: 2023-12-03 15:02:47.830000             🧑  作者: Mango

Logstash-支持的输入

Logstash 是一个开源的数据收集引擎,支持各种各样的数据源。作为一个程序员,你需要了解 Logstash 支持哪些输入方式,才能更好地进行数据采集和分析。下面是 Logstash 支持的各种输入方式:

1. 文件输入

Logstash 可以从本地或者远程文件中读取数据,支持使用 glob 路径、正则表达式或者 stdin 形式读取文件。可以使用 input 插件的 file 类型进行配置。

input {
  file {
    path => "/var/log/*.log"
    start_position => "beginning"
  }
}
2. 标准输入(stdin)

使用 input 插件的 stdin 类型,可以从标准输入中读取数据。

input {
  stdin {}
}
3. 网络输入
3.1. TCP/UDP

Logstash 可以通过 TCP 或 UDP 协议在网络上接收日志数据,需要配置 input 插件的 tcpudp 类型。

input {
  tcp {
    port => 5000
  }
  udp {
    port => 5000
  }
}
3.2. HTTP/HTTPS

Logstash 可以通过 HTTP 或 HTTPS 协议接收传入的日志数据,需要使用 input 插件的 httphttp_poller 类型。

input {
  http {
    port => 8080
  }
}
4. 消息队列

Logstash 支持多种消息队列,可以从消息队列中读取数据,包括:

  • Kafka
  • RabbitMQ
  • Redis
  • Amazon SQS
  • Google Pub/Sub
  • Microsoft Azure Service Bus

需要使用对应的 input 插件进行配置,例如:

input {
  kafka {
    bootstrap_servers => "localhost:9092"
    topics => ["test"]
  }
}
5. 其他输入

除了以上几种输入方式,Logstash 还支持其他一些输入方式,包括:

5.1. Beats

Beats 是一组轻量级开源数据采集器,可以将数据从服务器或者设备上发送到 Logstash 或 Elasticsearch。需要使用 input 插件的 beats 类型进行配置。

input {
  beats {
    port => 5044
  }
}
5.2. SNMP

Logstash 可以使用 input 插件的 snmp 类型从 SNMP 设备中读取数据。

input {
  snmp {
    hosts => ["localhost"]
    community => "public"
    version => "2c"
    object_ids => ["1.3.6.1.2.1.1"]
  }
}

以上就是 Logstash 支持的各种输入方式,希望对你有所帮助!