我有rsyslog通过TCP将日志转发到logstash。如果logstash不可用,则rsyslog将构建队列。
如果logstash可用,但elasticsearch已死或由于某种原因无法写入文件系统。
是否有一种方法可以让logstash拒绝进一步的TCP消息。
由于
答案 0 :(得分:0)
根据life of an event description:
由于某些下游原因(例如完整磁盘,权限问题,临时网络故障或服务中断),输出可能会失败或出现问题。大多数输出应该继续重试以发送与故障有关的任何事件。
如果输出失败,输出线程将一直等到此输出再次变为健康并且能够成功发送消息。因此,输出队列将停止被此输出读取,并最终将填充事件并阻止将新事件写入此队列。
完整输出队列意味着过滤器将阻止尝试写入输出队列。由于过滤器将被卡住,阻止写入输出队列,因此它们将停止从过滤器队列中读取,这最终将导致过滤器队列(输入 - >过滤器)填满。
完整的过滤器队列会在写入过滤器时导致输入阻塞。这将导致每个输入被阻止,导致每个输入停止处理来自输入获取新事件的任何地方的新数据。
这意味着如果elasticsearch输出开始失败,那么整个管道将被阻止,这就是你想要的。你看到了不同的东西吗?