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 バージョン 5.0 ではストアド プロシージャのサポートが開始されました。ストアド プロ...

js 日付と時刻のフォーマット方法の例

js 日付時刻形式日付と時刻を指定された形式に変換します。例: YYYY-mm-dd HH:MM は...

Linux での UDP について学ぶ

目次1. UDPとLinuxの基礎の紹介2. 各機能の使い方1. ソケット機能の使用2. バインド機...

ネイティブ JavaScript でシンプルな Gobang ゲームを実装する

この記事では、JavaScriptで簡単なGobangゲームを実装するための具体的なコードを参考まで...

docker の実行に必要な権限の分析

Docker を実行するには root 権限が必要です。非 root ユーザーに docker コマ...

jsを使用してシンプルなカルーセル効果を実現する

この記事では、シンプルなカルーセル効果を実現するためのjsの具体的なコードを参考までに紹介します。具...

最小限のルートファイルシステムを構築するためにbusyboxを移植するための詳細な手順

Busybox: 小さなコマンドが詰まったスイスアーミーナイフ。ステップ1: ディレクトリ構造を作成...

Windows での MySQL スケジュールバックアップ スクリプトの実装

Windows サーバーでデータベース データを定期的にバックアップする場合は、Windows タス...

CSSは高さを設定せずにdivを完全に中央に配置することを実現します

必要とする本文の下のdivは垂直方向に中央揃えになっていますdiv 内のテキストを垂直中央に配置する...

DockerHubイメージリポジトリの使い方の詳しい説明

これまで使用していたイメージはすべて DockerHub パブリック リポジトリから取得していました...

マークアップ言語 - リスト

標準化されたデザインソリューション - マークアップ言語とスタイルマニュアルWeb 標準ソリューショ...

メタタグコードを使用して、360 デュアルコアブラウザを互換モードではなく高速モードにデフォルト設定します。

あるウェブサイトでは、ユーザーが WebKit カーネルでページを開くことを期待して、HTML5 と...

Linux での scp および sftp コマンドの詳細な説明

目次序文1. SCPの使用法2. sftpを使用する3. scp と sftp の違いは何ですか?ど...

Ubuntuのインストール Matlab2020b の詳細なチュートリアルとリソース

目次1. リソースファイル2. インストール2.1 詳細な手順2.1.1 ディスクイメージのマウント...

テーブルの4辺を上下左右にスクロールするように固定する方法

質問:最近、プロジェクトの統計を行っていたときに、テーブルを上下にスクロールしたときにテーブルの先頭...