![AWS 上的 Logstash + Elasticsearch 的多个实例](https://linux22.com/image/626003/AWS%20%E4%B8%8A%E7%9A%84%20Logstash%20%2B%20Elasticsearch%20%E7%9A%84%E5%A4%9A%E4%B8%AA%E5%AE%9E%E4%BE%8B.png)
我已经设置了一个 Cloudformation 模板来启动安装了 Logstash 和 Elasticsearch(未嵌入)的实例。
我在 Logstash 上配置了标准 tcp 输入并将其输出到 Elasticsearch 集群。
当我启动多个实例时,所有 Elasticsearch 实例都会相互查找、选举主实例、同步等。问题是,当我执行以下操作时:
curl -XGET 'http://localhost:9200/_cluster/nodes?pretty=1'
主节点且仅主节点向我显示一个附加节点:
“8kLMLhP-RHGdgcYGlt3dEQ”:{
“名称”:“Bling”,
“传输地址”:“inet[/10.226.186.84:9301]”,
“主机名”:“ip-10-226-186-84”,
“版本”:“0.90.9”,
“属性”:{
“客户端”:“true”,
“数据”:“false”
}
这是在 9301 上运行的 logstash 实例。我不明白它为什么这样做。
答案1
http://logstash.net/docs/1.3.3/outputs/elasticsearch#protocol
默认情况下,logstash 使用协议“node”,以便与 Elasticsearch 通信。它还使实例被视为 ES 节点,但实际上并不存储数据。
使用“传输”协议强制使用“主机”变量,这似乎与集群不兼容。
因此我认为不可能从 ES 集群中删除 logstash 实例,尽管这是无害的。