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

时间:2015-07-01 07:51:15

标签: logstash logstash-forwarder logstash-configuration

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

input {     
    file {
        path => "/home/Desktop/Logstash-Input/**/*_log"
        start_position => "beginning"
    }
}

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

有没有办法在配置文件的文件输入中设置ip?

修改 我设法用logstash-forwarder这是一个推送模型(日志托运人/ logstash-forwarder将日志发送到logstash索引服务器),但我仍在寻找没有托运人的拉模型,其中logstash索引服务器将直接联系到远程主机。

3 个答案:

答案 0 :(得分:5)

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

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

它监视日志文件并将它们转发给Logstash或Elasticsearh。它还保留日志文件的状态,并保证事件将至少传送一次(取决于日志转速)。配置非常简单:

输入配置:

input_type: log
paths:
- /opt/app/logs

输出配置

output.logstash:
  hosts: ["remote_host:5044"]
  index: filebeat_logs

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

input {
  beats {
    port => 5044
  }
}

答案 1 :(得分:3)

Logstash不包含任何从其他计算机的文件系统中读取文件的魔力(这可能是一件好事)。您必须安装包含您感兴趣的日志的远程文件系统,或者您必须在远程计算机上安装日志托运器(例如Logstash)并配置它以将数据发送到您的当前的Logstash实例(或Redis,RabbitMQ或Kafka等中间代理)。

您还可以使用syslog守护程序(可能已安装在计算机上)通过syslog协议发送日志,但请记住,不能保证每个守护程序的最大允许长度消息。

答案 2 :(得分:-3)

您可以在路径中添加远程系统IP并从远程计算机访问日志。

input {     
file {
    path => "\\IP address/home/Desktop/Logstash-Input/**/*_log"
    start_position => "beginning"
}}