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

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

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

Kibanaとは、ElasticSearchをバックエンドとする、データを可視化するGUIツールです。

Elasticsearch

Elasticsearchは、クラウド向けに構築された、RESTful な API を提供する分散型のサーチエンジンアプリケーションです。

Fluentd

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

Q&A

0回答

2482閲覧

[Logstash]アクセスログのタイムスタンプの差分をLogstashで計算したい

n_yoko

総合スコア32

Kibana

Kibanaとは、ElasticSearchをバックエンドとする、データを可視化するGUIツールです。

Elasticsearch

Elasticsearchは、クラウド向けに構築された、RESTful な API を提供する分散型のサーチエンジンアプリケーションです。

Fluentd

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

0グッド

0クリップ

投稿2019/11/05 11:38

前提・実現したいこと

fluentd×Logstash×Elasticsearch×Kibana環境で、サーバーのアクセスログ監視をしています。
Logstashのfilter機能を使って、同ログにおけるフィールド間の差分を計算したいです。

fluentedから転送されたアクセスログに、接客開始時間(start_time: string)、接客終了時間(end_time: string)フィールドが存在します。Logstashのfilter機能を用いて、これらのフィールド間の差分(接客終了時間 - 接客開始時間 = 接客時間)を計算、その値「接客時間(service_time:date)」を新フィールドに追加した状態で、Elasticsearchにデータ転送したいです。

ログデータ加工の流れ

サンプルログ

00001問い合わせ2019-11-05 10:00:00~2019-11-05 10:10:00

データ加工前

{ "number": "00001", // 受付番号 "business_type": "問い合わせ",  // 業務種別 "start_time": "2019-11-05 15:06:24", // 接客開始時間 "end_time": "2026-09-28 15:13:39"   // 接客終了時間 }

データ加工後

{ "number": 00001,   // 受付番号 "business_type": "問い合わせ", // 業務種別  "start_time": 2019-11-05 15:06:24, // 接客開始時間 "end_time": 2026-09-28 15:13:39    // 接客終了時間 "service_time: 00:10:00"        // 接客時間 }

やったこと・対応中

  • 【済】接客開始時間(start_time)と接客終了時間(end_time)のデータ型を、stringからdate型に変更する
  • 【済】アクセスログに新規フィールド「接客時間(service_time:date)」を追加
  • 【調査中】接客開始時間と接客終了時間の差分を計算して、その値をservice_timeフィールドに入れたい

logstash

1 2// 接客開始時間(start_time)と接客終了時間(end_time)のデータ型を、stringからdate型に変更する 3 date { 4 match => [ "start_time", "YYYY-MM-dd HH:mm:ss", "YYYY-MM-dd HH:mm:ss" ] 5 timezone => "Asia/Tokyo" 6 target => "start_time" 7 } 8 9 date { 10 match => [ "end_time", "YYYY-MM-dd HH:mm:ss", "YYYY-MM-dd HH:mm:ss" ] 11 timezone => "Asia/Tokyo" 12 target => "end_time" 13 } 14 15// アクセスログに新規フィールド「接客時間(service_time:date)」を追加 16// 【調査中】接客開始時間と接客終了時間の差分を計算して、その値をservice_timeフィールドに入れたい 17 18 mutate { 19 add_field => { 20 "service_time" => "???" ※新規フィールドは追加できましたが、フィールドの値に"接客時間"を入れる方法が不明です 21 } 22 } 23

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問