Я обновил свой кластер ElasticSearch с 6.6 до 7.6.2, в рамках этого обновления были удалены поле _all и поля default .
Я обновил кластер, проверил логи, и, конечно же, один из моих шаблонов жаловался, что эти поля существуют. Все остальные мои шаблоны все еще правильно собирали и отправляли данные в ElasticSearch / Kibana.
Итак, используя консоль API, я запустил PUT для / _template / logsta sh -qa01-stats, чтобы обновить шаблон из :
{
"template" : "logstash-qa01-stats-*",
"settings" : {
"index.refresh_interval" : "10s"
},
"mappings" : {
"_default_" : {
"_all" : { "enabled" : false, "norms" : false },
"dynamic_templates" : [ {
"string_fields": {
"match": "*",
"match_mapping_type": "string",
"mapping": { "type": "text", "index": true }
}
}, {
"byte_fields" : {
"match" : "*",
"match_mapping_type" : "long",
"mapping" : { "type" : "double", "doc_values": true }
}
}, {
"short_fields" : {
"match" : "*",
"match_mapping_type" : "long",
"mapping" : { "type" : "double", "doc_values": true }
}
}, {
"integer_fields" : {
"match" : "*",
"match_mapping_type" : "long",
"mapping" : { "type" : "double", "doc_values": true }
}
}, {
"long_fields" : {
"match" : "*",
"match_mapping_type" : "long",
"mapping" : { "type" : "double", "doc_values": true }
}
}, {
"float_fields": {
"match": "*",
"match_mapping_type": "double",
"mapping": { "type": "double", "doc_values": true }
}
}],
"properties" : {
"@timestamp": { "type" : "date", "format": "date_optional_time" },
"@version" : { "type" : "keyword", "index": true },
"type_instance" : { "type" : "text", "index" : true, "norms" : false,
"fields" : {
"raw" : { "type": "text", "index" : true }
}
}
}
}
}
}
Кому:
{
"index_pattern": "logstash-qa01-stats-*",
"settings": {
"index.refresh_interval": "10s"
},
"mappings": {
"dynamic_templates": [{
"string_fields": {
"match": "*",
"match_mapping_type": "string",
"mapping": {
"type": "string",
"index": true,
"doc_values": true
}
}
}, {
"byte_fields": {
"match": "*",
"match_mapping_type": "long",
"mapping": {
"type": "double",
"doc_values": true
}
}
}, {
"short_fields": {
"match": "*",
"match_mapping_type": "long",
"mapping": {
"type": "double",
"doc_values": true
}
}
}, {
"integer_fields": {
"match": "*",
"match_mapping_type": "long",
"mapping": {
"type": "double",
"doc_values": true
}
}
}, {
"long_fields": {
"match": "*",
"match_mapping_type": "long",
"mapping": {
"type": "double",
"doc_values": true
}
}
}, {
"float_fields": {
"match": "*",
"match_mapping_type": "double",
"mapping": {
"type": "double",
"doc_values": true
}
}
}],
"properties": {
"@timestamp": {
"type": "date",
"format": "date_optional_time"
},
"@version": {
"type": "keyword",
"index": true
},
"type_instance": {
"type": "text",
"index": true,
"norms": false,
"fields": {
"raw": {
"type": "string",
"index": true,
"doc_values": true,
"ignore_above": 256
}
}
}
}
}
}
Консоль приняла это и ответила 200 OK.
Я вернулся к своим журналам, чтобы убедиться, что данные были обработано, и теперь все, что я получаю:
[2020-04-15T20:28:52,111][ERROR][logstash.outputs.elasticsearch] Attempted to send a bulk request to elasticsearch' but Elasticsearch appears to be unreachable or down! {:error_message=>"Elasticsearch Unreachable: [https://logstash-qa01:xxxxxx@ea33a63cd7ed235230b7aedcd62e4c37.eu-west-1.aws.found.io:9243/][Manticore::SocketTimeout] Read timed out", :class=>"LogStash::Outputs::ElasticSearch::HttpClient::Pool::HostUnreachableError", :will_retry_in_seconds=>64}
[2020-04-15T20:28:52,663][WARN ][logstash.outputs.elasticsearch] Marking url as dead. Last error: [LogStash::Outputs::ElasticSearch::HttpClient::Pool::HostUnreachableError] Elasticsearch Unreachable: [https://logstash-qa01:xxxxxx@ea33a63cd7ed235230b7aedcd62e4c37.eu-west-1.aws.found.io:9243/][Manticore::SocketTimeout] Read timed out {:url=>https://logstash-qa01:xxxxxx@ea33a63cd7ed235230b7aedcd62e4c37.eu-west-1.aws.found.io:9243/, :error_message=>"Elasticsearch Unreachable: [https://logstash-qa01:xxxxxx@ea33a63cd7ed235230b7aedcd62e4c37.eu-west-1.aws.found.io:9243/][Manticore::SocketTimeout] Read timed out", :error_class=>"LogStash::Outputs::ElasticSearch::HttpClient::Pool::HostUnreachableError"}
[2020-04-15T20:28:52,664][ERROR][logstash.outputs.elasticsearch] Attempted to send a bulk request to elasticsearch' but Elasticsearch appears to be unreachable or down! {:error_message=>"Elasticsearch Unreachable: [https://logstash-qa01:xxxxxx@ea33a63cd7ed235230b7aedcd62e4c37.eu-west-1.aws.found.io:9243/][Manticore::SocketTimeout] Read timed out", :class=>"LogStash::Outputs::ElasticSearch::HttpClient::Pool::HostUnreachableError", :will_retry_in_seconds=>64}
[2020-04-15T20:28:56,245][INFO ][logstash.outputs.elasticsearch] Running health check to see if an Elasticsearch connection is working {:healthcheck_url=>https://logstash-qa01:xxxxxx@ea33a63cd7ed235230b7aedcd62e4c37.eu-west-1.aws.found.io:9243/, :path=>"/"}
[2020-04-15T20:28:56,346][WARN ][logstash.outputs.elasticsearch] Restored connection to ES instance {:url=>"https://logstash-qa01:xxxxxx@ea33a63cd7ed235230b7aedcd62e4c37.eu-west-1.aws.found.io:9243/"}
Снова и снова. Никакие данные не регистрируются в ElasticSearch / Kibana, пока я не перезапущу logsta sh, затем пропущенные данные будут отправлены, но затем он прекратит отправку новых данных.
Этот кластер исправен годами, и я не понять, как изменение шаблона могло так плохо с этим справиться.
Я могу получить доступ к своему домену Elasti c и получить следующее:
{
"name" : "instance-0000000105",
"cluster_name" : "ea33a63cd7ed235230b7aedcd62e4c37",
"cluster_uuid" : "Tl84gLdZRI26oPe9FRWVuw",
"version" : {
"number" : "7.6.2",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
"build_date" : "2020-03-26T06:34:37.794943Z",
"build_snapshot" : false,
"lucene_version" : "8.4.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
Мои другие среды, использующие то же самое На кластер ElasticSearch влияет только тот факт, что я обновляю тот же шаблон, который сообщает о проблемах в своих средах.
У кого-нибудь есть какие-либо предложения относительно того, что здесь могло произойти?