web-dev-qa-db-ja.com

ElasticSearchサーバーがランダムに動作を停止する

1つのlogstashサーバーから給電されている2つのESサーバーがあり、Kibanaでログを表示しています。これは、運用に入る前に問題を解決するためのPOCです。システムは約1か月間実行され、数日ごとに、Kibanaは夜のランダムな時間にログの表示を停止します。昨夜、Kibanaで受け取った最後のログエントリは18:30頃でした。 ESサーバーを確認したところ、マスターは実行していて、セカンダリは実行していない(/ sbin/service elasticsearchステータスから)と表示されましたが、ローカルホストでカールを実行でき、情報を返しました。何が起こっているのかわからない。とにかく、マスターノードでステータスを実行すると、次のようになります。

curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'
{
  "cluster_name" : "gis-elasticsearch",
  "status" : "red",
  "timed_out" : false,
  "number_of_nodes" : 6,
  "number_of_data_nodes" : 2,
  "active_primary_shards" : 186,
  "active_shards" : 194,
  "relocating_shards" : 0,
  "initializing_shards" : 7,
  "unassigned_shards" : 249
}

「ls ... nodes/0/indeces /」を介してインデックスを表示すると、何らかの理由で今日すべてのインデックスが変更されており、今日の日付の新しいファイルがあるため、後で追いつき始めていると思います両方のサーバーを再起動しましたが、最初に失敗した理由がわかりません。マスターのログを見ると、18:57に4つの警告エラーが表示され、その後2番目のクラスターがクラスタを離れます。セカンダリ(Pistol)のログが表示されません。なぜそれが機能しなくなったのか、または実際に何が起こったのかについてです。

[2014-03-06 18:57:04,121][WARN ][transport                ] [ElasticSearch Server1] Transport response handler not found of id [64147630]
[2014-03-06 18:57:04,124][WARN ][transport                ] [ElasticSearch Server1] Transport response handler not found of id [64147717]
[2014-03-06 18:57:04,124][WARN ][transport                ] [ElasticSearch Server1] Transport response handler not found of id [64147718]
[2014-03-06 18:57:04,124][WARN ][transport                ] [ElasticSearch Server1] Transport response handler not found of id [64147721]

[2014-03-06 19:56:08,467] [INFO] [cluster.service] [ElasticSearch Server1]が{[Pistol] [sIAMHNj6TMCmrMJGW7u97A] [inet [/10.1.1.10:9301]]を削除しました{client = true、data = false}、}、理由:zen-disco-node_failed([Pistol] [sIAMHNj6TMCmrMJGW7u97A] [inet [/10.13.3.46:9301]] {client = true、data = false})、pingに失敗した理由、試行[3]時間、それぞれ最大[30秒]タイムアウト[2014-03-06 19:56:12,304] [INFO] [cluster.service] [ElasticSearch Server1]が{[Pistol] [sIAMHNj6TMCmrMJGW7u97A] [inet [/10.1.1.10:9301 ]] {client = true、data = false}、}、理由:zen-disco-receive(join from node [[Pistol] [sIAMHNj6TMCmrMJGW7u97A] [inet [/10.13.3.46:9301]] {client = true、data = false}])

これが今後発生しないようにするために有効にできる追加のロギングまたはトラブルシューティングに関するアイデアはありますか?シャードが追いついていないので、今は解析に失敗したというデバッグメッセージがたくさん表示されています。追いつくと修正されると思います。

[2014-03-07 10:06:52,235] [DEBUG] [action.search.type] [ElasticSearch Server1]フェーズのすべてのシャードが失敗しました:[クエリ] [2014-03-07 10:06:52,223] [DEBUG] [action.search.type] [ElasticSearch Server1] [windows-2014.03.07] [3]、node [W6aEFbimR5G712ddG_G5yQ]、[P]、s [STARTED]:[org.elasticsearch.action.search.SearchRequest @の実行に失敗しました74ecbbc6] lastShard [true] org.elasticsearch.search.SearchParseException:[windows-2014.03.07] [3]:from [-1]、size [-1]:解析失敗[ソースの解析に失敗しました[{"facets": {"0":{"date_histogram":{"フィールド": "@ timestamp"、 "interval": "10m"}、 "global":true、 "facet_filter":{"fquery":{"query":{ "filtered":{"query":{"query_string":{"query": "(ASA AND Deny)"}}、 "filter":{"bool":{"must":[{"range":{ "@timestamp":{"from":1394118412373、 "to": "now"}}}]}}}}}}}}、 "size":0}]]

6
Eric

ESとKibanaの通常の容疑者は次のとおりです。

  • * ESで使用できるメモリが少なすぎる**(Marvelなどのプローブシステム、またはVM監視用に)JVMデータを送信する何かで調査できる)
  • 長いGC期間(GCロギングをオンにし、ESが応答を停止したときに発生しないかどうかを確認します)

また、ESの「通常の」セットアップはサーバーであり、1台のサーバーがダウンした場合の冗長性を向上させます。しかし、YMMV。

新しいG1ガベージコレクターも試すことができます。これは(私の場合)、Kibana ESでCMSよりもはるかに優れた動作をします。

GC期間の問題は通常、どこか別の場所を探しているときに発生し、ESが応答を停止するため、通常はデータの損失につながります。

これらで頑張ってください:)

2
Oct