この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 3710|答える: 0

Elasticsearch(ES)は故障解にデータを書き込めません

[リンクをコピー]
掲載地 2023/04/17 12:09:09 | | | |
要件:ウェブサイトはキーワードの全文検索の結果が最新のデータを表示できず、サーバーにログインしてディスク容量を確認してもディスク容量が満杯であることを発見しました。実際、私自身の個人ウェブサイトであり、リソース情報監視などのツールがないため、最初に問題を見つけられなかったため、以前にもこのような失敗に遭遇したことがあります。

サーバーディスクの問題を解決した後、新しいドキュメント(データ追加)をElasticsearch(ES)に追加してみると、データが書き込めず、下図のように403エラーが発生します。



POST: /filecn/FileInfoEs での低レベル通話に失敗しました
# このAPI呼び出しの監査記録:
- [1] 悪い応答:ノード:http://xxxx:9200/ 取得時間:00:00:00.0068726
# OriginalException: Elasticsearch.Net.ElasticsearchClientException: リモートサーバーがエラーを返す: (403) 禁止。 通話:ステータスコード403から:POST /filecn/FileInfoEsより。 ServerError: Type: cluster_block_exception 理由:「ブロックされた: [FORBIDDEN/12/index read-only / allow delete (api)];」 ---> System.Net.WebException: リモートサーバーがエラーを返す: (403) 禁止。
   System.Net.HttpWebRequest.GetResponse()
   Elasticsearch.Net.HttpWebRequestConnection.Request[TResponse](RequestData requestData)
   --- 内部例外スタックトレースの終了---
# リクエスト:
<リクエストストリームが取得されていないか、シリアライザーによって完了まで読み込まれていません。ConnectionSettingsでDisableDirectStreaming()を設定し、レスポンスで強制的に設定します。>
# 返答:
<Responseストリームがキャプチャされていないか、すでにserializerで読み終えています。ConnectionSettingsでDisableDirectStreaming()を設定し、レスポンスで強制的に設定します。>
原因:ESが所在するサーバーディスク領域が原因で、ディスクの95%以上を格納するノードに1つ以上のシャードのインデックスが割り当てられると、インデックスは読み取り専用モードに強制されます。read_only_allow_delete属性が真の場合、ESインデックスはデータの読み取りと削除のみを許可し、データの追加や変更は許可しません

すべてのインデックス設定情報をご覧ください:http://127.0.0.1:9200/_settings/_all?pretty



解決

PUTコマンドをElasticsearchに送り、read_only_allow_deleteパラメータの値を次のように修正します。



Elasticsearch(ES)クラスターの健康状態:赤 故障解析
https://www.itsvse.com/thread-9543-1-1.html
(終わり)





先の:新参者の報告
次に:IT業界の三つの法則
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com