質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

Fluentd

Fluentdは、オープンソースのログ収集ツールです。ログの収集方法、ログの記録先などのログデータ処理を柔軟にカスタマイズでき、インプットおよびアウトプットが全てプラグインとして実装されています。

Q&A

解決済

2回答

2452閲覧

fluentd:日ごとにスライスするファイルが9時間ずれる

kotekichi

総合スコア17

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

Fluentd

Fluentdは、オープンソースのログ収集ツールです。ログの収集方法、ログの記録先などのログデータ処理を柔軟にカスタマイズでき、インプットおよびアウトプットが全てプラグインとして実装されています。

0グッド

0クリップ

投稿2019/02/04 01:17

現象

fluentdで日単位でログをまとめているが、スライス(ローテーション)されたファイルが9:00に作成され、9:00までのログが混じってしまう。

-rw-r--r-- 1 root root 152169 Feb 2 09:00 messages.20190201.log -rw-r--r-- 1 root root 148755 Feb 3 09:00 messages.20190202.log -rw-r--r-- 1 root root 155880 Feb 4 08:59 messages.20190203.log

fluentdのバージョンは td-agent 1.2.2
OSは Amazon Linux
localtimeのタイムゾーンは "Asia/Tokyo" を指定しているが、fluentdがlocaltimeをutcと思っていて、勝手にJSTに補正しているような感じがする。
日ごとにログをまとめているので、00:00でスライスされるようにし、ファイル内のログはその日のものだけにしたい。

現在の設定

/etc/td-agent/td-agent.conf

<source> @type tail format none path /var/log/messages pos_file /var/log/td-agent/messages.pos tag "ss-log.messages" </source> <match ss-log.messages.**> @type file format single_value append true path /data/system_log/messages.%Y%m%d <buffer tag,time> @type file path /var/tmp/fluent.messages.buffer flush_mode interval flush_interval 60s </buffer> </match>

試したこと

matchセクションに
timekey_use_utc false
timekey_zone JST-9
などを追加したが改善されず

環境変数「TZ」を追加したが、こちらも改善されず

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

take88さんからの情報提供で活路が開き、まずは最新バージョンへのアップデートを試みましたが、AmazonLinux1の最新バージョンは、インストールバージョンが最新となっており断念。(AmazonLinux2でないと最新バージョンにはならないとのこと)
情報提供のあったサイトのGitソースから、fluentd/plugin/output.rb を置き換えることで解決しました。

修正ソース
https://github.com/okkez/fluentd/blob/92225ca513dee17d5429fa53ed1df3d670d1579f/lib/fluent/plugin/output.rb

上記ソースから作成したパッチデータ

--- output.rb.org 2018-06-25 17:18:05.000000000 +0900 +++ output.rb 2019-02-05 18:40:15.577140674 +0900 @@ -803,20 +803,17 @@ if !@chunk_key_time && !@chunk_key_tag @buffer.metadata() elsif @chunk_key_time && @chunk_key_tag - time_int = time.to_i - timekey = (time_int - (time_int % @buffer_config.timekey)).to_i + timekey = calculate_timekey(time) @buffer.metadata(timekey: timekey, tag: tag) elsif @chunk_key_time - time_int = time.to_i - timekey = (time_int - (time_int % @buffer_config.timekey)).to_i + timekey = calculate_timekey(time) @buffer.metadata(timekey: timekey) else @buffer.metadata(tag: tag) end else timekey = if @chunk_key_time - time_int = time.to_i - (time_int - (time_int % @buffer_config.timekey)).to_i + calculate_timekey(time) else nil end @@ -825,6 +822,16 @@ end end + def calculate_timekey(time) + time_int = time.to_i + if @buffer_config.timekey_use_utc + (time_int - (time_int % @buffer_config.timekey)).to_i + else + offset = Time.at(time_int).utc_offset + (time_int - ((time_int + offset)% @buffer_config.timekey)).to_i + end + end + def chunk_for_test(tag, time, record) require 'fluent/plugin/buffer/memory_chunk'

投稿2019/02/07 07:35

kotekichi

総合スコア17

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

Fluentd v1.2.4 で修正された不具合があるのでこれかもしれません。

https://github.com/fluent/fluentd/pull/2054
https://github.com/fluent/fluentd/issues/1986

投稿2019/02/04 08:24

take88

総合スコア1351

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kotekichi

2019/02/05 06:23

アドバイスありがとうございます。 ビンゴな感じがしますので、バージョンアップをして試してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問