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

时间:2016-05-08 11:57:31

标签: unix logstash filebeat

我是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上的Filebeat YAML(CentOS-7)配置为

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.当我尝试在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}

这两个问题是否相互关联,如何解决这些问题,有人可以帮助我,并指出我正确的方向来实现这一目标。

真的感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:2)

错误说:

  

未定义任何输出。请在输出部分下定义一个。

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

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