【发布时间】:2016-04-20 03:57:10
【问题描述】:
我目前正在使用logstash解析并输出几个类似命令的结果到elasticsearch,类似这样:
input {
exec {
type => 'hist'
command => '/usr/bin/somecommand'
interval => 900
codec => "json"
}
exec {
type => 'hist'
command => '/usr/bin/somecommand'
interval => 900
codec => "json"
}
exec {
type => 'hist'
command => '/usr/bin/somecommand'
interval => 900
codec => "json"
}
}
output {
if [type] == "hist" {
elasticsearch {
hosts => ["hostname.domain.com:9200"]
index => "monitor-hist-%{+YYYY-MM-dd}"
}
}
}
如果与 elasticsearch 的连接失败,我希望能够输出到 stdout 或文件,例如:
if _connectionfails_ {
stdout {
codec => rubydebug
}
}
这可能吗?或者在弹性不可用时管理数据的任何其他建议?
【问题讨论】:
-
当输入失败时你甚至会得到一个事件吗?如果没有,就没有任何东西可以过滤或输出。它将记录故障,因此您可以将 logstash 日志摄取到另一个弹性堆栈中并以这种方式查找故障。
-
通常情况下,如果连接失败,它会无限重试。
-
@PriyanshGoel 我在这里注意到:elastic.co/guide/en/logstash/current/… 但我不清楚它是如何“缓冲”这些数据的。所以说集群关闭了 30 多分钟。会有两次运行失败,这两个运行是否都会继续重试,直到集群启动?重试时数据是否保留在堆中?或者可能暂时提交到磁盘?
-
希望我的回答能消除你的疑惑
标签: elasticsearch logstash logstash-configuration