【发布时间】:2014-06-10 16:07:14
【问题描述】:
我有 rsyslog 通过 TCP 将日志转发到 logstash。如果 logstash 不可用,rsyslog 将建立队列。
如果logstash 可用,但elasticsearch 已死或由于某种原因无法写入文件系统。
logstash 有没有办法拒绝更多的 TCP 消息。
谢谢
【问题讨论】:
标签: elasticsearch logstash rsyslog
我有 rsyslog 通过 TCP 将日志转发到 logstash。如果 logstash 不可用,rsyslog 将建立队列。
如果logstash 可用,但elasticsearch 已死或由于某种原因无法写入文件系统。
logstash 有没有办法拒绝更多的 TCP 消息。
谢谢
【问题讨论】:
标签: elasticsearch logstash rsyslog
根据life of an event description:
由于某些下游原因(例如磁盘已满、权限问题、临时网络故障或服务中断),输出可能会失败或出现问题。大多数输出应不断重试以发送与失败有关的任何事件。
如果输出失败,输出线程将等待,直到该输出再次健康并能够成功发送消息。因此,输出队列将停止被此输出读取,最终将填满事件并阻止新事件写入此队列。
完整的输出队列意味着过滤器将阻止尝试写入输出队列。因为过滤器会卡住,阻塞写入输出队列,它们将停止从过滤器队列中读取,最终导致过滤器队列(输入->过滤器)填满。
在写入过滤器时,一个完整的过滤器队列将导致输入阻塞。这将导致每个输入阻塞,导致每个输入停止处理来自该输入获得新事件的新数据。
这意味着如果 elasticsearch 输出开始失败,那么整个管道将被阻塞,这正是您想要的。你看到了什么不同的东西吗?
【讨论】: