忍者ブログ
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

巷で話題のfluentを、導入してみることにした。
だが、gem install fluent ってやるのはいかがなものか。
rubyのバージョンもあるが、いろいろなパッケージが勝手に入って、精神衛生上よろしくない。
fedoraをつかってるので、できればRPMにしたい。
でもSPECファイル書くの面倒くさいなぁと思っていたら、意外にも簡単にできました。

ざっくり流れを書くと
 (1)td-agentのSRPMをもってくる。
 (2)fluentの最新ソースをダウンロード
 (3)td-agentパッケージを解凍して、SPECファイルを編集
 (4)td-agentにはいっているautogen.sh、Makefile.amをfluentdのディレクトリにコピーし、編集
 (5)fluentdをtarでアーカイブ
 (6)ビルドに必要なライブラリ(libyaml-devel)をインストール
 (7)rpmbuildでパッケージ化
ってなもんです。
他人のふんどしで相撲を取ってるようなもんですけど、以下に詳細な手順を記します。

【パッケージ作成手順】
 (1)td-agentのSRPMSをもってくる。
   ここ からパッケージをもってくる。(今回は、td-agent-1.1.3.1 を使いました。)
   ちなみに、rpmパッケージは以下のコマンドで解凍できます。

     # rpm2cpio td-agent-1.1.3.1-0.src.rpm | cpio -id

 (2)fluentの最新ソースをダウンロード
   ここから最新のfluentのソースをもってきます。
   開発が活発なので、ひと月もたつとすっかり古くなります。

 (3)td-agentパッケージを解凍して、SPECファイルなどを編集
   SRPMを解凍して中身を修正します。
   1 SPECファイルの編集
     文字列"td-agent"を"fluentd"に置換します。

        # sed -i s/td-agent/fluentd/g td-agent.spec

     また、Version:を今回入れるfluentdのバージョンにします。

   2 ファイル名変更
     td-agent.init → fluentd.init
     td-agent.spec → fluentd.spec
   
 (4)td-agent-xx.xx.xx.tar.gzにはいっている以下のファイルをfluentdのディレクトリにコピーし、編集
   ・autogen.sh
    一緒にコンパイルするruby、その他モジュールのバージョンを変更します。
    せっかくなので、新しいバージョンでパッケージ。

      download "http://ftp.ruby-lang.org/pub/ruby/1.9" "ruby-1.9.3-p125.tar.bz2"
      download "http://rubygems.org/downloads" "json-1.6.6.gem"
      download "http://rubygems.org/downloads" "msgpack-0.4.6.gem"
      download "http://rubygems.org/downloads" "iobuffer-0.1.3.gem"
      download "http://rubygems.org/downloads" "cool.io-1.1.0.gem"
      download "http://rubygems.org/downloads" "http_parser.rb-0.5.3.gem"
      download "http://rubygems.org/downloads" "yajl-ruby-1.1.0.gem"
      download "http://rubygems.org/downloads" "jeweler-1.8.3.gem"
      download "http://rubygems.org/downloads" "psych-1.3.2.gem"

   ・Makefile.am
    一緒にパッケージ化したいプラグインを追加します。

      PLUGINS = \
        fluent-plugin-td-0.10.6.gem \
        fluent-plugin-hoop-0.1.2.gem \
        fluent-plugin-zabbix-0.0.1.gem \
        fluent-plugin-scribe-0.10.7.gem \
        fluent-plugin-hipchat-0.1.0.gem \
        fluent-plugin-forest-0.1.0.gem \
        fluent-plugin-cassandra-0.0.2.gem \
        fluent-plugin-mongo-0.6.7.gem

    また、td-agentという文字列をfluentdに一括置換します。
      # sed -i -e s/td-agent/fluentd/g Makefile.am

   ・td-agent.prelink.conf
    ファイル名を、fluentd.prelink.confに変更します。

   ・configure.in
    そのままコピーします。

   ・td-agent.conf
    fluentd.confとしてコピーします。

 (5)fluentdをtarでアーカイブ
   ディレクトリ名をfluentd-0.10.18 のような名前にして、fluentd-0.10.18.tar.gzのように
   アーカイブします。
   これを、td-agent-xx.xx.xx.tar.gzと入れ替えます。

 (5)ビルドに必要なライブラリ(libyaml-devel)をインストール
   fedoraだと、標準のリポジトリにあるので、yum install libyaml-devel すればよいです。
   CentOSだと用意されていないので、EPELから持ってきてください。
    →td-agent-1.1.4では、BuildRequiresにlibyaml-develが追加されたようで、ないと先に進めません。
      1.1.3ではエラーは出るがとりあえずコンパイルが走った。

 (6)rpmbuildでパッケージ化
   あとは、各ファイルを所定の位置に配置して、コマンドを実行です。

   # rpmbuild -ba fluentd.spec  (ポチっとな)

これで完了。
やっぱり SRPMがあると、パッケージ化が楽ですね。









  
PR
COMMENT
name
title
text
color   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
mail
URL
pass
secret
PREV ←  HOME  → NEXT
Copyright (C) 2017 技ブロ All Rights Reserved.
Photo by 戦場に猫 Template Design by kaie
忍者ブログ [PR]