–timestring)--separatorの置き換えフィードバックCuratorの1.2.0がリリースされました。1.1.0および1.2.0に関する記事を翻訳しておきます。ちなみに、Curatorとは、Elasticsearchに時系列のインデックス(例:LogstashやFluentdでログを保存)を保存している場合にそれらのインデックスを管理(削除したり、クローズしたり)するための便利なツールです。Curatorの概要については、GitHubリポジトリか前回の記事をご覧ください。Restoreが利用できるようになりました。Snapshotはある時点でのインデックスの写真を撮るように、バックアップを作成することができます。1.0.0が発表されてすぐに、この機能に関するリクエストが寄せられるようになりました。「Curatorにスナップショットを追加して!」もしくは「いつCuratorでスナップショットが使えるようになる?」といった感じです。これがあなたの要望なら、それはついに叶えられました。他の追加機能も一緒にです。新機能Curatorの新機能は以下のとおりです。1.1.0以前のcron記述が動作しないことを意味します。1.1.0にアップグレードする場合はコマンドも修正が必要となるので注意してください。シンプルにするために、commandsという概念を追加しました。ヘルプの出力もわかりやすくなっています。前のバージョンと同じタスクをCuratorは実行できますが、異なるフォーマットを用いるようになりました。30コマンドは、フラグとは異なりハイフンを前に付けないことに注意してください。似たような名前のフラグがあることに気をつけてください。--older-thanフラグは多くのコマンドに利用できます。指定される値は各ケースにおいて同一です。「指定された数よりも古いインデックス」となります。新しいコマンドのリストは次のとおりです。aliasallocationbloomclosedeleteoptimizeshowsnapshotコマンドのヘルプは次のコマンドで表示されます。--helpコマンドに関係あるフラグがすべて表示されます。スナップショット(snapshots)snapshotコマンドで、存在しているリポジトリにインデックスのスナップショットを保存することができます。Curatorはインデックス毎に1つのスナップショットを作成し、インデックスから名前をつけます。インデックスの名前がlogstash-2014.06.10の場合、スナップショットの名前はlogstash-2014.06.10となります。指定した条件を元に、シーケンシャルに、1つずつインデックスのスナップショットを作成していきます。REPOSITORY_NAMEこのコマンドは、20日以上古いインデックスすべてのスナップショットを作成し、REPOSITORY_NAMEで指定されたリポジトリに保存します。es_repo_mgrと呼ばれるリポジトリ作成を支援するスクリプトがCuratorには含まれています。ファイルシステムおよびS3タイプのリポジトリ両方の作成を支援します。古いインデックスのスナップショットを取ることができることに加えて、Curatorは最新のインデックスをアップロードする方法も提供します。Marvelのインデックスをアップロードするときに便利です。トラブルシューティングを目的として、パフォーマンスデータを他の人に見せる場合などです。REPOSITORY_NAMEこのコマンドでは、最新の3つのMarvelインデックスのスナップショットを指定されたリポジトリに保存できます。エイリアス(aliases)Curatorはすでに存在するエイリアスにインデックスを追加することも、削除することもできるようになりました。エイリアスがすでに存在している必要があります。エイリアスの作成はできません。last_weekという前の一週間のインデックスのエイリアスを保持していること想像してください。この場合、次の2つのコマンドを利用することで、エイリアスを管理できます。自動的にエイリアスの一部となるようにElasticsearchに設定しておくと、さらに便利です。この場合、新しいインデックスが自動的にthis_weekというエイリアスの一部になるようにしてあれば、以下のコマンドのみとなります。this_weekthis_weekとlast_weekのエイリアスのアップデートを保持できます。pattern)時には、指定したインデックスを操作から除外したくなる場合もあるでしょう。ここまでは、プレフィックスや日付によって選択されたインデックスのみを対象にしてきました。そこで、--exclude-patternオプションです。これは、指定したインデックスを除いて処理を行うことができます。logstash-2014.06.11というインデックスを決して削除したくないとします。この場合、次のコマンドのようになります。2014.06.11Curatorはデフォルトでlogstash-というプレフィックスにマッチしますが、2014.06.11というインデックスは対象外となります。routing)Elasticsearchはノードにタグを付けることができます。これらのタグはインデックスやシャードをクラスタのどこに配置するかをコントロールするために役立ちます。一般的なユースケースだと、高性能なSSDドライブを持ったノードをインデキシングのために、ハードディスクを持った性能の低いマシンは検索頻度が低い古いインデックスを配置するといった場合です。ssdと設定されているべきです。Curatorはこの時、インデックスをタグに基づいてオフピークの時間帯に再配置させることができます。tag=hddindex.routing.allocation.require.tag=hddという設定が2日よりも古いインデックスに適用されます。hddというノードに再配置される必要があると、Elasticsearchに伝えます。snapshots)これは、単にあなたの持っているインデックスやスナップショットがどんなものかを表示します。--show-indicesこれは、デフォルトプレフィックスのlogstash-にマッチするすべてのインデックスを表示します。REPOSITORY_NAMEこれは、指定されたリポジトリにある、デフォルトプレフィックスのlogstash-にマッチするすべてのスナップショットを表示します。management)前に説明したとおり、es_repo_mgrと呼ばれるヘルパースクリプトをCuratorは含んでいます。現時点では、fsとs3タイプをサポートしています。リポジトリを作る前に利用したいタイプのドキュメントを読むようにしてください。fsタイプのリポジトリを各ノードで使う場合は、同じ共有ファイルシステムに、同じパスでアクセスできなければなりません。パスの指定は--locationです。REPOSITORY_NAMEドキュメントWikiCuratorのドキュメントが更新され、オンラインにWiki形式でだれでも更新できるようになっています。コマンドやフラグのより詳細の情報はこちらで見つけることができます。興味があれば、ドキュメントを追加することもできます。1.1.0はPyPiリポジトリにあります。インストールは以下のとおりです。elasticsearch-curatorバージョン1.0.0からアップグレードする場合は以下のとおりです。elasticsearch-curatorバージョン1.0.0よりも古いバージョンからのアップグレードは以下のとおりです。elasticsearchで、古いパイションモジュールをを削除します。適切なバージョンが依存関係により再インストールされます。まとめCuratorの新機能は素晴らしいです!このリリースは大きな改善です。Issueに報告してください。Curatorが便利だと思ったら、私たちに伝えてください。#elasticsearchタグを付けてツイートしてください!Curatorはまだ、始まったばかりです。2.0のロードマップを作業中です。ここまで読んでいただきありがとうございます。v1.1.0のリリースから、数週間が経ちました。1.2.0をリリースしました。複数のログフォーマットオプション:Logstashフォーマットが利用可能これらの変更はCuratorドキュメントにも記載されています。更新(updates)ログ出力の整理:デフォルトのログ出力を整理しました。デバッグログはすべて表示されます。ドライランのログ出力の詳細化:テスト実行時に何が起きたかをわかりやすくしました。–timestring)前のリリースで、セパレータ文字を利用して、インデックス名のエレメントを分離することで、日付を計算しました。この設計の決定は、プログラムが管理するために設計されたLogstashのインデックスを使うのには簡単でした。Curatorは時系列インデックス管理に成長しています。これは、異なる命名規則のインデックスを意味しています。インターバルによって、日付の計算が必要になる場合もあります。--time-unitオプションが残っており、weeksという単位を指定することもできます。デフォルトの--timestringオプションは、以前のコマンドと同様の動作をしなければなりません。%Y.%Wこれが意味するものは、もし、単位にhoursをした場合、--timestringを指定しなかった場合は%Y.%m.%d.%Hとなります。これは、Pythonのstrftimeフォーマットで"年.月.日.時"を意味します。同様に、weeksを単位に指定した場合、Curatorはデフォルトの--timestringは%Y.%Wとなります。この機能は、日付の間にセパレーター文字のないインデックスでも機能します。production-20140724のような日時インデックスがある場合、2日よりも古いインデックスに対するブルームフィルタっキャッシュのオフのコマンドは次のようになります。%Y%m%dこの例で、デフォルトの単位はdaysであることに注意してください。hourly-2014072414のような時間インデックスの場合は次のようになります。%Y%m%d%H--separatorの置き換えもし、Curatorの前のバージョンでカスタムセパレータ文字を利用していた場合、次のように変更すべきです。-の用に置き換える必要があります。新しいコマンドは次のとおりです。%Y-%m-%d年(%Y)と月(%m)と日('%d’)の間にセパレータ文字を置くだけです。これは、また、Curatorで以前は不可能であったことをできるようにもします。異なるセパレータ文字の混在です。logs-2014.07.24-14というようなインデックスを処理するときに--timestringは%Y.%m.%d-%Hのようになります.--timestringの詳細はCuratorのドキュメントをご覧ください。フィードバックこれらの新しい機能はユーザのコメントやリクエストから来ています。機能のリクエストやバグを発見したら、こちらまで連絡してください。Twitterでもお待ちしています。IDは@elasticsearchです。