elasticsearch Elasticsearch无法解析主机
我们已经将elasticsearch从2.3.1升级到5.x版本,问题是多个elasticsearch实例之间没有同步,我可以在日志中看到2.3.1版本中没有出现的特殊异常 配置:
elasticsearch Elasticsearch无法解析主机,
elasticsearch,chef-infra,kibana,
elasticsearch,Chef Infra,Kibana,我们已经将elasticsearch从2.3.1升级到5.x版本,问题是多个elasticsearch实例之间没有同步,我可以在日志中看到2.3.1版本中没有出现的特殊异常 配置: elk_nodes_ips = [] elk_nodes_results = search(:node, "roles:elasticsearch") unless elk_nodes_results.empty? elk_nodes_results.sort!{|node1, node2| node1.name
elk_nodes_ips = []
elk_nodes_results = search(:node, "roles:elasticsearch")
unless elk_nodes_results.empty?
elk_nodes_results.sort!{|node1, node2| node1.name <=> node2.name}
elk_nodes_results.map{ |server|
elk_nodes_ips.push(server['hostname'])}
else
elk_nodes_ips.push('127.0.0.1')
end
data = "[#{elk_nodes_ips.join(",")}]"
elasticsearch_configure 'elasticsearch' do
# if you override one of these, you probably want to override all
path_data node['ElasticsearchWrapper']['path']['data']
path_logs node['ElasticsearchWrapper']['path']['logs']
configuration ({
'network.host' => '0.0.0.0',
'http.port' => 9200,
'discovery.zen.ping.unicast.hosts' => data
})
action :manage
end
elasticsearch.yml文件
cluster.name: elasticsearch
node.name: ElasticSearch-i-012d2c56e9920ec75
path.conf: "/etc/elasticsearch"
path.data: "/vol/data/elasticsearch"
path.logs: "/vol/log/elasticsearch"
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: "[172.18.51.98]"
请仔细查看此错误消息
无法解析主机[[ElasticSearch-i-036a95f01a737f4a2]
您发现前面有两个括号。一个括号来自ES使用的日志格式,但另一个似乎不知何故潜入了您的主机名。您可以通过检查
elasticsearch.yml
文件进行验证吗?仔细查看此错误消息
无法解析主机[[ElasticSearch-i-036a95f01a737f4a2]
你发现前面有两个括号。一个是ES使用的日志格式,但另一个似乎不知何故潜入了你的主机名。你能通过检查
elasticsearch.yml
文件进行验证吗?这一行是问题所在:data=“[{elk\u nodes u ips.join(“,”)”
您的意思是以后再这样做:
'discovery.zen.ping.unicast.hosts'=>elk\u nodes\u ips,
。不需要字符串咀嚼,自定义资源将为您处理(通过YAML序列化)。这一行是问题:数据=“[{elk\u nodes u ips.join(,”)”
您的意思是以后再这样做:
'discovery.zen.ping.unicast.hosts'=>elk_nodes_ips,
。无需字符串搜索,自定义资源将为您处理(通过YAML序列化)。添加了yml文件,您是否可以检查它?不要将数组放在双刻度中,而是将元素放在数组中,如[“172.18.51.98”]
-否则,双引号内的元素将用作主机名添加到yml文件中,请检查它。不要将数组放在双引号中,而是将元素放在数组中,如[“172.18.51.98”]
-否则,双引号内的元素将用作主机名
cluster.name: elasticsearch
node.name: ElasticSearch-i-012d2c56e9920ec75
path.conf: "/etc/elasticsearch"
path.data: "/vol/data/elasticsearch"
path.logs: "/vol/log/elasticsearch"
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: "[172.18.51.98]"