elasticsearchを使用してインデックスデータを定期的に削除する

elasticsearchを使用してインデックスデータを定期的に削除する

1. ESを使うこともある

リソースが限られている、またはビジネス上のニーズにより、最新の期間のデータのみを保存したいため、スケジュールされた時間にデータを削除する必要があります。

2. スクリプトを書く

vim del_es_by_day.sh
#!/bin/bash
#elasticsearch インデックスのスケジュールされた削除#author menard 2019-3-25
date=`date -d "-7日" "+%Y.%m.%d"`
/usr/bin/curl -v --user elastic:password -XDELETE "http://192.168.10.201:9200/*-$date"

実行権限を追加する chmod +x del_es_by_day.sh

3. テスト用のインデックスを作成する

テストを実行-2019.03.18
インデックスを付ける-2019.03.18 

4. スクリプトのテスト結果を実行すると、削除が成功したことがわかります。

5. スケジュールされたタスクを実行する

crontab -e
00 01 * * * /ワークスペース/スクリプト/del_es_by_day.sh

補足: Elasticsearch のスケジュールされたバックアップ インデックス データとリカバリ

スケジュールされたバックアップ スクリプト

Linuxのスケジュールされたタスクはcronサービスを使用して実行します

スケジュールされたタスクの cron 式の作成

crontab -e #cronスケジュールタスク編集に入る

スケジュールされたタスク

*/1 * * * * /opt/scheduler/es_bk.sh >> /opt/scheduler/bk_log.txt 2>&1

/opt/scheduler/ ディレクトリ内の es_bk.sh スクリプトは 1 分ごとに実行され、データの内容は /opt/scheduler ディレクトリ内の bk.log.txt ファイルに書き込まれます。

es_bk.shスクリプトの内容を確認する

#!/bin/bash
エコー '============================================================================='
#バックアップスナップショットを削除します curl -i -X ​​DELETE localhost:9200/_snapshot/es_backup/snapshot01
#再度バックアップ curl -i -X ​​PUT localhost:9200/_snapshot/es_backup/snapshot01
エコー '============================================================================'

ES バックアップ データには、バックアップするインデックス データのスナップショットが必要です。スナップショット名を指定する必要があり、同じスナップショットは使用できません。そのため、各バックアップの前に古いスナップショットを削除し、再度バックアップする必要があります。

ES バックアップとリカバリ

バックアップリポジトリ(ディレクトリ)を作成する

mkdir -p /bk/es/data
#権限を変更する chmod -R 777 bk

elasticsearch.ymlファイルを変更し、倉庫の場所を指定します。

リポジトリを初期化するためのリクエストを送信する

curl -i -H ""'Content-Type:application/json;charset=UTF-8'"" -X PUT --data '{"type": "fs","settings": {"location": "/bk/es/data"}}' localhost:9200/_snapshot/es_backup

es_backupはバックアップ名前空間であり、任意に指定できます。

最初のスナップショットを作成する

curl -i -X ​​PUT localhost:9200/_snapshot/es_backup/snapshot01

es_backup を使用して、es のすべてのインデックス データを snapshot01 にバックアップします。 もちろん、指定したインデックスのみをバックアップすることもできます。

curl -i -H ""'Content-Type:application/json;charset=UTF-8'"" -X PUT --data '{"indices": "'bk_user_index_server'"}' localhost:9200/_snapshot/es_backup/snapshot01

スケジュールされたタスクを再開する

systemctl 再起動 cron

インデックスを復元

割り当てを復元する

curl -i -H ""'Content-Type:application/json;charset=UTF-8'"" -X POST --data '{"indices": "'bk_user_index_server'"}' localhost:9200/_snapshot/es_backup/snapshot01/_restore

すべてを復元

curl -i -X ​​POST localhost:9200/_snapshot/es_backup/snapshot01/_restore

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。

以下もご興味があるかもしれません:
  • Elasticsearch ソースコード分析インデックスアクション実装
  • Elasticsearch Recoveryインデックスのシャード割り当ての詳細な説明
  • Elasticsearch ドキュメント インデックスの基本操作の追加、削除、変更、クエリの例
  • Elasticsearch の逆インデックスとインデックス操作
  • ElasticSearch のインデックス断片化の合理的な割り当て原則
  • ElasticSearch にインデックスコード例の分析機能を追加
  • Elasticsearch インデックス データ関数のソース コード例

<<:  MySQLのインデックス選択と最適化の詳細な説明

>>:  CSSはフロートをシミュレートして、画像の左右を囲む中央テキストの効果を実現します。

推薦する

MySQLの構文、特殊記号、正規表現の詳細な説明

Mysql でよく使用される表示コマンド1. 現在のデータベース サーバー内のデータベースの一覧を表...

MySQL 8.0.15 winx64 解凍版のインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 8.0.15 winx64解凍版のインストールと設定方法を紹介します。具体...

データベース復旧エラーの原因となる MySQL 文字セットの簡単な分析

MySQL の文字セットエンコーディングが正しくないデータをインポートすると、エラーが表示されます。...

mysql5.7.17.msi インストール グラフィック チュートリアル

mysql-5.7.17.msiのインストール、スクリーンショットに従ってください、ステップバイステ...

LinuxでのDNSサーバーの設定の詳細な説明

1. DNSサーバーの概念インターネットでの通信には IP アドレスの助けが必要ですが、数字に対する...

Baidu 入力メソッドが API を公開、自由に移植して使用できると主張

百度入力方式の担当者は、百度入力方式のオープンAPIの最大の利点は操作が便利であることであり、プラッ...

QQブラウザ機能を実装するためのCSS

コード知識ポイント1. fullpage.jsを組み合わせてフルスクリーンスクロールを実現する2. ...

MySQL 5.7.20 zip インストール チュートリアル

MySQL 5.7.20 zipインストール、具体的な内容は次のとおりです(1)圧縮パッケージを解凍...

Linuxでブーストライブラリをインストールするための完全な手順

序文Boost ライブラリは、標準ライブラリのバックアップとして機能し、C++ 標準化プロセスの開発...

Vue.js と MJML でレスポンシブなメールを作成する

MJML は、開発者が美しく、応答性に優れ、あらゆるデバイスやメール クライアントで動作する魅力的な...

WeChat パブリック アカウントの録音ファイルを再生して保存します (amr ファイルを mp3 に変換)

目次オーディオトランスコーディングツール原理JAVE プロジェクトの問題このプロジェクトの特徴拡張機...

MySQLのマスタースレーブレプリケーションと読み取り書き込み分離を理解するための記事

目次導入1. MySQL マスタースレーブレプリケーション1. MySQLレプリケーションタイプ2....

Docker に Elasticsearch 7.6.2 をインストールするチュートリアル

DockerをインストールするDocker をインストールする必要がありますが、それ以上の指示はあり...

Ubuntuのソースリスト(ソースリスト)を変更する方法詳細説明

導入Ubuntu のデフォルトのソースは国内サーバーではないため、更新されたソフトウェアのダウンロー...

H5でクリックされたときにaタグの背景色をキャンセルする方法

1. モバイル端末でクリックされたときにタグの青色を解除する { -webkit-tap-highl...