尝试将日志转发到 Logstash 时,Filebeat 问题“初始化发布者错误:未定义输出。”

Filebeat Issue " Error Initialising publisher: No outputs are defined. " when trying to forward logs to Logstash

我是 ELK Stack 的新手。 我正在尝试使用 Windows(ELK 服务器)和 Vagrant Unix CentOS VM(Filebeat Shipper)

来实现它

对于初学者,我正在尝试将 Unix Syslog 发送到 ELK 服务器并查看它是如何工作的

我已经在我的 Windows 机器上为 Logstash 配置了 central.conf 文件

input{

beats{
    port => 5044
    }  
}

output{

stdout{ }

elasticsearch{ 
     hosts => ["http://localhost:9200"] }

  }

Unix (CentOS - 7) 上的 Filebeat YAML 配置为

filebeat:
prospectors:
-
paths:
-"/var/log/*.log"
input_type: log
document_type: beat
registry: "/var/lib/filebeat"
output:
logstash:
hosts: ["127.0.0.1:5044"]
logging:
to_files: true
files:
path: "/var/log/filebeat"
name: filebeat.log
rotateeverybytes: 10485760
level: debug 

Elasticsearch 和 Logstash 运行在我的 windows 机器上正常运行

我现在面临以下两个问题,

1.When 我尝试 运行 Unix 上的 filebeat shipper,它给我以下错误

[root@localhost filebeat]# filebeat -e -v -c filebeat.yml -d "*"
2016/05/08 11:07:00.404841 beat.go:135: DBG Initializing output plugins
2016/05/08 11:07:00.404873 geolite.go:24: INFO GeoIP disabled: No paths were set under output.geoip.paths
2016/05/08 11:07:00.404886 publish.go:269: INFO No outputs are defined. Please define one under the output section.
Error Initialising publisher: No outputs are defined. Please define one under the output section.
2016/05/08 11:07:00.404902 beat.go:140: CRIT No outputs are defined. Please define one under the output section.

2。当我看到 Logstash 日志时,我发现它试图在“0.0.0.0:5044”而不是“127.0.0.1:5044”

上监听 Beats 输入
{:timestamp=>"2016-05-08T16:36:07.158000+0530", :message=>"Beats inputs: Starting input listener", :address=>"0.0.0.0:5044", :level=>:info}

这两个问题是否相互关联,我该如何解决它们,有人可以帮助我并为我指明正确的方向以使其正常工作。

非常感谢您提供的任何帮助。

错误说:

No outputs are defined. Please define one under the output section.

如果你的yaml文件与问题中的相同,那就是错误的。因为缩进在 yaml 中很重要。它必须像:

...
output:
  logstash:
    hosts: ["127.0.0.1:5044"]
...