首页 文章

Logstash不打开filebeat的输入端口

提问于
浏览
0

我在设置ELK堆栈时遇到了麻烦,

Filebeat已配置,

filebeat.prospectors:
- input_type: log
    paths:
       - /var/log/syslog
       #- c:\programdata\elasticsearch\logs\*
       document_type: syslog

output.logstash:
  # The Logstash hosts
   hosts: ["localhost:5044"]
   bulk_max_size: 1024

这些是logstash的输入文件,

输入,

input {
   beats {
     type => beats
     port => 5044
   }
 }

对于输出,

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    manage_template => false
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
    document_type => "%{[@metadata][type]}"
  }
 }

我可以在filebeat日志中看到,它给了我这个错误,

2017-04-19T15:30:55+05:30 ERR Connecting error publishing events (retrying): dial tcp 127.0.0.1:5044: getsockopt: connection refused

显然,logstash没有打开端口,我也可以通过netstat看到端口没有打开监听 .

为什么logstash没有打开端口,我错过了什么?此外,当端口打开时,它会自动将数据发送到logstash,然后logstash到elasticsearch吗?

1 回答

  • 0

    当你在同一个盒子上有一个完整的logstash实例时,我有点混淆你为什么你有文件轮询日志 . Logstash可以做Filebeat可以做的事情并避免这个问题 .

    input {
      file {
        path => [ "/var/log/syslog" ]
        type => "syslog"
      }
    }
    

    但是,您想知道为什么Logstash没有打开端口 . 我建议改变你的节拍输入为此,测试一下:

    input {
       beats {
         type => beats
         host => "localhost"
         port => 5044
       }
    }
    

    这将告诉beats输入专门绑定到'localhost',这是Filebeat期望找到侦听端口的地方 .

相关问题