1

我尝试使用 2 个不同的 logstash 索引器服务器进行负载平衡,但是当我向我的日志添加 1000 行时,filebeats 仅将日志发送到一台服务器(我启用了 stdout 并且可以直观地检查输出也可以查看哪个 logstash 服务器正在接收日志事件)

我的文件节拍配置:

filebeat:
  prospectors:
    -
      paths:
        - "D:/ApacheLogs/Test/access.*.log"
      input_type: log
      document_type: my_test_log
      scan_frequency: 1s
  registry_file: "C:/ProgramData/filebeat/registry"
output:
  logstash:
    hosts: ["10.231.2.223:5044","10.231.4.143:5044"]
    loadbalance: true
shipper:
logging:
  files:

是否会增加对在 filebeats 上禁用持久 TCP 连接的支持?我目前无法使用 AWS ELB,因为由于粘性连接,它总是发送到一个 logstash 服务器,直到它被重置。这不是适合它的架构吗?我应该改为发送到 redis 队列吗?在 filebeats 中,我不知道也找不到任何文档如何发送到 redis 队列?

像这样的东西不起作用,我什至找不到调试它的方法,因为 filebeats 没有留下日志

filebeat:
  prospectors:
    -
      paths:
        - "D:/ApacheLogs/Test/access.*.log"
      input_type: log
      document_type: my_test_log
      scan_frequency: 1s
  registry_file: "C:/ProgramData/filebeat/registry"
output:
  redis:
    # Set the host and port where to find Redis.
    host: "logstash-redis.abcde.0001.usw2.cache.amazonaws.com"
    port: 6379
shipper:
logging:
  level: warning
  # enable file rotation with default configuration
  to_files: true
  files:
    path: C:\temp\filebeat.log
  • 版本:在 Windows 服务器上:FileBeat(Windows - filebeat 版本 1.2.2 (386)) 在 logstash 索引器服务器上:logstash 2.3.2

  • 操作系统:Windows 服务器:Microsoft Windows NT 6.0.6002 Service Pack 2 Logstash 索引器服务器:RHEL Linux 4.1.13-19.30.amzn1.x86_64

4

2 回答 2

1

Filebeat 应该真正解决这个问题,但是由于他们宣传它尽可能轻巧,所以不要屏住呼吸。

我不知道在 Windows 上运行HAProxy有多么容易,但如果你能安装它,它应该可以解决你的问题:

https://serverfault.com/questions/95427/windows-replacement-for-haproxy

使用 Layer4 循环负载均衡。您可能希望使用 Filebeat 在每台机器上安装 HAProxy。1 HAProxy 前端将侦听 localhost:5044,并将映射到多个 Logstash 后端。

于 2016-07-18T21:47:05.000 回答
0

您可以通过以下配置将您的 filebeat 输出发送到 redis:

output:
   redis:
     host: "host"
     port: <port>
     save_topology: true
     index: "index-name"
     db: 0
     db_topology: 1
     timeout: 5
     reconnect_interval: 1
于 2016-08-24T10:34:57.953 回答