使用Logstash从远程计算机读取带有文件输入插件的日志文件

lam*_*dar 3 logstash logstash-forwarder logstash-configuration

目前,我的日志和logstash运行在同一台计算机上,因此我使用此配置(使用拉模型)读取放置在本地计算机上的日志

input {     
    file {
        path => "/home/Desktop/Logstash-Input/**/*_log"
        start_position => "beginning"
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,我们在另一台计算机上运行了logstash,并希望读取日志远程机器。

有没有一种方法可以在配置文件的文件输入中设置IP?

编辑: 我设法用logstash-forwarder来做到这一点,pushtash-forwarder是一个推模型(log shipper / logstash-forwarder会将日志发送到logstash索引服务器),但我仍在寻找没有shipper的pull模型,logstash索引服务器将进入直接与远程主机联系。

Fer*_*ndo 5

看看FileBeat:https ://www.elastic.co/products/beats/filebeat

它不是拉模型,但它似乎比logstash-forwarder更好。

它监视日志文件并将其转发到Logstash或Elasticsearh。它还保留日志文件的状态,并保证事件将至少发送一次(取决于日志轮转速度)。真的很容易配置:

输入配置:

input_type: log
paths:
- /opt/app/logs
Run Code Online (Sandbox Code Playgroud)

输出配置

output.logstash:
  hosts: ["remote_host:5044"]
  index: filebeat_logs
Run Code Online (Sandbox Code Playgroud)

在Logstash端,您必须安装并配置Beats输入插件:

input {
  beats {
    port => 5044
  }
}
Run Code Online (Sandbox Code Playgroud)