Fluentd+Elasticsearchでindex作成タイミングをJST0時にする
Fluentd →(ログ等)→ Elasticsearchの構成で、Fluentd側の設定を特に意識しないと、デフォルトでJST9時(UTC0時)に新しいindexが作成されます。
これだと、管理上不都合が起きることがあります。
イメージ
※以下のイメージは、アクセスログ等、時系列ログをElasticsearchに登録しているようなケースを想定して書いています
hogehoge-20xxxxxx
のように、日付でプレフィックスが付与された名前でindexが作成されます。
2017/1/1 JST9:00(UTC0:00)に作成されたindex名は、hogehoge-20170101
になります。
※hogehogeは設定ファイルに記述した任意のもの
その日(24時間)のログは1つのindexに入るのが管理上ベストだと思いますが、デフォルトの設定では、前述の通りJST9時(UTC0時)にindexが切り替わるため、上の図のようにindexをまたがってしまいます。
たとえば、1月2日のログが不要になりcloseしたいような場合、厳密に1月2日のログを対象にできません。
hogehoge-20170102
indexをcloseすると、1/2 9:00-1/3 8:59のログがcloseされてしまいます。
Fluentdの設定
デフォルトのFluentdの設定イメージは以下の感じです。
# td-agent.conf <store> type elasticsearch host 127.0.0.1 port 9200 logstash_format true logstash_prefix hogehoge flush_interval 3s logstash_dateformat %Y%m%d </store>
JST0:00にindexを作成する
JST0:00にindexを作成する(※)にはutc_index
オプションを設定ファイルに記述します。
値はfalse
にします。
# td-agent.conf <store> type elasticsearch host 127.0.0.1 port 9200 logstash_format true logstash_prefix hogehoge utc_index false flush_interval 3s logstash_dateformat %Y%m%d </store>
これで、JST0:00に新しいindexが作成されるようになります。 ※インストールサーバで設定しているTimezoneの0時