<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">

  <channel>
    <title>Fluentd on @johtaniの日記 3rd</title>
    <link>https://blog.johtani.info/tags/fluentd/</link>
    <description>Recent content in Fluentd on @johtaniの日記 3rd</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ja</language>
    <lastBuildDate>Tue, 27 Jan 2015 19:01:01 +0900</lastBuildDate><atom:link href="https://blog.johtani.info/tags/fluentd/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>データ転送ミドルウェア勉強会に参加しました。#dtm_meetup</title>
      <link>https://blog.johtani.info/blog/2015/01/27/data-transfer-middleware-meetup/</link>
      <pubDate>Tue, 27 Jan 2015 19:01:01 +0900</pubDate>
      
      <guid>https://blog.johtani.info/blog/2015/01/27/data-transfer-middleware-meetup/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://eventdots.jp/event/312015&#34;&gt;データ転送ミドルウェア勉強会&lt;/a&gt;に参加しました。&lt;/p&gt;
&lt;p&gt;以下は、テキトー自分メモです。&lt;/p&gt;
&lt;!-- more --&gt;
&lt;h2 id=&#34;バルクデータロードツールembulkリリース--fluentdの柔軟性と堅牢性をバルクでも-トレジャーデータ-古橋貞之氏&#34;&gt;『バルクデータロードツール「Embulk」リリース 〜 fluentdの柔軟性と堅牢性をバルクでも』 トレジャーデータ 古橋貞之氏&lt;/h2&gt;
&lt;p&gt;スライド：未定&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;パラレルにデータをバルクロード、プラグインで&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;a href=&#34;http://eventdots.jp/event/312015&#34;&gt;データ転送ミドルウェア勉強会&lt;/a&gt;に参加しました。&lt;/p&gt;
&lt;p&gt;以下は、テキトー自分メモです。&lt;/p&gt;
&lt;!-- more --&gt;
&lt;h2 id=&#34;バルクデータロードツールembulkリリース--fluentdの柔軟性と堅牢性をバルクでも-トレジャーデータ-古橋貞之氏&#34;&gt;『バルクデータロードツール「Embulk」リリース 〜 fluentdの柔軟性と堅牢性をバルクでも』 トレジャーデータ 古橋貞之氏&lt;/h2&gt;
&lt;p&gt;スライド：未定&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;パラレルにデータをバルクロード、プラグインで&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;CSVデータとか、ロードするの辛いよね。パース失敗→書き換えてリトライ→パース失敗。。。さて、できたからcronで。。。また失敗&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fluentdはストリームデータを流すのはいいけど、すでにある大量データをロードするのがつらい。なので。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;名前はembarkにかけてembulk&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;コアはJava、プラグインはRuby&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;デモ。実行の仕方とプラグインの実装の仕方&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;プラグインはrunメソッドとinitializeを実装。runメソッドがスレッド実装される。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;ロードマップ（いくつか未実装のもの）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;コントリビューションの方法。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ブログとか、プラグイン書くとか、Windowsサポートとか、とか。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;QA&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Q：JSONだとスキーマフリーだけど？&lt;/li&gt;
&lt;li&gt;A：Guessでスキーマを固定させたかった。&lt;/li&gt;
&lt;li&gt;Q：なんでJava？&lt;/li&gt;
&lt;li&gt;A：性能です。性能です。&lt;/li&gt;
&lt;li&gt;Q：executorでいろんなところで動かせるという話ですが、どういうexecutorを考えてますか？&lt;/li&gt;
&lt;li&gt;A：まずは、Hadoopでの実行。Yarnなどでタスクを投げるってもアリじゃないかと。&lt;/li&gt;
&lt;li&gt;Q：できるできないがプラグインによってありそうだけど、embulk的には許容するか？&lt;/li&gt;
&lt;li&gt;A：許容するしかないすね。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;世界で利用されるファイル転送ツールhulftセゾン情報システムズ-hulft事業部-庄司吉徳氏&#34;&gt;『世界で利用されるファイル転送ツールHULFT』セゾン情報システムズ HULFT事業部 庄司吉徳氏&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;20年近い歴史あり&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;MFT＝Managed file transfer&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;FTPだけだと、整合性の保証ととかジョブとの連携とかが足りない&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;QA&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Q：クライアントとサーバのソフトに違いがないとの話でしたが、セキュアな環境でTCPポート開けないといけないとかありますが、どーやってますか？&lt;/li&gt;
&lt;li&gt;A：エンタープライズのお客様は基本的に専用線を引くのであんまりきにする人はいないです。もちろん、専用のプロキシ製品もあります。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;fluentd-2015---v1に向けて--トレジャーデータ-中川真宏氏&#34;&gt;『Fluentd 2015 - v1に向けて -』トレジャーデータ 中川真宏氏&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fluentdのロードマップとか&lt;/li&gt;
&lt;li&gt;v0.11は存在しないので、話にあげないで下さい。&lt;/li&gt;
&lt;li&gt;v0.12（current stable）、FilterとLabelが導入された&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;h2o---httpをより便利により速くディーエヌエー-奥一穂氏&#34;&gt;『H2O - HTTPを、より便利に、より速く』ディー・エヌ・エー 奥一穂氏&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded>
    </item>
    
    <item>
      <title>第2回elasticsearch勉強会を開催しました！ #elasticsearchjp</title>
      <link>https://blog.johtani.info/blog/2013/11/12/elasticsearch-japan-user-meetup-no2/</link>
      <pubDate>Tue, 12 Nov 2013 18:16:00 +0900</pubDate>
      
      <guid>https://blog.johtani.info/blog/2013/11/12/elasticsearch-japan-user-meetup-no2/</guid>
      <description>&lt;p&gt;第2回を開催しました！
すごい、140人くらいくらいの参加登録者（参加者は１００人ちょっと！）がいて、びっくりです。
ステキな会場を提供していただいた、&lt;a href=&#34;http://recruit-tech.co.jp/recruitment/&#34;&gt;リクルートテクノロジーズ&lt;/a&gt;さん、運営していただいた方々、スピーカーの皆さん、参加者の皆さん本当にありがとうございました。
今回も素敵な看板ありがとうございます。&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;第2回を開催しました！
すごい、140人くらいくらいの参加登録者（参加者は１００人ちょっと！）がいて、びっくりです。
ステキな会場を提供していただいた、&lt;a href=&#34;http://recruit-tech.co.jp/recruitment/&#34;&gt;リクルートテクノロジーズ&lt;/a&gt;さん、運営していただいた方々、スピーカーの皆さん、参加者の皆さん本当にありがとうございました。
今回も素敵な看板ありがとうございます。&lt;/p&gt;


&lt;link rel=&#34;stylesheet&#34; href=&#34;https://blog.johtani.info/css/hugo-easy-gallery.min.css&#34; /&gt;
&lt;div class=&#34;box&#34; style=&#34;max-width:300&#34; &gt;
  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope
    itemtype=&#34;http://schema.org/ImageObject&#34;&gt;
    &lt;div class=&#34;img&#34; &gt;
      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;https://blog.johtani.info/images/entries/20131112/es_signboard.jpg&#34;  /&gt;
    &lt;/div&gt;
    &lt;a href=&#34;https://blog.johtani.info/images/entries/20131112/es_signboard.jpg&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;
  &lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;今回もしっかり楽しめたので、次回も頑張ります！&lt;/p&gt;
&lt;p&gt;今回は、&lt;a href=&#34;https://groups.google.com/forum/#!forum/elasticsearch-jp&#34;&gt;elasticsearch-jp&lt;/a&gt;MLの紹介とかをできたのでよかったかなぁと。
ぜひ、活用してください！どんな質問でもいいので。&lt;/p&gt;
&lt;p&gt;あと、スライドに入ってた例の本もよろしくです。&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;ということで、懇親会も盛り上がったし楽しかったです。
今後も場の提供＋自分の勉強のトリガーとして、開催していくので、ご協力お願いします！
聞きたい話など、MLや@ツイートしていただければと。&lt;/p&gt;
&lt;h2 id=&#34;elasticsearchのrouting機能株式会社シーマーク大谷純johtani&#34;&gt;elasticsearchのRouting機能：株式会社シーマーク　大谷　純　（@johtani）&lt;/h2&gt;
&lt;p&gt;スライド：&lt;a href=&#34;https://blog.johtani.info/images/entries/20131112/About_es_routing.pdf&#34;&gt;Routing機能&lt;/a&gt;※スライドはPDFです。&lt;/p&gt;
&lt;p&gt;ド緊張で、大した発表ではなかったですが。。。
どちらかと言うとSolr本の紹介だったかもなぁ。スミマセン。&lt;/p&gt;
&lt;p&gt;※スライドが一部文字が消えてるので、作りなおすかも。&lt;/p&gt;
&lt;h2 id=&#34;elasticsearchを使ったbaas基盤の開発仮株式会社富士通ソフトウェアテクノロジーズ-滝田聖己さんpisatoshi&#34;&gt;ElasticSearchを使ったBaaS基盤の開発(仮)：株式会社富士通ソフトウェアテクノロジーズ 滝田聖己さん（@pisatoshi）&lt;/h2&gt;
&lt;p&gt;スライド：&lt;a href=&#34;https://speakerdeck.com/pisatoshi/elasticsearch-trial-and-error&#34;&gt;https://speakerdeck.com/pisatoshi/elasticsearch-trial-and-error&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;本日はお越しいただきありがとうございました！しかも静岡から！今後もよろしくお願い致します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;EnchantMoonでシステム構成ｗ&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;0.17.0から利用されていると。（スゴイ）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;プライマリのデータストア！ただし、登録元データはMySQLにもある。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;階層も深く、大きめのドキュメント。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;レプリカ１、インデックスのバックアップも取ってないと。。。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;ルーティングの機能&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;DynamicMappingの問題点&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;マッピング定義が肥大、型がコンフリクト。。。苦労しっぱなし&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;データ登録は１台にして、１台で一気に登録してから再配置&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;実際に運用とかされてるので、いろんなノウハウがまだまだありそう！&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;kibana入門水戸祐介さんy_310&#34;&gt;Kibana入門：水戸祐介さん（@y_310）&lt;/h2&gt;
&lt;p&gt;スライド：&lt;a href=&#34;https://speakerdeck.com/y310/kibanaru-men&#34;&gt;https://speakerdeck.com/y310/kibanaru-men&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;（やっぱりru-menになってるｗ）&lt;/p&gt;
&lt;p&gt;実は、押しかけて話してもらうように説得したのでした。今後もよろしくです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;COOKPADの方によるKibanaのお話。&lt;/li&gt;
&lt;li&gt;Kibanaの利点とかなんで？とか。&lt;/li&gt;
&lt;li&gt;画面構成の説明から&lt;/li&gt;
&lt;li&gt;ダッシュボードは必ず保存して！リロードしたら悲しい思いをしてしまうので。&lt;/li&gt;
&lt;li&gt;sparkline便利そうだなぁ。ほんとに、データサイエンティスト系のツールを目指してるのかな&lt;/li&gt;
&lt;li&gt;一通り、ダッシュボードに配置できるパネルの説明してもらえたのですごく参考になりました！&lt;/li&gt;
&lt;li&gt;Tips周りが役に立ちそう。not_analyzedは重要ですよね。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;lt&#34;&gt;LT&lt;/h2&gt;
&lt;h3 id=&#34;データ集計用ダッシュボードブラウザとしても使えるelasticsearchkibana-v3を利用する際の運用ノウハウ紹介株式会社リブセンス-ykentaro-さん-yoshi_ken-さん&#34;&gt;「データ集計用ダッシュボードブラウザとしても使えるElasticSearch＋Kibana v3を利用する際の運用ノウハウ紹介」：株式会社リブセンス Y.Kentaro さん (@yoshi_ken) さん&lt;/h3&gt;
&lt;p&gt;スライド：&lt;a href=&#34;http://www.slideshare.net/y-ken/elasticsearch-kibnana-fluentd-management-tips&#34;&gt;http://www.slideshare.net/y-ken/elasticsearch-kibnana-fluentd-management-tips&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Kibanaの紹介とかFluentdの紹介。&lt;/li&gt;
&lt;li&gt;Tips満載すばらしい。&lt;/li&gt;
&lt;li&gt;JDBC riverは0.90.6ではうまく動かないので、気をつけてと。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;fluentd-as-a-kibanarepeatedly-さん&#34;&gt;「Fluentd as a Kibana」：@repeatedly さん&lt;/h3&gt;
&lt;p&gt;スライド(gist)？：&lt;a href=&#34;https://gist.github.com/repeatedly/7427856&#34;&gt;https://gist.github.com/repeatedly/7427856&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Kibanaがfluentdの中で動くと！？&lt;/p&gt;
&lt;h3 id=&#34;authプラグインでアクセスコントロール株式会社エヌツーエスエム-菅谷信介さん-shinsuke_sugaya&#34;&gt;「Authプラグインでアクセスコントロール」：株式会社エヌツーエスエム 菅谷信介さん (@shinsuke_sugaya)&lt;/h3&gt;
&lt;p&gt;スライド：&lt;a href=&#34;http://www.slideshare.net/shinsuke/es-auth-plugin&#34;&gt;http://www.slideshare.net/shinsuke/es-auth-plugin&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;API毎？インデックスごと？にアクセス制御ができるプラグイン&lt;/p&gt;
</content:encoded>
    </item>
    
    <item>
      <title>apache-loggen &#43; fluentd &#43; elasticsearch &#43; kibana = ログ検索デモ</title>
      <link>https://blog.johtani.info/blog/2013/06/10/fluent-es-kibana/</link>
      <pubDate>Mon, 10 Jun 2013 23:34:00 +0900</pubDate>
      
      <guid>https://blog.johtani.info/blog/2013/06/10/fluent-es-kibana/</guid>
      <description>&lt;p&gt;もう何番煎じだ？ってくらい書かれてますが、コリもせず書いてみました。
Elasticsearch＋Kibanaの環境を作って、タムタムさんのログ生成ツールからApacheのダミーログを流しこんで入れてみました。&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;もう何番煎じだ？ってくらい書かれてますが、コリもせず書いてみました。
Elasticsearch＋Kibanaの環境を作って、タムタムさんのログ生成ツールからApacheのダミーログを流しこんで入れてみました。&lt;/p&gt;
&lt;!-- more --&gt;
&lt;h2 id=&#34;参考url&#34;&gt;参考URL&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://memocra.blogspot.jp/2013/04/kibanakibanaelasticsearchfluentd.html&#34;&gt;memorycraftさんのブログ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://kibana.org/&#34;&gt;Kibana&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://wwwelasticsearch.org&#34;&gt;Elasticsearch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://fluentd.org&#34;&gt;fluentd&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://mt.orz.at/archives/2012/11/apacherubygems.html&#34;&gt;apache-loggen&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;インストールと起動&#34;&gt;インストールと起動&lt;/h2&gt;
&lt;p&gt;今回はCentOSへのインストールです。
基本的にはmemorycraftさんのブログの流れのままです。&lt;/p&gt;
&lt;h3 id=&#34;elasticserchのインストールと起動&#34;&gt;elasticserchのインストールと起動&lt;/h3&gt;
&lt;p&gt;ダウンロードして、起動するだけ。
お試しということで、-fオプションにてコンソールにログ出力。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;curl -OL https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.1.tar.gz
tar zxvf elasticsearch-0.90.1.tar.gz
cd elasticsearch-0.90.1
./bin/elasticsearch -f
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;kibanaのインストールと起動&#34;&gt;Kibanaのインストールと起動&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;git clone&lt;/code&gt;してbundleインストール&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;git clone --branch=kibana-ruby https://github.com/rashidkpc/Kibana.git
cd Kibana
bundle install
ruby kibana.rb
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;これで、Kibana＋ESのインストール＋起動が完了。
下地が完了。&lt;/p&gt;
&lt;h3 id=&#34;td-agentのインストールと起動&#34;&gt;td-agentのインストールと起動&lt;/h3&gt;
&lt;p&gt;ログの流し込みはlogstashなのですが、fluentdのelasticsearchプラグインにて流しこむこともできます。
td.repoとしてtd-agentのリポジトリを登録してから以下を実行します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;yum install td-agent -y
/usr/lib64/fluent/ruby/bin/fluent-gem install fluent-plugin-elasticsearch
vim　/etc/td-agent/td-agent.conf
/etc/init.d/td-agent start
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;これで、td-agentがインストール出来ました。
次は設定です。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;lt;source&amp;gt;
  type tail
  format apache
  path /var/log/httpd/dummy_access_log
  tag dummy.apache.access
&amp;lt;/source&amp;gt;

&amp;lt;match *.apache.*&amp;gt;
  index_name adminpack
  type_name apache
  type elasticsearch
  include_tag_key true
  tag_key @log_name
  host localhost
  port 9200
  logstash_format true
  flush_interval 10s
&amp;lt;/match&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;以上が設定です。td-agentはtd-agentというユーザで起動されるので、/var/log/httpdディレクトリにアクセスできるかだけ確認が必要です。&lt;br&gt;
いくつかの設定値について気になったので調べました。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;index_name：adminpackとなってるが、elasticsearchではlogstash-xxxとなってる。
&lt;ul&gt;
&lt;li&gt;これは、logstash_formatがtrueの場合は、利用されないので、指定しなくてもいい。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;type_name：Elasticsearchのタイプ名
*　これはlogstash_formatを指定しても有効。ただし、Kibana側で画面からのtype指定は不可能。KibanaConfig.rbにて指定することは可能。&lt;/li&gt;
&lt;li&gt;logstash_format：Kibana用にlogstashフォーマットで出力するオプション
&lt;ul&gt;
&lt;li&gt;この指定があるときは、index名が「logstash-YYYY.mm.dd」となる&lt;/li&gt;
&lt;li&gt;record（ログ）に@timestampとして時刻が追加される。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;tag_key：include_tag_keyがtrueと指定されているため、record（ログ）にtag_keyで指定した文字列をキー、値としてtagの値（上記例だとdummy.apache.access）が付与されて登録される。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;apache-loggenのインストールと起動&#34;&gt;apache-loggenのインストールと起動&lt;/h2&gt;
&lt;p&gt;タムタムさんが作成されたApacheのログのダミーを生成するツールです。&lt;br&gt;
gem化されてるので、インストールは非常に簡単です。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;gem install apache-loggen
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;で、ログを出力します。出力先は先程設定したdummy_access_logです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;apache-loggen --rate=10 --progress /var/log/httpd/dummy_access_log
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;秒間10アクセスログを出力してくれます。
これで、Kibanaでログが見れるようになりました。
なんて簡単なんでしょう。。。
簡単なログの検索ができてしまいました。
他の形式のログがどうなるのかとかは、また時間があれば。。。&lt;/p&gt;
&lt;h2 id=&#34;感想とか&#34;&gt;感想とか&lt;/h2&gt;
&lt;p&gt;非常に簡単でした。素敵です。いくつかこうなるのかな？というのを試してみたのでメモを。&lt;/p&gt;
&lt;p&gt;いくつか疑問点です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;溜まったログの削除は手動？
&lt;ul&gt;
&lt;li&gt;おそらく。日付ごとにindexが出来上がっているので、削除は楽そう。「logstash-年月日」なので。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;認証とかかけれるの？
&lt;ul&gt;
&lt;li&gt;ログ検索は内部でするだろうから、まぁ、なくていいのかな。ログインすらないし。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;複数行のログとかってどーすんだろう？（JavaのExceptionとかが混ざるやつ）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;本格的に触るようになれば調べるかなぁ。。。&lt;/p&gt;
&lt;p&gt;あと、ログが増えてきた時にどういった分割構成ができるだろう？って思って考えてみたのが以下になります。&lt;/p&gt;
&lt;h3 id=&#34;構成パターン&#34;&gt;構成パターン&lt;/h3&gt;
&lt;p&gt;ログを複数扱う場合は次のようなパターンがありそうかと。&lt;/p&gt;
&lt;h4 id=&#34;タグfluentdのタグで識別&#34;&gt;タグ（fluentdのタグ）で識別&lt;/h4&gt;
&lt;p&gt;「@log_name」という名前＝fluentdのタグにてログを識別することで、異なるログを検索することができそうです。
タグであれば、プラグインによってはログ出力時に制御も可能だと思うので、td-agentの設定を変更したりすることもなく対応が可能かと。
ただ、ログの種別ごとにKibanaのプロセスを別にして起動したいといった用途には向いてなさそうです。&lt;/p&gt;
&lt;h4 id=&#34;type_nameによる識別&#34;&gt;type_nameによる識別&lt;/h4&gt;
&lt;p&gt;ElasticSearchの機能であるtypeを利用したログの識別パターンです。&lt;br&gt;
fluent-plugin-elasticsearchの設定で&lt;code&gt;type_name&lt;/code&gt;を指定しました。
ここを別の名前にすることで、識別することも可能です。&lt;/p&gt;
&lt;p&gt;&lt;strike&gt;ただし、この場合はKibanaの画面から指定して検索することができません。&lt;/strike&gt;
&lt;strong&gt;&lt;em&gt;→コメント頂きました。検索条件に「_type:タイプ名」と検索することでtypeを利用した検索が可能です。&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
タグ（@log_name）でも識別できるようにするなどの工夫が必要です。
その代わり、タグ識別ではできなかったKibanaのプロセスを別にして起動することは可能になります。&lt;br&gt;
KibanaConfig.rbのTypeに値を設定することで、起動したKibanaが対象とするログを絞り込むことが可能です。
こうすることで例えば、apache用のKibanaとtomcat用のKibanaは別プロセスにして、ElasticSearchのクラスタは1つという構成も可能になります。&lt;/p&gt;
&lt;h4 id=&#34;elasticsearchサーバを別立て&#34;&gt;ElasticSearchサーバを別立て&lt;/h4&gt;
&lt;p&gt;ElasticSearchサーバをそもそも別のプロセスor別のサーバで起動し、Kibanaも別々にすればログの識別も可能です。
可能ですが、色々と管理するものが増えてめんどくさそうですね。。。&lt;/p&gt;
&lt;h4 id=&#34;インデックス名変更&#34;&gt;インデックス名変更&lt;/h4&gt;
&lt;p&gt;最後は、fluent-plugin-elasticsearchの設定で「logstash_format」をfalseにすれば、好きなindex_nameを付与できるので、
ログ種別ごとに名前を変更することで識別できます。&lt;br&gt;
ただ、logstash形式でないインデックス名の場合、日付ローテーションができなかったり、Kibana内部で検索時に日付で検索対象を絞り込んで検索することで高速化するといった処理など、使えない機能が多々出てきてしまうのであまりおすすめじゃないかと。。。&lt;/p&gt;
&lt;p&gt;ということで、流行りものは触っておこうということで、さわってブログ書いてみました。&lt;br&gt;
開発中に立てておいて、各サーバのログを流しこんでおくなどにも利用できるかもしれないです。
アラート通知などの機能が出てくるともっと便利かもしれないです。&lt;/p&gt;
</content:encoded>
    </item>
    
    <item>
      <title>fluent-plugin-zoomdata作りました＋悩み事とか</title>
      <link>https://blog.johtani.info/blog/2013/06/03/fluent-plugin-zoomdata-0-0-1/</link>
      <pubDate>Mon, 03 Jun 2013 13:43:00 +0900</pubDate>
      
      <guid>https://blog.johtani.info/blog/2013/06/03/fluent-plugin-zoomdata-0-0-1/</guid>
      <description>&lt;p&gt;憧れ？のfluentを使ってみました。
&lt;a href=&#34;http://atl.recruit-tech.co.jp/blog/668/&#34;&gt;こちらの記事&lt;/a&gt;で紹介した&lt;a href=&#34;http://zoomdata.com&#34;&gt;Zoomdata&lt;/a&gt;を最近触っているのですが、お試しにfluentdでデータ流し込むプラグインを作ってみようかなぁと。（今は、Javaでの接続も書いていて、主にそっちを使っています。）
ということで、作ってみました。&lt;a href=&#34;https://github.com/johtani/fluent-plugin-zoomdata&#34;&gt;fluent-plugin-zoomdata&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;基本的にはtagomoris先生の&lt;a href=&#34;https://github.com/tagomoris/fluent-plugin-growthforecast&#34;&gt;fluent-plugin-growthforecast&lt;/a&gt;を参考（パクリ？）にさせてもらいました。
作っている最中もここわからんってツイートに反応していただき、大変助かりました。
私はベースがJavaの人間なので、手探り状態でRubyを書いています。そこおかしいんじゃないの？とかあればコメントもらえると嬉しいです。&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;憧れ？のfluentを使ってみました。
&lt;a href=&#34;http://atl.recruit-tech.co.jp/blog/668/&#34;&gt;こちらの記事&lt;/a&gt;で紹介した&lt;a href=&#34;http://zoomdata.com&#34;&gt;Zoomdata&lt;/a&gt;を最近触っているのですが、お試しにfluentdでデータ流し込むプラグインを作ってみようかなぁと。（今は、Javaでの接続も書いていて、主にそっちを使っています。）
ということで、作ってみました。&lt;a href=&#34;https://github.com/johtani/fluent-plugin-zoomdata&#34;&gt;fluent-plugin-zoomdata&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;基本的にはtagomoris先生の&lt;a href=&#34;https://github.com/tagomoris/fluent-plugin-growthforecast&#34;&gt;fluent-plugin-growthforecast&lt;/a&gt;を参考（パクリ？）にさせてもらいました。
作っている最中もここわからんってツイートに反応していただき、大変助かりました。
私はベースがJavaの人間なので、手探り状態でRubyを書いています。そこおかしいんじゃないの？とかあればコメントもらえると嬉しいです。&lt;/p&gt;
&lt;!-- more --&gt;
&lt;h2 id=&#34;zoomdataのapi&#34;&gt;ZoomdataのAPI&lt;/h2&gt;
&lt;p&gt;ZoomdataのAPIはこんなかんじで、JSONをHTTPSでPOSTするものになります。&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/wlindner/4587444.js&#34;&gt;&lt;/script&gt;
&lt;p&gt;指定する必要があるものは、以下の項目です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;source：Zoomdataのデータ保存先（Zoomdataでのデータを保存する単位。）&lt;/li&gt;
&lt;li&gt;user：Zoomdataのユーザ名&lt;/li&gt;
&lt;li&gt;password：Zoomdataのユーザのパスワード&lt;/li&gt;
&lt;li&gt;JSONデータ：Zoomdataでグラフ化するデータ&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;sourceはデータ保存先の名称で、この単位でZoomdataはデータを保存、描画します。fluentdのタグをこれにするとわかりやすいかなぁ？と考えていったん、実装してみています。&lt;/p&gt;
&lt;p&gt;で、作成したプログラムを使いつつ、Zoomdataの検証をしたかったので、つぎのような簡単なプログラムを作って動かしてみました。&lt;/p&gt;
&lt;h2 id=&#34;サンプルプログラムの構成&#34;&gt;サンプルプログラムの構成&lt;/h2&gt;
&lt;p&gt;基本的にJavaの人なので、クライアントはJavaで書いてます。
CLIプログラムで適当なJSONを作って、fluent-loggerを使って、fluentdに投げ込みます。&lt;/p&gt;


&lt;div class=&#34;box&#34; style=&#34;max-width:500&#34; &gt;
  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope
    itemtype=&#34;http://schema.org/ImageObject&#34;&gt;
    &lt;div class=&#34;img&#34; &gt;
      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;https://blog.johtani.info/images/entries/sample_pg_zoomdata.jpg&#34;  /&gt;
    &lt;/div&gt;
    &lt;a href=&#34;https://blog.johtani.info/images/entries/sample_pg_zoomdata.jpg&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;
  &lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;fluentdにfluent-plugin-zoomdataを設定して、localのZoomdataサーバに対してHTTPSでJSONをPostする仕組みです。(初keynote)&lt;br&gt;
利用しているライブラリなどのバージョンは次の通り&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;td-agent.x86_64：1.1.12-0&lt;/li&gt;
&lt;li&gt;fluent-logger：0.2.8&lt;/li&gt;
&lt;li&gt;Zoomdata：1.0.3&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;バグ&#34;&gt;バグ？&lt;/h2&gt;
&lt;p&gt;で、Zoomdataにいろんなデータを流し込んでみたのですが、つぎのようなエラーが出て、エラーが出力されたあとはZoomdataにデータが流れ込まなくなってしまいました。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;2013-06-03 14:42:33 +0900 [warn]: emit transaction failed  error=&amp;#34;SSL_connect returned=1 errno=0 state=SSLv3 read finished A: sslv3 alert handshake failure&amp;#34;
  2013-06-03 14:42:33 +0900 [warn]: /usr/lib64/fluent/ruby/lib/ruby/1.9.1/net/http.rb:799:in `connect&amp;#39;
  2013-06-03 14:42:33 +0900 [warn]: /usr/lib64/fluent/ruby/lib/ruby/1.9.1/net/http.rb:799:in `block in connect&amp;#39;
  2013-06-03 14:42:33 +0900 [warn]: /usr/lib64/fluent/ruby/lib/ruby/1.9.1/timeout.rb:54:in `timeout&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href=&#34;https://gist.github.com/johtani/5696295&#34;&gt;全ログはこちら&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;まだきちんと問題を調査しないでブログを書いています、すみません。&lt;/p&gt;
&lt;h3 id=&#34;現象&#34;&gt;現象&lt;/h3&gt;
&lt;p&gt;ログが発生した時の症状です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;クライアントプログラムは送信が続いており、エラーは出ない&lt;/li&gt;
&lt;li&gt;td-agent.logに先ほどのエラーが出力&lt;/li&gt;
&lt;li&gt;別途&lt;code&gt;type file&lt;/code&gt;にて出力しているログも停止&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;想像&#34;&gt;想像&lt;/h3&gt;
&lt;p&gt;とりあえず、ログを見た想像、所感です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;問題の箇所はfluent-plugin-zoomdataからZoomdataサーバへのデータ送信部分&lt;/li&gt;
&lt;li&gt;emit処理内部で、HTTPSでデータをPOSTする処理でエラーが起きて&lt;/li&gt;
&lt;li&gt;リトライ処理とか書いてないので、emitがコケて、その後データが送信されなくなる&lt;/li&gt;
&lt;li&gt;emitで例外をつかみそこねてるのがあるから止まってる？&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;とまぁ、ちゃんと仕組みを理解しないでRubyとか書くからこうなるんですねぇ。
あとでちゃんと調べて考えて、改良してブログ書きます。&lt;/p&gt;
&lt;h2 id=&#34;悩んでいる点今後手を入れたい点&#34;&gt;悩んでいる点、今後手を入れたい点&lt;/h2&gt;
&lt;p&gt;上記バグとは別に作りの点でいくつか悩んでる点も書いてみます。&lt;/p&gt;
&lt;h3 id=&#34;bufferedoutputにしてみたい&#34;&gt;BufferedOutputにしてみたい&lt;/h3&gt;
&lt;p&gt;fluentdのバッファリングを使って、Zoomdataが落ちていても使えるようにしたいと思っているのでBufferedOutputで書くのがいいのかなぁとか。
ちょうど&lt;a href=&#34;http://www.slideshare.net/harukayon/fluentd-22317236&#34;&gt;いいスライド&lt;/a&gt;があったので、読みながらまずは中身を理解してみよう。&lt;/p&gt;
&lt;h3 id=&#34;zoomdataのsourceuserなどの扱い&#34;&gt;Zoomdataのsource、userなどの扱い&lt;/h3&gt;
&lt;p&gt;基本的には設定ファイルで切り替えるのが妥当かなぁと思っています。&lt;br&gt;
ただ、Zoomdataのsourceやuserが増えるたびにfluentdの設定を書き換えて再起動するのかなぁと。userはしょうが無いにしても、sourceは設定じゃない所で切り替えたいなぁと。&lt;/p&gt;
&lt;p&gt;で、切り替えるのにつぎの案があるかなぁと。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;タグで指定（今実装してるもの）&lt;/li&gt;
&lt;li&gt;メッセージにメタ情報とボディ構造を設ける&lt;/li&gt;
&lt;li&gt;設定をどんどん増やす（やりたくない）&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;1と3はまぁ、いいかと。2.のパターンはどうなのかなぁと。
毎回のメッセージでヘッダ部分が送信されるのはなんだか無駄だなぁというのが否めないので悩ましいところです。1、2の両方対応できるように作るのもありか。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;header&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;source&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;source_name&amp;#34;&lt;/span&gt;, 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;user&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;userid&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;password&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;userid&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	},
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;body&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;label&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;label1&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;count&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ということで、fluent触って遊ぶの楽しいですね。Rubyの勉強にもなりそうだし。
ちょっとずつ頑張ってみようかなぁと。
まぁ、まだ私以外にニーズは無さそうなプラグインですが。&lt;/p&gt;
</content:encoded>
    </item>
    
  </channel>
</rss>
