我有一些日志,我想使用 logstash 来整理。它将是 logstash 代理,作为源服务器上的托运人前往中央日志服务器。我想使用从托运人到中央日志的 UDP,因此如果记录器失败,我可以完全隔离(我不希望 70 多台生产服务器受到任何影响)。我能看到使用 udp 进行传输的唯一方法是使用 syslog 格式输出。有谁知道我可以从 logstash 本地输出 UDP 的方法?(文档暗示了这一点,但我必须在 TCP 端遗漏一些东西?)
问问题
2759 次
2 回答
1
我的理解是,典型的方法是使用在远程机器上运行的更轻量级的东西(rsyslog,甚至是 Lumberjack),即将数据发送到您的中央 logstash 服务器。
听起来您希望 logstash 代理(转发器)在每台服务器上运行并将数据发送到代理。这篇博文(也作为下面的示例链接)很好地解释了为什么他们选择不在远程服务器上使用 logstash 转发器——他们吃掉了太多的 RAM
我使用 rsyslog 将 UDP 数据直接发送到 logstash 的设置。我还使用了一个设置,其中 rsyslog 是接收日志服务器,并将日志聚合到单独的日志文件中(基于服务器主机名),然后从这些文件中读取 logstash。
对于一些示例配置,请参见以下内容:
我建议使用 rsyslog 方法,因为 rsyslog 已经在您的服务器上运行的可能性高于 Lumberjack。rsyslog 上的文档也比 Lumberjack 多得多。如果您觉得需要,可以从简单开始,然后再添加更多复杂性。
于 2013-05-19T09:05:26.657 回答
0
您可以使用 UDP 输出插件本机输出 UDP
通过设置编解码器字段,您可以选择您喜欢的任何输出格式(例如 JSON)
于 2013-10-03T04:15:04.357 回答