我已经设置了一个 Cloudformation 模板来启动一个安装了 Logstash 和 Elasticsearch(未嵌入)的实例。
我在 Logstash 上配置了标准 tcp 输入并将其输出到 Elasticsearch 集群。
当我启动多个实例时,所有的 Elasticsearch 实例都会找到彼此,选出一个 Master,同步等等。问题是当我这样做时:
curl -XGET 'http://localhost:9200/_cluster/nodes?pretty=1'
主节点,只有主节点向我展示了一个额外的节点:
“8kLMLhP-RHGdgcYGlt3dEQ”:{
“名称”:“Bling”,
“transport_address”:“inet[/10.226.186.84:9301]”,
“主机名”:“ip-10-226-186-84”,
“版本” :“0.90.9”,
“属性”:{
“客户端”:“真”,
“数据”:“假”
}
这是在 9301 上运行的 logstash 实例。我不明白它为什么这样做。
http://logstash.net/docs/1.3.3/outputs/elasticsearch#protocol
默认情况下,logstash 使用允许它与 Elasticsearch 对话的协议“节点”。它还使实例被视为一个 ES 节点,但实际上并没有存储数据。
使用“传输”协议强制使用“主机”变量,这似乎与集群不兼容。
所以我认为不可能从 ES 集群中删除 logstash 实例,虽然无害。