我的环境会产生大量的 Syslog 流量 - 这主要是由于在生产应用程序中保留调试级别日志记录的文化(不幸的是,改变这种趋势是不可能的,而且远远超出了我的薪酬等级)。
由于 UDP 数据量过大,数据包丢失,我已经不得不放弃使用 UDP。小型集中式系统日志环境(许多发送方、少数接收方)很快就不堪重负,单个系统日志服务器或其后备存储在负载下多次出现故障。
我现在有能力重新构建它。
我的想法是在我的客户端上安装 syslog-ng(已经是配置管理执行的标准),通过 HAProxy 集群发送 JSON 格式的消息,这些消息最终会停留在 Elasticsearch 集群上。另外,HAProxy 和 Elasticsearch 都是独立的,可以根据未来的需求进行水平扩展。
我暂时还看不到任何问题,但我也想听听其他人的意见。这是一个可行的计划吗?还有更好的选择吗?我应该寻找哪些补救措施?
注意:为了安全起见,我想澄清一下这个问题是关于将 TCP 系统日志流量发送到 HAProxy 进行负载平衡,而不是 HAProxy 自己对其流量或状态的记录
答案1
Graylog 和 ELK 是日志管理项目,它们也可以水平扩展,并且恰好使用 Elasticsearch 存储。输入可以按照您喜欢的方式进行负载平衡,当然,HAProxy 也有相关文章。
但是,您没有分享太多细节,因此无法对您的架构进行评论。为什么您的存储会出现故障(您可能应该先修复它)?每秒的消息速率是多少,这给您带来了问题?您考虑了多少个节点?您真的吗?每个问题都可以单独提出。