Help us understand the problem. What is going on with this article?

elasticsearchを利用するときは容量を管理しようという話

More than 3 years have passed since last update.

awsのelasticsearch serviceをサービスのログ可視化に使う為にテスト運用を行っていた時に起こった事件をtipsとしてまとめました。

ある日kibanaを見たらログが全然入ってなかった

5分置きにs3に上がるelbログをlambdaでelasticsearchに流しているのに、last 15 minutesのログが表示されなかった。
Todayで見ると、なぜか日本時間AM9時からログが入ってなかった(AM10時実行時)。

lambdaの実行ログを見るとエラーが

403エラー?えっ認証エラー・・?

{
   "error": "ClusterBlockException[blocked by: [FORBIDDEN/8/index write (api)];]",
   "status": 403
}

エラー内容をgoogle先生に聞いても英語の記事ばっか・・

英語が出来なくてごめんなさい。

getは出来るんだけどね・・

getでは今まで通りレスポンスが返ってくる。
サーバーはちゃんと動いているみたい。

そんなときはelasticsearchのFreeStrageSpaceを確認しよう

awsコンソールのelasticsearchの該当ドメイン、またはcloudwatchの該当ドメインから見ることが出来ます。
この値が0になっていないですか?
0になっていたら(エラーメッセージは不自然ですが)getができてpostが出来ないのは理由がつきました。

解決方法

用件によってアプローチ方法は異なりますね。とりあえず列挙します。

elasticsearchの容量を上げる

インスタンスタイプを上げる方法と、EBSを追加する方法があります。これは排他ではないので、両方行う事が出来ます。

容量を節約する

elasticsearchにはデータの保存期間を設定することができます。
データの利用用途から、一週間で破棄するとか、一日で破棄するとか適切に設定出来ると良いですね。

FreeStrageSpaceにアラートを仕込む

cloudwatchで簡単に仕込めるはずです。
対応できる時間を考慮してアラートのしきい値を決めましょう。

適切にデータを送れるようになったね!

私の場合はEBSを追加して、なおかつTTLを一週間に設定しました。
無事に・・・

{
  "_index":"logs",
  "_type":"elb",
  "_id":"xxxxxxxx",
  "_version":1,
  "created":true
}

再度、ログがインポートされるようになりました!やったね!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした