Y-Ken Studio

新しもの好きのデータエンジニアが四方山話をお届けします。

第3回elasticsearch勉強会でトークしました #elasticsearchjp

2014年2月7日にリクルートテクノロジーズで開催された「第3回 ElasticSearch勉強会」でトークしてきました!前回の皆様の発表はKibanaに関する情報がメインでしたが、今回は検索技術中心のガチな内容でとても楽しかったです。

懇親会では今回発表したYamabikoのコア部分である fluent-plugin-mysql-replicator を実際に利用している方もいらっしゃるなど、感謝感激雨あられでした!ありがとうございます!
その他にも2社合同で合同勉強会を開催しようといったお話を頂けるなど、実りのある時間を過ごせました。

続きを読む

MySQLテーブルへの更新/削除イベントを逐次取得するFluentdプラグイン「fluent-plugin-mysql-replicator」をリリースしました

f:id:yoshi-ken:20140109121316p:plain

任意のSQLクエリで取得した結果の差分から、insert/update/deleteイベントを検知するプラグインをリリースしました。イベント検知だけでなく、レコードの内容と共にElasticsearch/Solrへ同期を行う、Outputプラグインも同封しています。

これはあえてバイナリログ(MySQLBinlogAPI)は使わずに、SQLクエリの実行結果の差分を見てinsert/update/deleteイベントを検知します。
そのため、純粋なテーブル同期だけでなく、任意のJOINやVIEWテーブルを元とした差分同期処理が実現できるのが特徴です。

y-ken/fluent-plugin-mysql-replicator

続きを読む

個人情報を難読化するfluent-plugin-anonymizerの安定版をリリースしました #fluentd

photo by minnepixel

突然ですが皆さん、アプリログをFluentdで収集する際に個人情報となるデータの扱い、どうしていますか?

こういったログデータは個人情報保護や内部統制の観点から、データマスキングをしてから分析した方が好ましいです。
しかしながら、サーバにアクセス出来る人が限られるといった理由で問題の先送りをしているケースがあるかもしれません。
最近流行のログの見える化により、データマスキングされないまま多くの人がそういった情報にアクセス出来るようになっているのなら、余計にマズいですよね。

そこでデータマスキングを実現するfluent-plugin-anonymizerの出番です。
このプラグインを経由することで、文字列のハッシュ化と、IPv4/IPv6アドレスの丸め処理が出来ます。
リアルタイム分析用のElasticsearch+Kibanaといった検索ダッシュボードアプリへデータを格納する際にも有用ですね。

y-ken/fluent-plugin-anonymizer

続きを読む

Fluentd+Elasticsearch+Kibana構成で便利な、logstash形式インデックスの粒度をカスタマイズする方法

f:id:yoshi-ken:20140106222931p:plain

fluent-plugin-elasticsearchやKibanaのデフォルトであるlogstash形式では、年月日毎にインデックスを作成されて使われることを想定されています。 これは扱いやすいのですが万能では無く、次のような状況ではパフォーマンス的な観点で、このインデックスの粒度を変更することを検討すると良いケースがあります。

  • 粒度を細かくしたいケース(時間単位)

    • 日毎のインデックス作成では、elasticsearchに割り当てたメモリ量を超えてしまう
  • 粒度を荒くしたいケース(週単位/月単位/年単位)

    • 日毎のインデックス作成では容量が小さく、日常的に検索する範囲が複数のインデックスに渡るとき

Kibanaは年月日以外の粒度(時間・日・週・月・年)にも対応していますので、変更することも容易です。これは次の2つの設定変更で適用できます。

  • ログ収集を行うElasticsearchへ流し込む、Fluentdの設定
  • 検索側フロントエンド、Kibanaの設定(DashboardSettings->Index)

それでは早速、それぞれの設定の紹介をします。

続きを読む